diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000000..f40e0f70b4 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +open_collective: gephi diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000000..99593f4c77 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,37 @@ +--- +name: Bug report +about: Create a report to help us improve Gephi +title: '' +labels: To review +assignees: '' + +--- + + + +## Expected Behavior + +## Current Behavior + +## Possible Solution + + + +## Steps to Reproduce + +1. +2. +3. +4. + +## Context + + + +## Your Environment + +* Version used: Gephi 0.11.2 +* Operating System: + + + diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000000..b7e015a5ab --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: Ask a question (discussions) + url: https://github.com/gephi/gephi/discussions + about: Please ask and answer questions here. \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000000..133725a872 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,19 @@ +--- +name: Feature request +about: Suggest an idea for Gephi +title: '' +labels: Wishlist, To review +assignees: '' + +--- + + + +### Proposed solution + + +### Alternatives considered + + +### Additional context + \ No newline at end of file diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000000..addc803f5b --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,11 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + + - package-ecosystem: "maven" + directory: "/" + schedule: + interval: "weekly" diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000000..bbd090faa9 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,38 @@ + + +## Description + + + +## Checklist + +- [ ] Merged with master beforehand + +## Added tests? + +- [ ] πŸ‘ yes +- [ ] πŸ™… no, because they aren't needed + + +## Added to documentation? +- [ ] πŸ‘ README.md +- [ ] πŸ‘ [API Changes](https://github.com/gephi/gephi/blob/master/src/main/javadoc/overview.html) +- [ ] πŸ‘ Additional documentation in [docs](https://github.com/gephi/gephi-documentation) +- [ ] πŸ‘ Relevant code documentation +- [ ] πŸ™… no, because they aren’t needed diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000000..a263f8b388 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,21 @@ +name: build + +on: + push: + branches-ignore: + - 0.11.3 + - weblate** + +jobs: + build_and_test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + - name: Set up JDK 17 + uses: actions/setup-java@v5.7.0 + with: + java-version: '17' + distribution: 'temurin' + cache: 'maven' + - name: Build project with Maven + run: mvn -T 4 --batch-mode -Djava.awt.headless=true verify -P enableCheckStyle diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000000..7085201ab7 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,412 @@ +name: release + +on: + push: + branches: [ 0.11.3 ] + +jobs: + build-base: + runs-on: ubuntu-latest + outputs: + is_release: ${{ steps.detect.outputs.is_release }} + version: ${{ steps.detect.outputs.version }} + steps: + - uses: actions/checkout@v7 + + # Detect whether this build is a release (no -SNAPSHOT) or a snapshot. + # - SNAPSHOT: existing flow, each job deploys directly to Central. + # - RELEASE: every job stages locally (-DskipPublishing=true) and the + # publish-central job merges and uploads a single bundle. + - name: Detect version + id: detect + shell: bash + run: | + VERSION=$(grep -A1 'gephi-parent' pom.xml | grep '' | head -1 | sed -E 's|.*([^<]+).*|\1|') + if [[ -z "$VERSION" ]]; then + echo "Could not detect project version from pom.xml" >&2 + exit 1 + fi + if [[ "$VERSION" == *SNAPSHOT* ]]; then + IS_RELEASE=false + else + IS_RELEASE=true + fi + echo "version=$VERSION" >> "$GITHUB_OUTPUT" + echo "is_release=$IS_RELEASE" >> "$GITHUB_OUTPUT" + echo "Detected version: $VERSION (is_release=$IS_RELEASE)" + + - name: Set up Maven Central Repository + uses: actions/setup-java@v5.7.0 + with: + java-version: '17' + distribution: 'temurin' + cache: 'maven' + server-id: central + server-username: OSSRH_USER + server-password: OSSRH_PASS + gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }} + gpg-passphrase: GPG_PASSPHRASE + + - name: Setup Maven + uses: stCarolas/setup-maven@v5 + with: + maven-version: 3.9.14 + + - name: Get NBM Keystore + run: | + echo "${{ secrets.NBM_KEYSTORE }}" > keystore.ks.asc + gpg -d --passphrase "${{ secrets.NBM_KEYSTORE_ENC_PASSPHRASE }}" --batch keystore.ks.asc > keystore.ks + + - name: Build and publish modules + shell: bash + run: | + SKIP_PUBLISHING="" + if [[ "${{ steps.detect.outputs.is_release }}" == "true" ]]; then + SKIP_PUBLISHING="-DskipPublishing=true" + echo "Release mode: staging artifacts locally; upload happens in publish-central." + else + echo "Snapshot mode: deploying directly to Central." + fi + mvn --batch-mode -Djava.awt.headless=true \ + -Dkeystore.password=${{ secrets.KEYSTORE_PASSWD }} \ + $SKIP_PUBLISHING \ + site deploy \ + -P deployment,sign-artifacts,create-modules,create-sources,create-javadoc,create-autoupdate + env: + OSSRH_USER: ${{ secrets.OSSRH_TOKEN_USER }} + OSSRH_PASS: ${{ secrets.OSSRH_TOKEN_PASSWD }} + GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} + + - name: Upload central staging (base) + if: steps.detect.outputs.is_release == 'true' + uses: actions/upload-artifact@v7 + with: + name: central-staging-base + path: target/central-staging + if-no-files-found: error + retention-days: 1 + + - name: Upload autoupdate output + uses: actions/upload-artifact@v7 + with: + name: autoupdate-output + path: modules/application/target/autoupdate_site + if-no-files-found: error + retention-days: 1 + + - name: Prepare modules output + run: tar -I 'zstd -9 -T0' -cf /tmp/modules.tar.zst -C ~/.m2/repository/org/gephi . + + - name: Upload modules output + uses: actions/upload-artifact@v7 + with: + name: modules-output + path: /tmp/modules.tar.zst + if-no-files-found: error + retention-days: 1 + + bundle: + needs: build-base + strategy: + fail-fast: false + max-parallel: 1 + matrix: + os: [ ubuntu-latest, windows-latest, macos-latest ] + arch: [ x64 ] + include: + - task: create-targz + os: ubuntu-latest + arch: x64 + - task: create-targz + os: ubuntu-latest + arch: aarch64 + - task: create-exe + os: windows-latest + arch: x64 + - task: create-dmg,notarize-dmg + os: macos-latest + arch: x64 + - task: create-dmg,notarize-dmg + os: macos-latest + arch: aarch64 + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v7 + - name: Set up Maven Central Repository + uses: actions/setup-java@v5.7.0 + with: + java-version: '17' + distribution: 'temurin' + server-id: central + server-username: OSSRH_USER + server-password: OSSRH_PASS + gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }} + gpg-passphrase: GPG_PASSPHRASE + + - name: Install MacOS requirements + run: brew install gnupg@1.4 create-dmg + if: runner.os == 'macOS' + + - name: Apple Developer Certificates + run: | + gpg1 --output .github/workflows/release/certs/dev_id.cer --passphrase "$ENCRYPTION_SECRET" --decrypt .github/workflows/release/certs/dev_id.cer.enc + gpg1 --output .github/workflows/release/certs/dev_id.p12 --passphrase "$ENCRYPTION_SECRET" --decrypt .github/workflows/release/certs/dev_id.p12.enc + ./.github/workflows/release/add-key.sh + if: runner.os == 'macOS' + env: + ENCRYPTION_SECRET: ${{ secrets.ENCRYPTION_SECRET }} + KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }} + + # Workaround for "hdiutil: create failed - Resource busy" error + # https://github.com/actions/runner-images/issues/7522 + - name: MacOS hdiutil workaround + run: | + echo killing...; sudo pkill -9 XProtect >/dev/null || true; + echo waiting...; while pgrep XProtect; do sleep 3; done; + if: runner.os == 'macOS' + + - name: Retrieve modules output + uses: actions/download-artifact@v8 + with: + name: modules-output + + - name: Extract artifacts Linux + run: | + mkdir -p ~/.m2/repository/org/gephi/ + tar --zstd -xf modules.tar.zst -C ~/.m2/repository/org/gephi + if: runner.os == 'Linux' + + - name: Extract artifacts Mac OS + run: | + mkdir -p ~/.m2/repository/org/gephi/ + unzstd -c modules.tar.zst | tar -x -C ~/.m2/repository/org/gephi + if: runner.os == 'macOS' + + - name: Extract artifacts Windows + shell: bash + run: | + mkdir -p ~/.m2/repository/org/gephi/ + tar --zstd -xf modules.tar.zst -C ~/.m2/repository/org/gephi + if: runner.os == 'Windows' + + - name: Build and publish bundle + shell: bash + run: | + SKIP_PUBLISHING="" + if [[ "${{ needs.build-base.outputs.is_release }}" == "true" ]]; then + SKIP_PUBLISHING="-DskipPublishing=true" + echo "Release mode: staging artifacts locally; upload happens in publish-central." + else + echo "Snapshot mode: deploying directly to Central." + fi + mvn --batch-mode -Djava.awt.headless=true \ + -DautoPublish=true -DwaitUntil=published \ + $SKIP_PUBLISHING \ + -Dgephi.apple.notarization.username=$APPLE_USERNAME \ + -Dgephi.apple.notarization.password=$APPLE_PASSWORD \ + -Dgephi.apple.notarization.teamId=$APPLE_TEAM_ID \ + -Dgephi.windows.codesign.username=$CODESIGN_USERNAME \ + -Dgephi.windows.codesign.password=$CODESIGN_PASSWORD \ + -Dgephi.windows.codesign.totp=$CODESIGN_TOTP \ + -Dgephi.bundle.arch=${{ matrix.arch }} \ + deploy -P deployment,sign-artifacts,${{ matrix.task }} + working-directory: modules/application + env: + OSSRH_USER: ${{ secrets.OSSRH_TOKEN_USER }} + OSSRH_PASS: ${{ secrets.OSSRH_TOKEN_PASSWD }} + GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} + APPLE_USERNAME: ${{ secrets.APPLE_USERNAME }} + APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }} + APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} + CODESIGN_USERNAME: ${{ secrets.CODESIGN_USERNAME }} + CODESIGN_PASSWORD: ${{ secrets.CODESIGN_PASSWORD }} + CODESIGN_TOTP: ${{ secrets.CODESIGN_TOTP }} + + - name: CleanUp MacOS keychain + run: ./.github/workflows/release/remove-key.sh + if: runner.os == 'macOS' + + - name: Upload central staging + if: needs.build-base.outputs.is_release == 'true' + uses: actions/upload-artifact@v7 + with: + name: central-staging-${{ matrix.os }}-${{ matrix.arch }} + path: modules/application/target/central-staging + if-no-files-found: error + retention-days: 1 + + - name: Output download link + shell: bash + run: | + VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) + [[ "$VERSION" != *SNAPSHOT* ]] && exit 0 + BASE="https://central.sonatype.com/repository/maven-snapshots/org/gephi/gephi/$VERSION" + METADATA=$(curl -sf "$BASE/maven-metadata.xml") + SNAPSHOT_TS=$(echo "$METADATA" | sed -n 's/.*\([^<]*\)<\/timestamp>.*/\1/p') + SNAPSHOT_BN=$(echo "$METADATA" | sed -n 's/.*\([^<]*\)<\/buildNumber>.*/\1/p') + SNAP_SUFFIX="${SNAPSHOT_TS}-${SNAPSHOT_BN}" + FILE=$(find ~/.m2/repository/org/gephi/gephi/$VERSION/ \ + -name "gephi-*-${{ matrix.arch }}.*" \ + ! -name "*.asc" ! -name "*.md5" ! -name "*.sha*" ! -name "*.pom" \ + | sort | tail -1) + FILENAME=$(basename "$FILE") + REMOTE_FILENAME="${FILENAME/SNAPSHOT/$SNAP_SUFFIX}" + echo "- [$REMOTE_FILENAME]($BASE/$REMOTE_FILENAME)" >> $GITHUB_STEP_SUMMARY + + # Releases only: download every job's central-staging tree, merge them into a + # single Maven Repository Layout directory, zip it, and upload it as a single + # deployment to the Sonatype Central Publisher Portal as USER_MANAGED. The + # deployment then needs to be validated and published manually via the UI at + # https://central.sonatype.com/publishing/deployments. + publish-central: + needs: [ build-base, bundle ] + if: needs.build-base.outputs.is_release == 'true' + runs-on: ubuntu-latest + steps: + - name: Download all central staging artifacts + uses: actions/download-artifact@v8 + with: + pattern: 'central-staging-*' + path: staging-parts + + - name: Merge staging trees into a single bundle + shell: bash + run: | + set -euo pipefail + mkdir -p bundle + # Merge base first so its application POM and signatures win for files + # produced by multiple jobs (every job stages a gephi-.pom + .asc; + # the per-classifier .tar.gz / .exe / .dmg files are unique). + if [[ -d "staging-parts/central-staging-base" ]]; then + echo "Merging central-staging-base" + rsync -a staging-parts/central-staging-base/ bundle/ + else + echo "central-staging-base artifact missing" >&2 + exit 1 + fi + for d in staging-parts/*/; do + name=$(basename "$d") + if [[ "$name" == "central-staging-base" ]]; then + continue + fi + echo "Merging $name" + rsync -a --ignore-existing "$d" bundle/ + done + # Drop the plugin's intermediate metadata files; they must not be in + # the Portal bundle. + find bundle -name 'maven-metadata*' -delete + echo "Bundle contents:" + find bundle -type f | sort + + - name: Create bundle zip + shell: bash + run: | + set -euo pipefail + (cd bundle && zip -qr ../central-bundle.zip .) + ls -la central-bundle.zip + + - name: Upload bundle to Sonatype Central Portal + id: upload + shell: bash + env: + OSSRH_USER: ${{ secrets.OSSRH_TOKEN_USER }} + OSSRH_PASS: ${{ secrets.OSSRH_TOKEN_PASSWD }} + VERSION: ${{ needs.build-base.outputs.version }} + run: | + set -euo pipefail + TOKEN=$(printf '%s:%s' "$OSSRH_USER" "$OSSRH_PASS" | base64 -w0) + DEPLOYMENT_NAME="org.gephi:gephi:${VERSION}" + echo "Uploading bundle as $DEPLOYMENT_NAME" + ID=$(curl -fsS -X POST \ + -H "Authorization: Bearer $TOKEN" \ + -F "bundle=@central-bundle.zip" \ + "https://central.sonatype.com/api/v1/publisher/upload?publishingType=USER_MANAGED&name=${DEPLOYMENT_NAME}") + if [[ -z "$ID" ]]; then + echo "Upload returned an empty deployment ID" >&2 + exit 1 + fi + echo "Deployment ID: $ID" + echo "deployment_id=$ID" >> "$GITHUB_OUTPUT" + + - name: Wait for Central validation + shell: bash + env: + OSSRH_USER: ${{ secrets.OSSRH_TOKEN_USER }} + OSSRH_PASS: ${{ secrets.OSSRH_TOKEN_PASSWD }} + DEPLOYMENT_ID: ${{ steps.upload.outputs.deployment_id }} + run: | + set -euo pipefail + TOKEN=$(printf '%s:%s' "$OSSRH_USER" "$OSSRH_PASS" | base64 -w0) + while true; do + RESPONSE=$(curl -fsS -X POST \ + -H "Authorization: Bearer $TOKEN" \ + "https://central.sonatype.com/api/v1/publisher/status?id=${DEPLOYMENT_ID}") + STATE=$(echo "$RESPONSE" | jq -r '.deploymentState') + echo "Current state: $STATE" + case "$STATE" in + VALIDATED|PUBLISHING|PUBLISHED) + echo "Deployment is in $STATE state." + break + ;; + FAILED) + echo "Deployment failed:" + echo "$RESPONSE" | jq . + exit 1 + ;; + esac + sleep 15 + done + + - name: Write summary + shell: bash + env: + DEPLOYMENT_ID: ${{ steps.upload.outputs.deployment_id }} + VERSION: ${{ needs.build-base.outputs.version }} + run: | + { + echo "## Maven Central deployment ready for publishing" + echo + echo "- Component: \`org.gephi:gephi:${VERSION}\`" + echo "- Deployment ID: \`${DEPLOYMENT_ID}\`" + echo + echo "Validate it and click **Publish** at ." + } >> "$GITHUB_STEP_SUMMARY" + + update-site: + # In snapshot mode bundle directly publishes binaries, so update-site can + # run right after. In release mode wait for publish-central to succeed so + # we don't push the autoupdate XML before the bundle is at least validated + # by Central. The bundle still needs to be manually published in the UI to + # actually become live, so the autoupdate site may briefly point to + # not-yet-published files until that step is completed. + needs: [ build-base, bundle, publish-central ] + if: | + always() && + needs.build-base.result == 'success' && + needs.bundle.result == 'success' && + (needs.publish-central.result == 'success' || needs.publish-central.result == 'skipped') + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + - name: Set up JDK 17 + uses: actions/setup-java@v5.7.0 + with: + java-version: '17' + distribution: 'temurin' + + - name: Retrieve autoupdate output + uses: actions/download-artifact@v8 + with: + name: autoupdate-output + path: modules/application/target/autoupdate_site + + - name: Configure Git user + run: | + git config --global user.email "github-action@users.noreply.github.com" + git config --global user.name "GitHub Actions" + + - name: Update autoupdate content on gh-pages + run: mvn validate scm-publish:publish-scm -P push-site + working-directory: modules/application + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/release/add-key.sh b/.github/workflows/release/add-key.sh new file mode 100755 index 0000000000..35fe2cd137 --- /dev/null +++ b/.github/workflows/release/add-key.sh @@ -0,0 +1,20 @@ +#!/bin/sh + +# Create a custom keychain +security create-keychain -p travis gephi-build.keychain + +# Make the custom keychain default, so xcodebuild will use it for signing +security default-keychain -s gephi-build.keychain + +# Unlock the keychain +security unlock-keychain -p travis gephi-build.keychain + +# Set keychain timeout to 1 hour for long builds +security set-keychain-settings -t 3600 -l ~/Library/Keychains/gephi-build.keychain + +# Add certificates to keychain and allow codesign to access them +security import ./.github/workflows/release/certs/apple.cer -k ~/Library/Keychains/gephi-build.keychain -T /usr/bin/codesign +security import ./.github/workflows/release/certs/dev_id.cer -k ~/Library/Keychains/gephi-build.keychain -T /usr/bin/codesign +security import ./.github/workflows/release/certs/dev_id.p12 -k ~/Library/Keychains/gephi-build.keychain -P $KEY_PASSWORD -T /usr/bin/codesign + +security set-key-partition-list -S apple-tool:,apple: -s -k travis gephi-build.keychain \ No newline at end of file diff --git a/.github/workflows/release/certs/apple.cer b/.github/workflows/release/certs/apple.cer new file mode 100644 index 0000000000..0de099b869 Binary files /dev/null and b/.github/workflows/release/certs/apple.cer differ diff --git a/.github/workflows/release/certs/dev_id.cer.enc b/.github/workflows/release/certs/dev_id.cer.enc new file mode 100644 index 0000000000..f472cf74f5 Binary files /dev/null and b/.github/workflows/release/certs/dev_id.cer.enc differ diff --git a/.github/workflows/release/certs/dev_id.p12.enc b/.github/workflows/release/certs/dev_id.p12.enc new file mode 100644 index 0000000000..8628c3cd1d Binary files /dev/null and b/.github/workflows/release/certs/dev_id.p12.enc differ diff --git a/.github/workflows/release/remove-key.sh b/.github/workflows/release/remove-key.sh new file mode 100755 index 0000000000..497a8a779f --- /dev/null +++ b/.github/workflows/release/remove-key.sh @@ -0,0 +1,3 @@ +#!/bin/sh +security delete-keychain gephi-build.keychain +rm -rf .github/workflows/build/certs diff --git a/.gitignore b/.gitignore index d1c9854d78..fccc17c9f6 100644 --- a/.gitignore +++ b/.gitignore @@ -32,8 +32,6 @@ keystore.ks /modules/DesktopSpigot/target/ /modules/DesktopStatistics/target/ /modules/DesktopTimeline/target/ -/modules/DesktopTools/target/ -/modules/DHNSGraph/target/ /modules/DirectoryChooser/target/ /modules/DynamicAPI/target/ /modules/DynamicImpl/target/ @@ -94,4 +92,38 @@ keystore.ks /modules/JFreeChartWrapper/target/ /modules/CommonsWrapper/target/ /modules/CoreLibraryWrapper/target/ -/modules/UILibraryWrapper/target/ \ No newline at end of file +/modules/UILibraryWrapper/target/ +/modules/AppearanceAPI/target/ +/modules/AppearancePlugin/target/ +/modules/AppearancePluginUI/target/ +/modules/DesktopAppearance/target/ +/modules/DesktopAttributes/target/ +/modules/branding/src/main/nbm-branding/modules/org-netbeans-core-windows.jar/org/netbeans/core/windows/view/ui/Bundle.properties +/modules/branding/src/main/nbm-branding/core/core.jar/org/netbeans/core/startup/Bundle.properties +/modules/TestUtils/target +.java-version +nb-configuration.xml +*.args +*.gpg +dev_id.cer +*.p12 + +*.iml +.idea/ +*.project +.settings/** +**/.settings/** +**/.classpath +**/.factorypath +modules/DesktopBranding/src/main/nbm-branding/core/core.jar/org/netbeans/core/startup/Bundle.properties +modules/DesktopBranding/src/main/nbm-branding/modules/org-netbeans-core-windows.jar/org/netbeans/core/windows/view/ +build.sh +*.asc +**/keystore/** +src/macosx-launcher/.build +src/macosx-launcher/.swiftpm +src/macosx-launcher/Packages +src/macosx-launcher/*.xcodeproj +xcuserdata/ +projects.xml +modules/application/.flattened-pom.xml \ No newline at end of file diff --git a/.tx/config b/.tx/config deleted file mode 100644 index aa180fc062..0000000000 --- a/.tx/config +++ /dev/null @@ -1,951 +0,0 @@ -[main] -host = gephi - -[gephi.org-gephi-ui-workspace] -file_filter = modules\WorkspaceUI\src\main\resources\org\gephi\ui\workspace\.po -source_file = modules\WorkspaceUI\src\main\resources\org\gephi\ui\workspace\org-gephi-ui-workspace.pot -source_lang = en -type = PO - -[gephi.org-gephi-desktop-welcome] -file_filter = modules\WelcomeScreen\src\main\resources\org\gephi\desktop\welcome\.po -source_file = modules\WelcomeScreen\src\main\resources\org\gephi\desktop\welcome\org-gephi-desktop-welcome.pot -source_lang = en -type = PO - -[gephi.org-gephi-visualization] -file_filter = modules\VisualizationImpl\src\main\resources\org\gephi\visualization\.po -source_file = modules\VisualizationImpl\src\main\resources\org\gephi\visualization\org-gephi-visualization.pot -source_lang = en -type = PO - -[gephi.org-gephi-visualization-screenshot] -file_filter = modules\VisualizationImpl\src\main\resources\org\gephi\visualization\screenshot\.po -source_file = modules\VisualizationImpl\src\main\resources\org\gephi\visualization\screenshot\org-gephi-visualization-screenshot.pot -source_lang = en -type = PO - -[gephi.org-gephi-visualization-options] -file_filter = modules\VisualizationImpl\src\main\resources\org\gephi\visualization\options\.po -source_file = modules\VisualizationImpl\src\main\resources\org\gephi\visualization\options\org-gephi-visualization-options.pot -source_lang = en -type = PO - -[gephi.org-gephi-visualization-config] -file_filter = modules\VisualizationImpl\src\main\resources\org\gephi\visualization\config\.po -source_file = modules\VisualizationImpl\src\main\resources\org\gephi\visualization\config\org-gephi-visualization-config.pot -source_lang = en -type = PO - -[gephi.org-gephi-visualization-component] -file_filter = modules\VisualizationImpl\src\main\resources\org\gephi\visualization\component\.po -source_file = modules\VisualizationImpl\src\main\resources\org\gephi\visualization\component\org-gephi-visualization-component.pot -source_lang = en -type = PO - -[gephi.org-gephi-visualization-apiimpl-contextmenuitems] -file_filter = modules\VisualizationImpl\src\main\resources\org\gephi\visualization\apiimpl\contextmenuitems\.po -source_file = modules\VisualizationImpl\src\main\resources\org\gephi\visualization\apiimpl\contextmenuitems\org-gephi-visualization-apiimpl-contextmenuitems.pot -source_lang = en -type = PO - -[gephi.org-gephi-visualization-opengl] -file_filter = modules\VisualizationImpl\src\main\resources\org\gephi\visualization\opengl\.po -source_file = modules\VisualizationImpl\src\main\resources\org\gephi\visualization\opengl\org-gephi-visualization-opengl.pot -source_lang = en -type = PO - -[gephi.org-gephi-visualization-api] -file_filter = modules\VisualizationAPI\src\main\resources\org\gephi\visualization\api\.po -source_file = modules\VisualizationAPI\src\main\resources\org\gephi\visualization\api\org-gephi-visualization-api.pot -source_lang = en -type = PO - -[gephi.org-gephi-lib-validation] -file_filter = modules\ValidationAPI\src\main\resources\org\gephi\lib\validation\.po -source_file = modules\ValidationAPI\src\main\resources\org\gephi\lib\validation\org-gephi-lib-validation.pot -source_lang = en -type = PO - -[gephi.org-gephi-utils] -file_filter = modules\Utils\src\main\resources\org\gephi\utils\.po -source_file = modules\Utils\src\main\resources\org\gephi\utils\org-gephi-utils.pot -source_lang = en -type = PO - -[gephi.org-gephi-ui-utils] -file_filter = modules\UIUtils\src\main\resources\org\gephi\ui\utils\.po -source_file = modules\UIUtils\src\main\resources\org\gephi\ui\utils\org-gephi-ui-utils.pot -source_lang = en -type = PO - -[gephi.org-gephi-ui-components] -file_filter = modules\UIComponents\src\main\resources\org\gephi\ui\components\.po -source_file = modules\UIComponents\src\main\resources\org\gephi\ui\components\org-gephi-ui-components.pot -source_lang = en -type = PO - -[gephi.org-gephi-ui-tools-plugin] -file_filter = modules\ToolsPlugin\src\main\resources\org\gephi\ui\tools\plugin\.po -source_file = modules\ToolsPlugin\src\main\resources\org\gephi\ui\tools\plugin\org-gephi-ui-tools-plugin.pot -source_lang = en -type = PO - -[gephi.org-gephi-ui-tools-plugin-edit] -file_filter = modules\ToolsPlugin\src\main\resources\org\gephi\ui\tools\plugin\edit\.po -source_file = modules\ToolsPlugin\src\main\resources\org\gephi\ui\tools\plugin\edit\org-gephi-ui-tools-plugin-edit.pot -source_lang = en -type = PO - -[gephi.org-gephi-tools-plugin] -file_filter = modules\ToolsPlugin\src\main\resources\org\gephi\tools\plugin\.po -source_file = modules\ToolsPlugin\src\main\resources\org\gephi\tools\plugin\org-gephi-tools-plugin.pot -source_lang = en -type = PO - -[gephi.org-gephi-tools-api] -file_filter = modules\ToolsAPI\src\main\resources\org\gephi\tools\api\.po -source_file = modules\ToolsAPI\src\main\resources\org\gephi\tools\api\org-gephi-tools-api.pot -source_lang = en -type = PO - -[gephi.org-gephi-timeline] -file_filter = modules\TimelineAPI\src\main\resources\org\gephi\timeline\.po -source_file = modules\TimelineAPI\src\main\resources\org\gephi\timeline\org-gephi-timeline.pot -source_lang = en -type = PO - -[gephi.org-gephi-ui-statistics-plugin] -file_filter = modules\StatisticsPluginUI\src\main\resources\org\gephi\ui\statistics\plugin\.po -source_file = modules\StatisticsPluginUI\src\main\resources\org\gephi\ui\statistics\plugin\org-gephi-ui-statistics-plugin.pot -source_lang = en -type = PO - -[gephi.org-gephi-ui-statistics-plugin-dynamic] -file_filter = modules\StatisticsPluginUI\src\main\resources\org\gephi\ui\statistics\plugin\dynamic\.po -source_file = modules\StatisticsPluginUI\src\main\resources\org\gephi\ui\statistics\plugin\dynamic\org-gephi-ui-statistics-plugin-dynamic.pot -source_lang = en -type = PO - -[gephi.org-gephi-statistics-plugin] -file_filter = modules\StatisticsPlugin\src\main\resources\org\gephi\statistics\plugin\.po -source_file = modules\StatisticsPlugin\src\main\resources\org\gephi\statistics\plugin\org-gephi-statistics-plugin.pot -source_lang = en -type = PO - -[gephi.org-gephi-statistics-plugin-dynamic] -file_filter = modules\StatisticsPlugin\src\main\resources\org\gephi\statistics\plugin\dynamic\.po -source_file = modules\StatisticsPlugin\src\main\resources\org\gephi\statistics\plugin\dynamic\org-gephi-statistics-plugin-dynamic.pot -source_lang = en -type = PO - -[gephi.org-gephi-statistics-plugin-dynamic-builder] -file_filter = modules\StatisticsPlugin\src\main\resources\org\gephi\statistics\plugin\dynamic\builder\.po -source_file = modules\StatisticsPlugin\src\main\resources\org\gephi\statistics\plugin\dynamic\builder\org-gephi-statistics-plugin-dynamic-builder.pot -source_lang = en -type = PO - -[gephi.org-gephi-statistics-plugin-builder] -file_filter = modules\StatisticsPlugin\src\main\resources\org\gephi\statistics\plugin\builder\.po -source_file = modules\StatisticsPlugin\src\main\resources\org\gephi\statistics\plugin\builder\org-gephi-statistics-plugin-builder.pot -source_lang = en -type = PO - -[gephi.org-gephi-statistics-spi] -file_filter = modules\StatisticsAPI\src\main\resources\org\gephi\statistics\spi\.po -source_file = modules\StatisticsAPI\src\main\resources\org\gephi\statistics\spi\org-gephi-statistics-spi.pot -source_lang = en -type = PO - -[gephi.org-gephi-statistics-api] -file_filter = modules\StatisticsAPI\src\main\resources\org\gephi\statistics\api\.po -source_file = modules\StatisticsAPI\src\main\resources\org\gephi\statistics\api\org-gephi-statistics-api.pot -source_lang = en -type = PO - -[gephi.org-gephi-ui-components-SplineEditor] -file_filter = modules\SplineEditor\src\main\resources\org\gephi\ui\components\SplineEditor\.po -source_file = modules\SplineEditor\src\main\resources\org\gephi\ui\components\SplineEditor\org-gephi-ui-components-SplineEditor.pot -source_lang = en -type = PO - -[gephi.org-gephi-ui-spigot-plugin] -file_filter = modules\SpigotPluginUI\src\main\resources\org\gephi\ui\spigot\plugin\.po -source_file = modules\SpigotPluginUI\src\main\resources\org\gephi\ui\spigot\plugin\org-gephi-ui-spigot-plugin.pot -source_lang = en -type = PO - -[gephi.org-gephi-ui-spigot-plugin-email] -file_filter = modules\SpigotPluginUI\src\main\resources\org\gephi\ui\spigot\plugin\email\.po -source_file = modules\SpigotPluginUI\src\main\resources\org\gephi\ui\spigot\plugin\email\org-gephi-ui-spigot-plugin-email.pot -source_lang = en -type = PO - -[gephi.org-gephi-io-spigot-plugin] -file_filter = modules\SpigotPlugin\src\main\resources\org\gephi\io\spigot\plugin\.po -source_file = modules\SpigotPlugin\src\main\resources\org\gephi\io\spigot\plugin\org-gephi-io-spigot-plugin.pot -source_lang = en -type = PO - -[gephi.org-gephi-io-spigot-plugin-email] -file_filter = modules\SpigotPlugin\src\main\resources\org\gephi\io\spigot\plugin\email\.po -source_file = modules\SpigotPlugin\src\main\resources\org\gephi\io\spigot\plugin\email\org-gephi-io-spigot-plugin-email.pot -source_lang = en -type = PO - -[gephi.org-gephi-ui-upgrader] -file_filter = modules\SettingsUpgrader\src\main\resources\org\gephi\ui\upgrader\.po -source_file = modules\SettingsUpgrader\src\main\resources\org\gephi\ui\upgrader\org-gephi-ui-upgrader.pot -source_lang = en -type = PO - -[gephi.org-gephi-ui-ranking-plugin] -file_filter = modules\RankingPluginUI\src\main\resources\org\gephi\ui\ranking\plugin\.po -source_file = modules\RankingPluginUI\src\main\resources\org\gephi\ui\ranking\plugin\org-gephi-ui-ranking-plugin.pot -source_lang = en -type = PO - -[gephi.org-gephi-ranking-plugin] -file_filter = modules\RankingPlugin\src\main\resources\org\gephi\ranking\plugin\.po -source_file = modules\RankingPlugin\src\main\resources\org\gephi\ranking\plugin\org-gephi-ranking-plugin.pot -source_lang = en -type = PO - -[gephi.org-gephi-ranking-api] -file_filter = modules\RankingAPI\src\main\resources\org\gephi\ranking\api\.po -source_file = modules\RankingAPI\src\main\resources\org\gephi\ranking\api\org-gephi-ranking-api.pot -source_lang = en -type = PO - -[gephi.org-gephi-ui-project] -file_filter = modules\ProjectUI\src\main\resources\org\gephi\ui\project\.po -source_file = modules\ProjectUI\src\main\resources\org\gephi\ui\project\org-gephi-ui-project.pot -source_lang = en -type = PO - -[gephi.org-gephi-project-io] -file_filter = modules\ProjectAPI\src\main\resources\org\gephi\project\io\.po -source_file = modules\ProjectAPI\src\main\resources\org\gephi\project\io\org-gephi-project-io.pot -source_lang = en -type = PO - -[gephi.org-gephi-project-impl] -file_filter = modules\ProjectAPI\src\main\resources\org\gephi\project\impl\.po -source_file = modules\ProjectAPI\src\main\resources\org\gephi\project\impl\org-gephi-project-impl.pot -source_lang = en -type = PO - -[gephi.org-gephi-project-api] -file_filter = modules\ProjectAPI\src\main\resources\org\gephi\project\api\.po -source_file = modules\ProjectAPI\src\main\resources\org\gephi\project\api\org-gephi-project-api.pot -source_lang = en -type = PO - -[gephi.org-gephi-ui-processor-plugin] -file_filter = modules\ProcessorPluginUI\src\main\resources\org\gephi\ui\processor\plugin\.po -source_file = modules\ProcessorPluginUI\src\main\resources\org\gephi\ui\processor\plugin\org-gephi-ui-processor-plugin.pot -source_lang = en -type = PO - -[gephi.org-gephi-io-processor-plugin] -file_filter = modules\ProcessorPlugin\src\main\resources\org\gephi\io\processor\plugin\.po -source_file = modules\ProcessorPlugin\src\main\resources\org\gephi\io\processor\plugin\org-gephi-io-processor-plugin.pot -source_lang = en -type = PO - -[gephi.org-gephi-preview-plugin] -file_filter = modules\PreviewPlugin\src\main\resources\org\gephi\preview\plugin\.po -source_file = modules\PreviewPlugin\src\main\resources\org\gephi\preview\plugin\org-gephi-preview-plugin.pot -source_lang = en -type = PO - -[gephi.org-gephi-preview-plugin-renderers] -file_filter = modules\PreviewPlugin\src\main\resources\org\gephi\preview\plugin\renderers\.po -source_file = modules\PreviewPlugin\src\main\resources\org\gephi\preview\plugin\renderers\org-gephi-preview-plugin-renderers.pot -source_lang = en -type = PO - -[gephi.org-gephi-ui-exporter-preview] -file_filter = modules\PreviewExportUI\src\main\resources\org\gephi\ui\exporter\preview\.po -source_file = modules\PreviewExportUI\src\main\resources\org\gephi\ui\exporter\preview\org-gephi-ui-exporter-preview.pot -source_lang = en -type = PO - -[gephi.org-gephi-io-exporter-preview] -file_filter = modules\PreviewExport\src\main\resources\org\gephi\io\exporter\preview\.po -source_file = modules\PreviewExport\src\main\resources\org\gephi\io\exporter\preview\org-gephi-io-exporter-preview.pot -source_lang = en -type = PO - -[gephi.org-gephi-preview] -file_filter = modules\PreviewAPI\src\main\resources\org\gephi\preview\.po -source_file = modules\PreviewAPI\src\main\resources\org\gephi\preview\org-gephi-preview.pot -source_lang = en -type = PO - -[gephi.org-gephi-preview-presets] -file_filter = modules\PreviewAPI\src\main\resources\org\gephi\preview\presets\.po -source_file = modules\PreviewAPI\src\main\resources\org\gephi\preview\presets\org-gephi-preview-presets.pot -source_lang = en -type = PO - -[gephi.org-gephi-preview-api] -file_filter = modules\PreviewAPI\src\main\resources\org\gephi\preview\api\.po -source_file = modules\PreviewAPI\src\main\resources\org\gephi\preview\api\org-gephi-preview-api.pot -source_lang = en -type = PO - -[gephi.org-gephi-perspective-api] -file_filter = modules\PerspectiveAPI\src\main\resources\org\gephi\perspective\api\.po -source_file = modules\PerspectiveAPI\src\main\resources\org\gephi\perspective\api\org-gephi-perspective-api.pot -source_lang = en -type = PO - -[gephi.org-gephi-ui-partition-plugin] -file_filter = modules\PartitionPluginUI\src\main\resources\org\gephi\ui\partition\plugin\.po -source_file = modules\PartitionPluginUI\src\main\resources\org\gephi\ui\partition\plugin\org-gephi-ui-partition-plugin.pot -source_lang = en -type = PO - -[gephi.org-gephi-partition-plugin] -file_filter = modules\PartitionPlugin\src\main\resources\org\gephi\partition\plugin\.po -source_file = modules\PartitionPlugin\src\main\resources\org\gephi\partition\plugin\org-gephi-partition-plugin.pot -source_lang = en -type = PO - -[gephi.org-gephi-partition-api] -file_filter = modules\PartitionAPI\src\main\resources\org\gephi\partition\api\.po -source_file = modules\PartitionAPI\src\main\resources\org\gephi\partition\api\org-gephi-partition-api.pot -source_lang = en -type = PO - -[gephi.org-gephi-desktop-mrufiles-api] -file_filter = modules\MostRecentFilesAPI\src\main\resources\org\gephi\desktop\mrufiles\api\.po -source_file = modules\MostRecentFilesAPI\src\main\resources\org\gephi\desktop\mrufiles\api\org-gephi-desktop-mrufiles-api.pot -source_lang = en -type = PO - -[gephi.org-gephi-utils-longtask] -file_filter = modules\LongTaskAPI\src\main\resources\org\gephi\utils\longtask\.po -source_file = modules\LongTaskAPI\src\main\resources\org\gephi\utils\longtask\org-gephi-utils-longtask.pot -source_lang = en -type = PO - -[gephi.org-gephi-layout-plugin] -file_filter = modules\LayoutPlugin\src\main\resources\org\gephi\layout\plugin\.po -source_file = modules\LayoutPlugin\src\main\resources\org\gephi\layout\plugin\org-gephi-layout-plugin.pot -source_lang = en -type = PO - -[gephi.org-gephi-layout-plugin-scale] -file_filter = modules\LayoutPlugin\src\main\resources\org\gephi\layout\plugin\scale\.po -source_file = modules\LayoutPlugin\src\main\resources\org\gephi\layout\plugin\scale\org-gephi-layout-plugin-scale.pot -source_lang = en -type = PO - -[gephi.org-gephi-layout-plugin-rotate] -file_filter = modules\LayoutPlugin\src\main\resources\org\gephi\layout\plugin\rotate\.po -source_file = modules\LayoutPlugin\src\main\resources\org\gephi\layout\plugin\rotate\org-gephi-layout-plugin-rotate.pot -source_lang = en -type = PO - -[gephi.org-gephi-layout-plugin-random] -file_filter = modules\LayoutPlugin\src\main\resources\org\gephi\layout\plugin\random\.po -source_file = modules\LayoutPlugin\src\main\resources\org\gephi\layout\plugin\random\org-gephi-layout-plugin-random.pot -source_lang = en -type = PO - -[gephi.org-gephi-layout-plugin-multilevel] -file_filter = modules\LayoutPlugin\src\main\resources\org\gephi\layout\plugin\multilevel\.po -source_file = modules\LayoutPlugin\src\main\resources\org\gephi\layout\plugin\multilevel\org-gephi-layout-plugin-multilevel.pot -source_lang = en -type = PO - -[gephi.org-gephi-layout-plugin-labelAdjust] -file_filter = modules\LayoutPlugin\src\main\resources\org\gephi\layout\plugin\labelAdjust\.po -source_file = modules\LayoutPlugin\src\main\resources\org\gephi\layout\plugin\labelAdjust\org-gephi-layout-plugin-labelAdjust.pot -source_lang = en -type = PO - -[gephi.org-gephi-layout-plugin-fruchterman] -file_filter = modules\LayoutPlugin\src\main\resources\org\gephi\layout\plugin\fruchterman\.po -source_file = modules\LayoutPlugin\src\main\resources\org\gephi\layout\plugin\fruchterman\org-gephi-layout-plugin-fruchterman.pot -source_lang = en -type = PO - -[gephi.org-gephi-layout-plugin-forceAtlas2] -file_filter = modules\LayoutPlugin\src\main\resources\org\gephi\layout\plugin\forceAtlas2\.po -source_file = modules\LayoutPlugin\src\main\resources\org\gephi\layout\plugin\forceAtlas2\org-gephi-layout-plugin-forceAtlas2.pot -source_lang = en -type = PO - -[gephi.org-gephi-layout-plugin-forceAtlas] -file_filter = modules\LayoutPlugin\src\main\resources\org\gephi\layout\plugin\forceAtlas\.po -source_file = modules\LayoutPlugin\src\main\resources\org\gephi\layout\plugin\forceAtlas\org-gephi-layout-plugin-forceAtlas.pot -source_lang = en -type = PO - -[gephi.org-gephi-layout-plugin-force-yifanHu] -file_filter = modules\LayoutPlugin\src\main\resources\org\gephi\layout\plugin\force\yifanHu\.po -source_file = modules\LayoutPlugin\src\main\resources\org\gephi\layout\plugin\force\yifanHu\org-gephi-layout-plugin-force-yifanHu.pot -source_lang = en -type = PO - -[gephi.org-gephi-layout] -file_filter = modules\LayoutAPI\src\main\resources\org\gephi\layout\.po -source_file = modules\LayoutAPI\src\main\resources\org\gephi\layout\org-gephi-layout.pot -source_lang = en -type = PO - -[gephi.org-gephi-layout-api] -file_filter = modules\LayoutAPI\src\main\resources\org\gephi\layout\api\.po -source_file = modules\LayoutAPI\src\main\resources\org\gephi\layout\api\org-gephi-layout-api.pot -source_lang = en -type = PO - -[gephi.org-gephi-ui-importer-plugin] -file_filter = modules\ImportPluginUI\src\main\resources\org\gephi\ui\importer\plugin\.po -source_file = modules\ImportPluginUI\src\main\resources\org\gephi\ui\importer\plugin\org-gephi-ui-importer-plugin.pot -source_lang = en -type = PO - -[gephi.org-gephi-io-importer-plugin] -file_filter = modules\ImportPlugin\src\main\resources\org\gephi\io\importer\plugin\.po -source_file = modules\ImportPlugin\src\main\resources\org\gephi\io\importer\plugin\org-gephi-io-importer-plugin.pot -source_lang = en -type = PO - -[gephi.org-gephi-io-importer-plugin-file] -file_filter = modules\ImportPlugin\src\main\resources\org\gephi\io\importer\plugin\file\.po -source_file = modules\ImportPlugin\src\main\resources\org\gephi\io\importer\plugin\file\org-gephi-io-importer-plugin-file.pot -source_lang = en -type = PO - -[gephi.org-gephi-io-importer-impl] -file_filter = modules\ImportAPI\src\main\resources\org\gephi\io\importer\impl\.po -source_file = modules\ImportAPI\src\main\resources\org\gephi\io\importer\impl\org-gephi-io-importer-impl.pot -source_lang = en -type = PO - -[gephi.org-gephi-io-importer-api] -file_filter = modules\ImportAPI\src\main\resources\org\gephi\io\importer\api\.po -source_file = modules\ImportAPI\src\main\resources\org\gephi\io\importer\api\org-gephi-io-importer-api.pot -source_lang = en -type = PO - -[gephi.org-gephi-graph-api] -file_filter = modules\GraphAPI\src\main\resources\org\gephi\graph\api\.po -source_file = modules\GraphAPI\src\main\resources\org\gephi\graph\api\org-gephi-graph-api.pot -source_lang = en -type = PO - -[gephi.org-gephi-lib-gleem] -file_filter = modules\Gleem\src\main\resources\org\gephi\lib\gleem\.po -source_file = modules\Gleem\src\main\resources\org\gephi\lib\gleem\org-gephi-lib-gleem.pot -source_lang = en -type = PO - -[gephi.org-gephi-ui-generator-plugin] -file_filter = modules\GeneratorPluginUI\src\main\resources\org\gephi\ui\generator\plugin\.po -source_file = modules\GeneratorPluginUI\src\main\resources\org\gephi\ui\generator\plugin\org-gephi-ui-generator-plugin.pot -source_lang = en -type = PO - -[gephi.org-gephi-io-generator-plugin] -file_filter = modules\GeneratorPlugin\src\main\resources\org\gephi\io\generator\plugin\.po -source_file = modules\GeneratorPlugin\src\main\resources\org\gephi\io\generator\plugin\org-gephi-io-generator-plugin.pot -source_lang = en -type = PO - -[gephi.org-gephi-io-generator-api] -file_filter = modules\GeneratorAPI\src\main\resources\org\gephi\io\generator\api\.po -source_file = modules\GeneratorAPI\src\main\resources\org\gephi\io\generator\api\org-gephi-io-generator-api.pot -source_lang = en -type = PO - -[gephi.org-gephi-ui-filters-plugin] -file_filter = modules\FiltersPluginUI\src\main\resources\org\gephi\ui\filters\plugin\.po -source_file = modules\FiltersPluginUI\src\main\resources\org\gephi\ui\filters\plugin\org-gephi-ui-filters-plugin.pot -source_lang = en -type = PO - -[gephi.org-gephi-ui-filters-plugin-partition] -file_filter = modules\FiltersPluginUI\src\main\resources\org\gephi\ui\filters\plugin\partition\.po -source_file = modules\FiltersPluginUI\src\main\resources\org\gephi\ui\filters\plugin\partition\org-gephi-ui-filters-plugin-partition.pot -source_lang = en -type = PO - -[gephi.org-gephi-ui-filters-plugin-operator] -file_filter = modules\FiltersPluginUI\src\main\resources\org\gephi\ui\filters\plugin\operator\.po -source_file = modules\FiltersPluginUI\src\main\resources\org\gephi\ui\filters\plugin\operator\org-gephi-ui-filters-plugin-operator.pot -source_lang = en -type = PO - -[gephi.org-gephi-ui-filters-plugin-graph] -file_filter = modules\FiltersPluginUI\src\main\resources\org\gephi\ui\filters\plugin\graph\.po -source_file = modules\FiltersPluginUI\src\main\resources\org\gephi\ui\filters\plugin\graph\org-gephi-ui-filters-plugin-graph.pot -source_lang = en -type = PO - -[gephi.org-gephi-ui-filters-plugin-dynamic] -file_filter = modules\FiltersPluginUI\src\main\resources\org\gephi\ui\filters\plugin\dynamic\.po -source_file = modules\FiltersPluginUI\src\main\resources\org\gephi\ui\filters\plugin\dynamic\org-gephi-ui-filters-plugin-dynamic.pot -source_lang = en -type = PO - -[gephi.org-gephi-ui-filters-plugin-attribute] -file_filter = modules\FiltersPluginUI\src\main\resources\org\gephi\ui\filters\plugin\attribute\.po -source_file = modules\FiltersPluginUI\src\main\resources\org\gephi\ui\filters\plugin\attribute\org-gephi-ui-filters-plugin-attribute.pot -source_lang = en -type = PO - -[gephi.org-gephi-filters-plugin] -file_filter = modules\FiltersPlugin\src\main\resources\org\gephi\filters\plugin\.po -source_file = modules\FiltersPlugin\src\main\resources\org\gephi\filters\plugin\org-gephi-filters-plugin.pot -source_lang = en -type = PO - -[gephi.org-gephi-filters-plugin-partition] -file_filter = modules\FiltersPlugin\src\main\resources\org\gephi\filters\plugin\partition\.po -source_file = modules\FiltersPlugin\src\main\resources\org\gephi\filters\plugin\partition\org-gephi-filters-plugin-partition.pot -source_lang = en -type = PO - -[gephi.org-gephi-filters-plugin-operator] -file_filter = modules\FiltersPlugin\src\main\resources\org\gephi\filters\plugin\operator\.po -source_file = modules\FiltersPlugin\src\main\resources\org\gephi\filters\plugin\operator\org-gephi-filters-plugin-operator.pot -source_lang = en -type = PO - -[gephi.org-gephi-filters-plugin-hierarchy] -file_filter = modules\FiltersPlugin\src\main\resources\org\gephi\filters\plugin\hierarchy\.po -source_file = modules\FiltersPlugin\src\main\resources\org\gephi\filters\plugin\hierarchy\org-gephi-filters-plugin-hierarchy.pot -source_lang = en -type = PO - -[gephi.org-gephi-filters-plugin-graph] -file_filter = modules\FiltersPlugin\src\main\resources\org\gephi\filters\plugin\graph\.po -source_file = modules\FiltersPlugin\src\main\resources\org\gephi\filters\plugin\graph\org-gephi-filters-plugin-graph.pot -source_lang = en -type = PO - -[gephi.org-gephi-filters-plugin-edge] -file_filter = modules\FiltersPlugin\src\main\resources\org\gephi\filters\plugin\edge\.po -source_file = modules\FiltersPlugin\src\main\resources\org\gephi\filters\plugin\edge\org-gephi-filters-plugin-edge.pot -source_lang = en -type = PO - -[gephi.org-gephi-filters-plugin-dynamic] -file_filter = modules\FiltersPlugin\src\main\resources\org\gephi\filters\plugin\dynamic\.po -source_file = modules\FiltersPlugin\src\main\resources\org\gephi\filters\plugin\dynamic\org-gephi-filters-plugin-dynamic.pot -source_lang = en -type = PO - -[gephi.org-gephi-filters-plugin-attribute] -file_filter = modules\FiltersPlugin\src\main\resources\org\gephi\filters\plugin\attribute\.po -source_file = modules\FiltersPlugin\src\main\resources\org\gephi\filters\plugin\attribute\org-gephi-filters-plugin-attribute.pot -source_lang = en -type = PO - -[gephi.org-gephi-filters] -file_filter = modules\FiltersImpl\src\main\resources\org\gephi\filters\.po -source_file = modules\FiltersImpl\src\main\resources\org\gephi\filters\org-gephi-filters.pot -source_lang = en -type = PO - -[gephi.org-gephi-filters-api] -file_filter = modules\FiltersAPI\src\main\resources\org\gephi\filters\api\.po -source_file = modules\FiltersAPI\src\main\resources\org\gephi\filters\api\org-gephi-filters-api.pot -source_lang = en -type = PO - -[gephi.org-gephi-ui-exporter-plugin] -file_filter = modules\ExportPluginUI\src\main\resources\org\gephi\ui\exporter\plugin\.po -source_file = modules\ExportPluginUI\src\main\resources\org\gephi\ui\exporter\plugin\org-gephi-ui-exporter-plugin.pot -source_lang = en -type = PO - -[gephi.org-gephi-io-exporter-plugin] -file_filter = modules\ExportPlugin\src\main\resources\org\gephi\io\exporter\plugin\.po -source_file = modules\ExportPlugin\src\main\resources\org\gephi\io\exporter\plugin\org-gephi-io-exporter-plugin.pot -source_lang = en -type = PO - -[gephi.org-gephi-io-exporter-impl] -file_filter = modules\ExportAPI\src\main\resources\org\gephi\io\exporter\impl\.po -source_file = modules\ExportAPI\src\main\resources\org\gephi\io\exporter\impl\org-gephi-io-exporter-impl.pot -source_lang = en -type = PO - -[gephi.org-gephi-io-exporter-api] -file_filter = modules\ExportAPI\src\main\resources\org\gephi\io\exporter\api\.po -source_file = modules\ExportAPI\src\main\resources\org\gephi\io\exporter\api\org-gephi-io-exporter-api.pot -source_lang = en -type = PO - -[gephi.org-gephi-dynamic] -file_filter = modules\DynamicImpl\src\main\resources\org\gephi\dynamic\.po -source_file = modules\DynamicImpl\src\main\resources\org\gephi\dynamic\org-gephi-dynamic.pot -source_lang = en -type = PO - -[gephi.org-gephi-dynamic-api] -file_filter = modules\DynamicAPI\src\main\resources\org\gephi\dynamic\api\.po -source_file = modules\DynamicAPI\src\main\resources\org\gephi\dynamic\api\org-gephi-dynamic-api.pot -source_lang = en -type = PO - -[gephi.org-netbeans-swing-dirchooser] -file_filter = modules\DirectoryChooser\src\main\resources\org\netbeans\swing\dirchooser\.po -source_file = modules\DirectoryChooser\src\main\resources\org\netbeans\swing\dirchooser\org-netbeans-swing-dirchooser.pot -source_lang = en -type = PO - -[gephi.org-gephi-graph-dhns] -file_filter = modules\DHNSGraph\src\main\resources\org\gephi\graph\dhns\.po -source_file = modules\DHNSGraph\src\main\resources\org\gephi\graph\dhns\org-gephi-graph-dhns.pot -source_lang = en -type = PO - -[gephi.org-gephi-desktop-tools] -file_filter = modules\DesktopTools\src\main\resources\org\gephi\desktop\tools\.po -source_file = modules\DesktopTools\src\main\resources\org\gephi\desktop\tools\org-gephi-desktop-tools.pot -source_lang = en -type = PO - -[gephi.org-gephi-desktop-timeline] -file_filter = modules\DesktopTimeline\src\main\resources\org\gephi\desktop\timeline\.po -source_file = modules\DesktopTimeline\src\main\resources\org\gephi\desktop\timeline\org-gephi-desktop-timeline.pot -source_lang = en -type = PO - -[gephi.org-gephi-desktop-statistics] -file_filter = modules\DesktopStatistics\src\main\resources\org\gephi\desktop\statistics\.po -source_file = modules\DesktopStatistics\src\main\resources\org\gephi\desktop\statistics\org-gephi-desktop-statistics.pot -source_lang = en -type = PO - -[gephi.org-gephi-desktop-spigot] -file_filter = modules\DesktopSpigot\src\main\resources\org\gephi\desktop\spigot\.po -source_file = modules\DesktopSpigot\src\main\resources\org\gephi\desktop\spigot\org-gephi-desktop-spigot.pot -source_lang = en -type = PO - -[gephi.org-gephi-desktop-recentfiles] -file_filter = modules\DesktopRecentFiles\src\main\resources\org\gephi\desktop\recentfiles\.po -source_file = modules\DesktopRecentFiles\src\main\resources\org\gephi\desktop\recentfiles\org-gephi-desktop-recentfiles.pot -source_lang = en -type = PO - -[gephi.org-gephi-desktop-ranking] -file_filter = modules\DesktopRanking\src\main\resources\org\gephi\desktop\ranking\.po -source_file = modules\DesktopRanking\src\main\resources\org\gephi\desktop\ranking\org-gephi-desktop-ranking.pot -source_lang = en -type = PO - -[gephi.org-gephi-desktop-project] -file_filter = modules\DesktopProject\src\main\resources\org\gephi\desktop\project\.po -source_file = modules\DesktopProject\src\main\resources\org\gephi\desktop\project\org-gephi-desktop-project.pot -source_lang = en -type = PO - -[gephi.org-gephi-desktop-progress] -file_filter = modules\DesktopProgress\src\main\resources\org\gephi\desktop\progress\.po -source_file = modules\DesktopProgress\src\main\resources\org\gephi\desktop\progress\org-gephi-desktop-progress.pot -source_lang = en -type = PO - -[gephi.org-gephi-desktop-preview] -file_filter = modules\DesktopPreview\src\main\resources\org\gephi\desktop\preview\.po -source_file = modules\DesktopPreview\src\main\resources\org\gephi\desktop\preview\org-gephi-desktop-preview.pot -source_lang = en -type = PO - -[gephi.org-gephi-desktop-preview-propertyeditors] -file_filter = modules\DesktopPreview\src\main\resources\org\gephi\desktop\preview\propertyeditors\.po -source_file = modules\DesktopPreview\src\main\resources\org\gephi\desktop\preview\propertyeditors\org-gephi-desktop-preview-propertyeditors.pot -source_lang = en -type = PO - -[gephi.org-gephi-desktop-perspective] -file_filter = modules\DesktopPerspective\src\main\resources\org\gephi\desktop\perspective\.po -source_file = modules\DesktopPerspective\src\main\resources\org\gephi\desktop\perspective\org-gephi-desktop-perspective.pot -source_lang = en -type = PO - -[gephi.org-gephi-desktop-perspective-plugin] -file_filter = modules\DesktopPerspective\src\main\resources\org\gephi\desktop\perspective\plugin\.po -source_file = modules\DesktopPerspective\src\main\resources\org\gephi\desktop\perspective\plugin\org-gephi-desktop-perspective-plugin.pot -source_lang = en -type = PO - -[gephi.org-gephi-desktop-partition] -file_filter = modules\DesktopPartition\src\main\resources\org\gephi\desktop\partition\.po -source_file = modules\DesktopPartition\src\main\resources\org\gephi\desktop\partition\org-gephi-desktop-partition.pot -source_lang = en -type = PO - -[gephi.org-gephi-desktop-layout] -file_filter = modules\DesktopLayout\src\main\resources\org\gephi\desktop\layout\.po -source_file = modules\DesktopLayout\src\main\resources\org\gephi\desktop\layout\org-gephi-desktop-layout.pot -source_lang = en -type = PO - -[gephi.org-gephi-desktop-importer] -file_filter = modules\DesktopImport\src\main\resources\org\gephi\desktop\importer\.po -source_file = modules\DesktopImport\src\main\resources\org\gephi\desktop\importer\org-gephi-desktop-importer.pot -source_lang = en -type = PO - -[gephi.org-gephi-desktop-hierarchy] -file_filter = modules\DesktopHierarchy\src\main\resources\org\gephi\desktop\hierarchy\.po -source_file = modules\DesktopHierarchy\src\main\resources\org\gephi\desktop\hierarchy\org-gephi-desktop-hierarchy.pot -source_lang = en -type = PO - -[gephi.org-gephi-desktop-generate] -file_filter = modules\DesktopGenerate\src\main\resources\org\gephi\desktop\generate\.po -source_file = modules\DesktopGenerate\src\main\resources\org\gephi\desktop\generate\org-gephi-desktop-generate.pot -source_lang = en -type = PO - -[gephi.org-gephi-desktop-filters] -file_filter = modules\DesktopFilters\src\main\resources\org\gephi\desktop\filters\.po -source_file = modules\DesktopFilters\src\main\resources\org\gephi\desktop\filters\org-gephi-desktop-filters.pot -source_lang = en -type = PO - -[gephi.org-gephi-desktop-filters-query] -file_filter = modules\DesktopFilters\src\main\resources\org\gephi\desktop\filters\query\.po -source_file = modules\DesktopFilters\src\main\resources\org\gephi\desktop\filters\query\org-gephi-desktop-filters-query.pot -source_lang = en -type = PO - -[gephi.org-gephi-desktop-filters-library] -file_filter = modules\DesktopFilters\src\main\resources\org\gephi\desktop\filters\library\.po -source_file = modules\DesktopFilters\src\main\resources\org\gephi\desktop\filters\library\org-gephi-desktop-filters-library.pot -source_lang = en -type = PO - -[gephi.org-gephi-desktop-io-export] -file_filter = modules\DesktopExport\src\main\resources\org\gephi\desktop\io\export\.po -source_file = modules\DesktopExport\src\main\resources\org\gephi\desktop\io\export\org-gephi-desktop-io-export.pot -source_lang = en -type = PO - -[gephi.org-gephi-desktop-io-export-api] -file_filter = modules\DesktopExport\src\main\resources\org\gephi\desktop\io\export\api\.po -source_file = modules\DesktopExport\src\main\resources\org\gephi\desktop\io\export\api\org-gephi-desktop-io-export-api.pot -source_lang = en -type = PO - -[gephi.org-gephi-desktop-datalab] -file_filter = modules\DesktopDataLaboratory\src\main\resources\org\gephi\desktop\datalab\.po -source_file = modules\DesktopDataLaboratory\src\main\resources\org\gephi\desktop\datalab\org-gephi-desktop-datalab.pot -source_lang = en -type = PO - -[gephi.org-gephi-desktop-datalab-utils] -file_filter = modules\DesktopDataLaboratory\src\main\resources\org\gephi\desktop\datalab\utils\.po -source_file = modules\DesktopDataLaboratory\src\main\resources\org\gephi\desktop\datalab\utils\org-gephi-desktop-datalab-utils.pot -source_lang = en -type = PO - -[gephi.org-gephi-desktop-datalab-general-actions] -file_filter = modules\DesktopDataLaboratory\src\main\resources\org\gephi\desktop\datalab\general\actions\.po -source_file = modules\DesktopDataLaboratory\src\main\resources\org\gephi\desktop\datalab\general\actions\org-gephi-desktop-datalab-general-actions.pot -source_lang = en -type = PO - -[gephi.org-gephi-desktop-context] -file_filter = modules\DesktopContext\src\main\resources\org\gephi\desktop\context\.po -source_file = modules\DesktopContext\src\main\resources\org\gephi\desktop\context\org-gephi-desktop-context.pot -source_lang = en -type = PO - -[gephi.org-gephi-desktop-clustering] -file_filter = modules\DesktopClustering\src\main\resources\org\gephi\desktop\clustering\.po -source_file = modules\DesktopClustering\src\main\resources\org\gephi\desktop\clustering\org-gephi-desktop-clustering.pot -source_lang = en -type = PO - -[gephi.org-gephi-branding-desktop] -file_filter = modules\DesktopBranding\src\main\resources\org\gephi\branding\desktop\.po -source_file = modules\DesktopBranding\src\main\resources\org\gephi\branding\desktop\org-gephi-branding-desktop.pot -source_lang = en -type = PO - -[gephi.org-gephi-branding-desktop-reporter] -file_filter = modules\DesktopBranding\src\main\resources\org\gephi\branding\desktop\reporter\.po -source_file = modules\DesktopBranding\src\main\resources\org\gephi\branding\desktop\reporter\org-gephi-branding-desktop-reporter.pot -source_lang = en -type = PO - -[gephi.org-gephi-branding-desktop-multilingual] -file_filter = modules\DesktopBranding\src\main\resources\org\gephi\branding\desktop\multilingual\.po -source_file = modules\DesktopBranding\src\main\resources\org\gephi\branding\desktop\multilingual\org-gephi-branding-desktop-multilingual.pot -source_lang = en -type = PO - -[gephi.org-gephi-branding-desktop-actions] -file_filter = modules\DesktopBranding\src\main\resources\org\gephi\branding\desktop\actions\.po -source_file = modules\DesktopBranding\src\main\resources\org\gephi\branding\desktop\actions\org-gephi-branding-desktop-actions.pot -source_lang = en -type = PO - -[gephi.org-gephi-io-database-drivers] -file_filter = modules\DBDrivers\src\main\resources\org\gephi\io\database\drivers\.po -source_file = modules\DBDrivers\src\main\resources\org\gephi\io\database\drivers\org-gephi-io-database-drivers.pot -source_lang = en -type = PO - -[gephi.org-gephi-datalab-plugin] -file_filter = modules\DataLaboratoryPlugin\src\main\resources\org\gephi\datalab\plugin\.po -source_file = modules\DataLaboratoryPlugin\src\main\resources\org\gephi\datalab\plugin\org-gephi-datalab-plugin.pot -source_lang = en -type = PO - -[gephi.org-gephi-datalab-plugin-manipulators-values] -file_filter = modules\DataLaboratoryPlugin\src\main\resources\org\gephi\datalab\plugin\manipulators\values\.po -source_file = modules\DataLaboratoryPlugin\src\main\resources\org\gephi\datalab\plugin\manipulators\values\org-gephi-datalab-plugin-manipulators-values.pot -source_lang = en -type = PO - -[gephi.org-gephi-datalab-plugin-manipulators-ui] -file_filter = modules\DataLaboratoryPlugin\src\main\resources\org\gephi\datalab\plugin\manipulators\ui\.po -source_file = modules\DataLaboratoryPlugin\src\main\resources\org\gephi\datalab\plugin\manipulators\ui\org-gephi-datalab-plugin-manipulators-ui.pot -source_lang = en -type = PO - -[gephi.org-gephi-datalab-plugin-manipulators-rows-merge] -file_filter = modules\DataLaboratoryPlugin\src\main\resources\org\gephi\datalab\plugin\manipulators\rows\merge\.po -source_file = modules\DataLaboratoryPlugin\src\main\resources\org\gephi\datalab\plugin\manipulators\rows\merge\org-gephi-datalab-plugin-manipulators-rows-merge.pot -source_lang = en -type = PO - -[gephi.s--gephi-datalab-plugin-manipulators-rows-merge-ui] -file_filter = modules\DataLaboratoryPlugin\src\main\resources\org\gephi\datalab\plugin\manipulators\rows\merge\ui\.po -source_file = modules\DataLaboratoryPlugin\src\main\resources\org\gephi\datalab\plugin\manipulators\rows\merge\ui\org-gephi-datalab-plugin-manipulators-rows-merge-ui.pot -source_lang = en -type = PO - -[gephi.org-gephi-datalab-plugin-manipulators-nodes] -file_filter = modules\DataLaboratoryPlugin\src\main\resources\org\gephi\datalab\plugin\manipulators\nodes\.po -source_file = modules\DataLaboratoryPlugin\src\main\resources\org\gephi\datalab\plugin\manipulators\nodes\org-gephi-datalab-plugin-manipulators-nodes.pot -source_lang = en -type = PO - -[gephi.org-gephi-datalab-plugin-manipulators-nodes-ui] -file_filter = modules\DataLaboratoryPlugin\src\main\resources\org\gephi\datalab\plugin\manipulators\nodes\ui\.po -source_file = modules\DataLaboratoryPlugin\src\main\resources\org\gephi\datalab\plugin\manipulators\nodes\ui\org-gephi-datalab-plugin-manipulators-nodes-ui.pot -source_lang = en -type = PO - -[gephi.org-gephi-datalab-plugin-manipulators-general] -file_filter = modules\DataLaboratoryPlugin\src\main\resources\org\gephi\datalab\plugin\manipulators\general\.po -source_file = modules\DataLaboratoryPlugin\src\main\resources\org\gephi\datalab\plugin\manipulators\general\org-gephi-datalab-plugin-manipulators-general.pot -source_lang = en -type = PO - -[gephi.org-gephi-datalab-plugin-manipulators-general-ui] -file_filter = modules\DataLaboratoryPlugin\src\main\resources\org\gephi\datalab\plugin\manipulators\general\ui\.po -source_file = modules\DataLaboratoryPlugin\src\main\resources\org\gephi\datalab\plugin\manipulators\general\ui\org-gephi-datalab-plugin-manipulators-general-ui.pot -source_lang = en -type = PO - -[gephi.org-gephi-datalab-plugin-manipulators-edges] -file_filter = modules\DataLaboratoryPlugin\src\main\resources\org\gephi\datalab\plugin\manipulators\edges\.po -source_file = modules\DataLaboratoryPlugin\src\main\resources\org\gephi\datalab\plugin\manipulators\edges\org-gephi-datalab-plugin-manipulators-edges.pot -source_lang = en -type = PO - -[gephi.org-gephi-datalab-plugin-manipulators-edges-ui] -file_filter = modules\DataLaboratoryPlugin\src\main\resources\org\gephi\datalab\plugin\manipulators\edges\ui\.po -source_file = modules\DataLaboratoryPlugin\src\main\resources\org\gephi\datalab\plugin\manipulators\edges\ui\org-gephi-datalab-plugin-manipulators-edges-ui.pot -source_lang = en -type = PO - -[gephi.org-gephi-datalab-plugin-manipulators-columns] -file_filter = modules\DataLaboratoryPlugin\src\main\resources\org\gephi\datalab\plugin\manipulators\columns\.po -source_file = modules\DataLaboratoryPlugin\src\main\resources\org\gephi\datalab\plugin\manipulators\columns\org-gephi-datalab-plugin-manipulators-columns.pot -source_lang = en -type = PO - -[gephi.org-gephi-datalab-plugin-manipulators-columns-ui] -file_filter = modules\DataLaboratoryPlugin\src\main\resources\org\gephi\datalab\plugin\manipulators\columns\ui\.po -source_file = modules\DataLaboratoryPlugin\src\main\resources\org\gephi\datalab\plugin\manipulators\columns\ui\org-gephi-datalab-plugin-manipulators-columns-ui.pot -source_lang = en -type = PO - -[gephi.s--gephi-datalab-plugin-manipulators-columns-merge] -file_filter = modules\DataLaboratoryPlugin\src\main\resources\org\gephi\datalab\plugin\manipulators\columns\merge\.po -source_file = modules\DataLaboratoryPlugin\src\main\resources\org\gephi\datalab\plugin\manipulators\columns\merge\org-gephi-datalab-plugin-manipulators-columns-merge.pot -source_lang = en -type = PO - -[gephi.s-phi-datalab-plugin-manipulators-columns-merge-ui] -file_filter = modules\DataLaboratoryPlugin\src\main\resources\org\gephi\datalab\plugin\manipulators\columns\merge\ui\.po -source_file = modules\DataLaboratoryPlugin\src\main\resources\org\gephi\datalab\plugin\manipulators\columns\merge\ui\org-gephi-datalab-plugin-manipulators-columns-merge-ui.pot -source_lang = en -type = PO - -[gephi.org-gephi-datalab-impl] -file_filter = modules\DataLaboratoryAPI\src\main\resources\org\gephi\datalab\impl\.po -source_file = modules\DataLaboratoryAPI\src\main\resources\org\gephi\datalab\impl\org-gephi-datalab-impl.pot -source_lang = en -type = PO - -[gephi.org-gephi-datalab-api] -file_filter = modules\DataLaboratoryAPI\src\main\resources\org\gephi\datalab\api\.po -source_file = modules\DataLaboratoryAPI\src\main\resources\org\gephi\datalab\api\org-gephi-datalab-api.pot -source_lang = en -type = PO - -[gephi.org-gephi-utils-collection] -file_filter = modules\CollectionUtils\src\main\resources\org\gephi\utils\collection\.po -source_file = modules\CollectionUtils\src\main\resources\org\gephi\utils\collection\org-gephi-utils-collection.pot -source_lang = en -type = PO - -[gephi.org-gephi-clustering-plugin] -file_filter = modules\ClusteringPlugin\src\main\resources\org\gephi\clustering\plugin\.po -source_file = modules\ClusteringPlugin\src\main\resources\org\gephi\clustering\plugin\org-gephi-clustering-plugin.pot -source_lang = en -type = PO - -[gephi.org-gephi-clustering-plugin-mcl] -file_filter = modules\ClusteringPlugin\src\main\resources\org\gephi\clustering\plugin\mcl\.po -source_file = modules\ClusteringPlugin\src\main\resources\org\gephi\clustering\plugin\mcl\org-gephi-clustering-plugin-mcl.pot -source_lang = en -type = PO - -[gephi.org-gephi-clustering-api] -file_filter = modules\ClusteringAPI\src\main\resources\org\gephi\clustering\api\.po -source_file = modules\ClusteringAPI\src\main\resources\org\gephi\clustering\api\org-gephi-clustering-api.pot -source_lang = en -type = PO - -[gephi.org-gephi-data-attributes] -file_filter = modules\AttributesImpl\src\main\resources\org\gephi\data\attributes\.po -source_file = modules\AttributesImpl\src\main\resources\org\gephi\data\attributes\org-gephi-data-attributes.pot -source_lang = en -type = PO - -[gephi.org-gephi-data-attributes-api] -file_filter = modules\AttributesAPI\src\main\resources\org\gephi\data\attributes\api\.po -source_file = modules\AttributesAPI\src\main\resources\org\gephi\data\attributes\api\org-gephi-data-attributes-api.pot -source_lang = en -type = PO - -[gephi.org-gephi-ui-propertyeditor] -file_filter = modules\AttributeColumnPropertyEditor\src\main\resources\org\gephi\ui\propertyeditor\.po -source_file = modules\AttributeColumnPropertyEditor\src\main\resources\org\gephi\ui\propertyeditor\org-gephi-ui-propertyeditor.pot -source_lang = en -type = PO - -[gephi.org-gephi-algorithms] -file_filter = modules\AlgorithmsPlugin\src\main\resources\org\gephi\algorithms\.po -source_file = modules\AlgorithmsPlugin\src\main\resources\org\gephi\algorithms\org-gephi-algorithms.pot -source_lang = en -type = PO - diff --git a/.tx/readme.txt b/.tx/readme.txt deleted file mode 100644 index b16b71be83..0000000000 --- a/.tx/readme.txt +++ /dev/null @@ -1,4 +0,0 @@ -This folder contains the https://www.transifex.net/projects/p/gephi translation tool configuration to push and pull translation files from there. - -!!Transifex needs "\" separators in windows to correctly find .po files, depending on your OS you should use / or \ in the config file. This can be easily replaced with a text editor. -See set_transifex.py script \ No newline at end of file diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000000..0c6820b852 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,128 @@ +# Gephi Code of Conduct + +## Our Pledge + +We as Gephi contributors and maintainers pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity +and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the + overall community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or + advances of any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email + address, without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +contact@gephi.org. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series +of actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or +permanent ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within +the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.0, available at +https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. + +Community Impact Guidelines were inspired by [Mozilla's code of conduct +enforcement ladder](https://github.com/mozilla/diversity). + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see the FAQ at +https://www.contributor-covenant.org/faq. Translations are available at +https://www.contributor-covenant.org/translations. diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000000..6b111d165d --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + +Copyright (C) 2007 Free Software Foundation, Inc. +Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed. + + Preamble + +The GNU General Public License is a free, copyleft license for +software and other kinds of works. + +The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + +To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + +For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + +Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + +For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + +Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + +Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + +The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + +0. Definitions. + +"This License" refers to version 3 of the GNU General Public License. + +"Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + +"The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + +To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + +A "covered work" means either the unmodified Program or a work based +on the Program. + +To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + +To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + +An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + +1. Source Code. + +The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + +A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + +The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + +The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + +The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + +The Corresponding Source for a work in source code form is that +same work. + +2. Basic Permissions. + +All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + +You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + +Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + +3. Protecting Users' Legal Rights From Anti-Circumvention Law. + +No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + +When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + +4. Conveying Verbatim Copies. + +You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + +You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + +5. Conveying Modified Source Versions. + +You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + +A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + +6. Conveying Non-Source Forms. + +You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + +A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + +A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + +"Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + +If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + +The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + +Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + +7. Additional Terms. + +"Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + +When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + +Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + +All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + +If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + +Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + +8. Termination. + +You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + +However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + +Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + +Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + +9. Acceptance Not Required for Having Copies. + +You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + +10. Automatic Licensing of Downstream Recipients. + +Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + +An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + +You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + +11. Patents. + +A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + +A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + +Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + +In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + +If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + +If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + +A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + +Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + +12. No Surrender of Others' Freedom. + +If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + +13. Use with the GNU Affero General Public License. + +Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + +14. Revised Versions of this License. + +The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + +If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + +Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + +15. Disclaimer of Warranty. + +THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +16. Limitation of Liability. + +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + +17. Interpretation of Sections 15 and 16. + +If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + +If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + +You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + +The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/README.md b/README.md index bcdebbca67..2f021d088d 100644 --- a/README.md +++ b/README.md @@ -1,120 +1,144 @@ -# Gephi - The Open Graph Viz Platform - -[Gephi](http://gephi.org) is an award-winning open-source platform for visualizing and manipulating large graphs. It runs on Windows, Mac OS X and Linux. Localization is available in French, Spanish, Japanese, Russian, Brazilian Portuguese, Chinese and Czech. - -- **Fast** Powered by a built-in OpenGL engine, Gephi is able to push the envelope with very large networks. Visualize networks up to a million elements. All actions (e.g. layout, filter, drag) run in real-time. - -- **Simple** Easy to install and [get started](http://gephi.org/users/quick-start/). An UI that is centered around the visualization. Like Photoshopβ„’ for graphs. - -- **Modular** Extend Gephi with [plug-ins](http://gephi.org/plugins/). The architecture is built on top of Netbeans Platform and can be extended or reused easily through well-written APIs. - -[Download Gephi](http://gephi.org/users/download/) for Windows, Mac OS X and Linux and consult the [release notes](https://wiki.gephi.org/index.php/Gephi_Releases). Example datasets can be found on our [wiki](https://wiki.gephi.org/index.php?title=Datasets). - -![Gephi](http://gephi.org/wp-content/themes/gephi/images/screenshots/select-tool-mini.png) - -## Install and use Gephi - -Download and [Install](http://gephi.org/users/install) Gephi on your computer. - -Get started with the [Quick Start](http://gephi.org/users/quick-start/) and follow the [Tutorials](http://gephi.org/users/). Load a sample [dataset](https://wiki.gephi.org/index.php?title=Datasets) and start to play with the data. - -If you run into any trouble or have questions consult our [forum](http://forum.gephi.org). - -## Latest releases - -### Stable - -- Latest stable release on [gephi.org](http://gephi.org/download). - -### Nightly builds - -Current version is 0.9-SNAPSHOT - -- [gephi-0.9-SNAPSHOT.zip](http://nexus.gephi.org/nexus/service/local/artifact/maven/content?r=snapshots&g=org.gephi&a=gephi&v=0.9-SNAPSHOT&p=zip) (Windows & Linux) - -- [gephi-0.9-SNAPSHOT.dmg](http://nexus.gephi.org/nexus/service/local/artifact/maven/content?r=snapshots&g=org.gephi&a=gephi&v=0.9-SNAPSHOT&p=dmg) (Mac OS X) - -- [gephi-0.9-SNAPSHOT-sources.tar.gz](http://nexus.gephi.org/nexus/service/local/artifact/maven/redirect?r=snapshots&g=org.gephi&a=gephi-parent&v=0.9-SNAPSHOT&c=sources&p=tar.gz) (Sources) - -- [gephi-0.9-SNAPSHOT-javadoc.jar](http://nexus.gephi.org/nexus/service/local/artifact/maven/redirect?r=snapshots&g=org.gephi&a=gephi-parent&v=0.9-SNAPSHOT&c=javadoc&p=jar) (Javadoc) - -## Developer Introduction - -Gephi is developed in Java and uses OpenGL for its visualization engine. Built on the top of Netbeans Platform, it follows a loosely-coupled, modular architecture philosophy. That allows it to be used build large applications and to grow in a sustainable way. Gephi is split into modules, which depend on other modules through well-written APIs. Plugins can reuse existing APIs, create new services and even replace a default implementation with a new one. - -Consult the [**Javadoc**](http://gephi.org/docs/api) for an overview of the APIs. - -### Requirements - -- Java JDK 6 or 7 with preferably [Oracle Java JDK](http://java.com/en/). - -- [Apache Maven](http://maven.apache.org/) version 3.0.4 or later - -### Checkout and Build the sources - -- Fork the repository and clone - - git clone git@github.com:username/gephi.git - -- Run the following command or [open the project in Netbeans](http://wiki.gephi.org/index.php/Build_Gephi) - - mvn clean install - -- Once built, one can test running Gephi - - cd modules/application - mvn nbm:cluster-app nbm:run-platform - -### Create Plug-ins - -Gephi is extensible and lets users create plug-ins to add new features, or to modify existing features. For example, you can create a new layout algorithm, add a metric, create a filter or a tool, support a new file format or database, or modify the visualization. - -- [**Plugins Portal**](http://wiki.gephi.org/index.php/Plugins_portal) - -- [Plugins Quick Start (5 minutes)](http://wiki.gephi.org/index.php/Plugin_Quick_Start_(5_minutes\)) - -- Browse the [plugins](http://gephi.org/plugins) created by the community - -- We've created a [**Plugins Bootcamp**](https://github.com/gephi/gephi-plugins-bootcamp) to learn by examples. - -## Gephi Toolkit - -The Gephi Toolkit project packages essential Gephi modules (Graph, Layout, Filters, IO…) in a standard Java library which any Java project can use for getting things done. It can be used on a server or command-line tool to do the same things Gephi does but automatically. - -- [Download](http://gephi.org/toolkit/) - -- [GitHub Project](https://github.com/gephi/gephi-toolkit) - -- [Toolkit Portal](https://wiki.gephi.org/index.php/Toolkit_portal) - -## License - -Gephi main source code is distributed under the dual license [CDDL 1.0](http://www.opensource.org/licenses/CDDL-1.0) and [GNU General Public License v3](http://www.gnu.org/licenses/gpl.html). Read the [Legal FAQs](https://gephi.org/about/legal/faq/) to learn more. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. +# Gephi - The Open Graph Viz Platform + +[![build](https://github.com/gephi/gephi/actions/workflows/build.yml/badge.svg)](https://github.com/gephi/gephi/actions/workflows/build.yml) +[![Downloads](https://img.shields.io/github/downloads/gephi/gephi/v0.11.2/total.svg)](https://github.com/gephi/gephi/releases/tag/v0.11.2) +[![Downloads](https://img.shields.io/github/downloads/gephi/gephi/total.svg)](https://github.com/gephi/gephi/releases/) +[![Translation progress](https://hosted.weblate.org/widgets/gephi/-/svg-badge.svg)](https://hosted.weblate.org/engage/gephi/?utm_source=widget) + +[Gephi](http://gephi.org) is an award-winning open-source platform for visualizing and manipulating large graphs. It runs on Windows, Mac OS X and Linux. Localization is available in English, French, Spanish, Japanese, Russian, Brazilian Portuguese, Chinese, Czech, German, Romanian, Greek, Hungarian, Korean, Swedish and Ukrainian. + +- **Fast** Powered by a built-in OpenGL engine, Gephi is able to push the envelope with very large networks. Visualize networks up to a million elements. All actions (e.g. layout, filter, drag) run in real-time. + +- **Simple** Easy to install and [get started](https://gephi.org/quickstart/). An UI that is centered around the visualization. Like Photoshopβ„’ for graphs. + +- **Modular** Extend Gephi with [plug-ins](https://gephi.org/desktop/plugins/). The architecture is built on top of [Apache Netbeans Platform](https://netbeans.apache.org/tutorials/nbm-quick-start.html) and can be extended or reused easily through well-written APIs. + +[Download Gephi](https://gephi.org/desktop/) for Windows, Mac OS X and Linux and consult the [release notes](https://github.com/gephi/gephi/releases). Example datasets can be found on our [wiki](https://docs.gephi.org/desktop/User_Manual/Datasets/). + +![Gephi](https://gephi.org/select-tool-mini.png) + +## Install and use Gephi + +Download and [Install](https://gephi.github.io/users/install/) Gephi on your computer. + +Get started with the [Quick Start](https://gephi.org/quickstart/) and follow the [Tutorials](https://gephi.org/quickstart/). Load a sample [dataset](https://docs.gephi.org/desktop/User_Manual/Datasets/) and start to play with the data. + +If you run into any trouble or have questions consult our [discussions](https://github.com/gephi/gephi/discussions). + +## Latest releases + +### Stable + +- Latest stable release on [gephi.org](https://gephi.org/desktop/). + +### Development builds + +Development builds are [generated regularly](https://github.com/gephi/gephi/actions/workflows/release.yml?query=is%3Asuccess++). Current version is 0.11.2-SNAPSHOT + +- [gephi-0.11.2-SNAPSHOT-windows-x64.exe](https://central.sonatype.com/repository/maven-snapshots/org/gephi/gephi/0.11.2-SNAPSHOT/gephi-0.11.2-20260509.150210-9-windows-x64.exe) (Windows) + +- [gephi-0.11.2-SNAPSHOT-macos-x64.dmg](https://central.sonatype.com/repository/maven-snapshots/org/gephi/gephi/0.11.2-SNAPSHOT/gephi-0.11.2-20260509.150534-10-macos-x64.dmg) (Mac OS X) + +- [gephi-0.11.2-SNAPSHOT-macos-aarch64.dmg](https://central.sonatype.com/repository/maven-snapshots/org/gephi/gephi/0.11.2-SNAPSHOT/gephi-0.11.2-20260509.152025-12-macos-aarch64.dmg) (Mac OS X Silicon) + +- [gephi-0.11.2-SNAPSHOT-linux-aarch64.tar.gz](https://central.sonatype.com/repository/maven-snapshots/org/gephi/gephi/0.11.2-SNAPSHOT/gephi-0.11.2-20260509.151835-11-linux-aarch64.tar.gz) (Linux aarch64) + +- [gephi-0.11.2-SNAPSHOT-linux-x64.tar.gz](https://central.sonatype.com/repository/maven-snapshots/org/gephi/gephi/0.11.2-SNAPSHOT/gephi-0.11.2-20260509.145838-8-linux-x64.tar.gz) (Linux) + +## Developer Introduction + +Gephi is developed in Java and uses OpenGL for its visualization engine. Built on the top of Netbeans Platform, it follows a loosely-coupled, modular architecture philosophy. Gephi is split into modules, which depend on other modules through well-written APIs. Plugins can reuse existing APIs, create new services and even replace a default implementation with a new one. + +Consult the [**Javadoc**](https://javadoc.io/doc/org.gephi/gephi/latest/index.html) for an overview of the APIs. + +### Requirements + +- Java JDK 17 (or later) + +- [Apache Maven](http://maven.apache.org/) version 3.6.3 or later + +### Checkout and Build the sources + +- Fork the repository and clone + + git clone git@github.com:username/gephi.git + +- Run the following command or [open the project in an IDE](https://docs.gephi.org/desktop/Developer_Documentation/how_to_build_gephi) + + mvn -T 4 clean install + +- To skip tests and speed up the build, use the `skipTests` profile + + mvn -T 4 clean install -P skipTests + +- Once built, one can test running Gephi + + cd modules/application + mvn nbm:cluster-app nbm:run-platform + +Note that while Gephi can be built using JDK 17 or later, it currently requires JDK 17 to run. + +### Create Plug-ins + +Gephi is extensible and lets developers create plug-ins to add new features, or to modify existing features. For example, you can create a new layout algorithm, add a metric, create a filter or a tool, support a new file format or database, or modify the visualization. + +- [**Plugins Portal**](https://gephi.org/desktop/plugins/) + +- [Plugins Quick Start (5 minutes)](https://docs.gephi.org/desktop/Plugins) + +- Browse the [plugins](https://gephi.org/plugins) created by the community + +- We've created a [**Plugins Bootcamp**](https://github.com/gephi/gephi-plugins-bootcamp) to learn by examples. + +## Gephi Toolkit + +The Gephi Toolkit project packages essential Gephi modules (Graph, Layout, Filters, IO…) in a standard Java library which any Java project can use for getting things done. It can be used on a server or command-line tool to do the same things Gephi does but automatically. + +- [Download](https://gephi.org/toolkit/) + +- [GitHub Project](https://github.com/gephi/gephi-toolkit) + +- [Toolkit Portal](https://github.com/gephi/gephi/wiki/Toolkit) + +## Localization + +We use [Weblate](https://hosted.weblate.org/projects/gephi/) for localization. Follow the guidelines on the [wiki](https://docs.gephi.org/desktop/Developer_Documentation/localization) for more details how to contribute. + +## Icons + +Gephi uses icons from various sources. The icons are licensed under the [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/) license. + +All icons can be found in the `DesktopIcons` module, organised by module name. + +## License + +Gephi main source code is distributed under the dual license [CDDL 1.0](http://www.opensource.org/licenses/CDDL-1.0) and [GNU General Public License v3](http://www.gnu.org/licenses/gpl.html). Read the [Legal FAQs](https://gephi.org/about/) to learn more. + +Copyright 2011 Gephi Consortium. All rights reserved. + +The contents of this file are subject to the terms of either the GNU +General Public License Version 3 only ("GPL") or the Common +Development and Distribution License ("CDDL") (collectively, the +"License"). You may not use this file except in compliance with the +License. You can obtain a copy of the License at +http://gephi.github.io/developers/license/ +or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the +specific language governing permissions and limitations under the +License. When distributing the software, include this License Header +Notice in each file and include the License files at +/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the +License Header, with the fields enclosed by brackets [] replaced by +your own identifying information: +"Portions Copyrighted [year] [name of copyright owner]" + +If you wish your version of this file to be governed by only the CDDL +or only the GPL Version 3, indicate your decision by adding +"[Contributor] elects to include this software in this distribution +under the [CDDL or GPL Version 3] license." If you do not indicate a +single choice of license, a recipient has the option to distribute +your version of this file under either the CDDL, the GPL Version 3 or +to extend the choice of license to its licensees as provided above. +However, if you add GPL Version 3 code and therefore, elected the GPL +Version 3 license, then the option applies only if the new code is +made subject to such option by the copyright holder. + diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000000..7c0c120ee2 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,76 @@ +# Security Policy + +## Introduction + +Before diving into the details, it's important to note that Gephi is a **desktop software**. +- It only interacts with local files. It **does NOT connect to the web** or to any networks. +- Gephi **does NOT have any servers** and **does NOT host any data**. + +All of the data you load into Gephi only resides in your computer's memory and hard drive. As a result, Gephi is much less exposed to security problems compared to web software for instance. Please take that in account while evaluating the policy below. + +The only exception when it comes to **connecting to the web** is for crash reporting. + +## Supported Versions + +We monitor security vulnerabilities in the dependencies we use, as well as within the core codebase. In case of a major vulnerability, we would release a new patch version of Gephi to address it. + +| Version | Supported | +|---------| ------------------ | +| 0.11.1 | :white_check_mark: | +| 0.10.1 | :white_check_mark: | +| 0.9.7 | :x: | + +## Code security + +Gephi's codebase is entirely open-source and [available on GitHub](https://github.com/gephi/gephi/). The project had always restricted commit permissions on its `main` branch and stable contributors. No external organisations are responsible for auditing the codebase. + +Gephi has numerous dependencies, listed in the projects' `pom.xml` files. It only depends on other open-source projects. There are no dependencies on closed sources. If you're having a hard-time locating the source code of some of our dependencies, don't hesitate to reach out. + +In addition, we have enabled **dependabot** to get informed about security vulnerabilities in our dependencies. + +## Contributors + +Gephi had contributions from many individuals in many countries but the vast majority of the code was written by less than 5 people. We have CLA agreements with all major contributors. The core contributors are from France and Spain. + +## Release versions + +The artifacts produced via the Gephi repository are secured. Users can always trust us with the release binaries they download from [gephi.or](https://gephi.org) or [https://github.com/gephi/gephi/releases](https://github.com/gephi/gephi/releases). + +**These measures are in place to ensure Gephi artifacts are safe and can't be compromised:** +- Only the members of the core Gephi team can approve contributions and trigger releases. +- The release process is [completely automated](https://github.com/gephi/gephi/actions/workflows/release.yml) via GitHub Actions and doesn't require any interactions with a developer's local computer. +- Binaries are directly uploaded from GitHub Actions to [Maven Central](https://central.sonatype.com/artifact/org.gephi/gephi/overview). Only our project can push artifacts to the `org.gephi` groupId. As you may know, once a file is released on Maven Central, it can't be altered. +- Digital signatures for the release binaries are also available on Maven Central. +- The Mac OS app goes through a thorough [notarisation process](https://developer.apple.com/documentation/security/notarizing-macos-software-before-distribution) before being released. This means the package is sent to Apple's servers for verification and only if approved it can be released. +- The Windows installer is also codesigned using an official certificate. + +## Vulnerabilities + +Here is a history of security/data vulnerabilities: + +| Name | Type | Severity | Description | Reported | Fixed | +| ---- | ---- | -------- | ----------- | -------- | ----- | +| PII in Crash Reports | Data privacy | Low | In the application logs it's possible to identify the username. The crash reports are voluntary, but it would be better to anonymize them. | October 2021 | βœ… Yes, in version 0.9.3 [#2340](https://github.com/gephi/gephi/issues/2340) | +| Log4j vulnerability | Dependency vulnerability | N/A | Gephi doesn't depend on Log4j, we weren't affected. | December 2021 | N/A | + +## Reporting a Vulnerability + +In case you find a vulnerability or want to get in touch regarding security, reach out to us at contact [at] gephi.org. Alternatively, you can [directly report via GitHub](https://github.com/gephi/gephi/security/advisories/new). + +Based on your analysis, we'll evaluate if there are any risks for our users. In case we decide to release a patched version, you'll be informed. + +We don't offer any rewards. If you provide a PR or a patch with your report, we'll be happy to include you in the release notes (if you desire so). + +## Gephi Plugins + +[Plugins](https://gephi.org/plugins/#/) are extensions users can install within Gephi to extend its functionalities. Plugins are made available within Gephi via an approval process [detailed here](https://github.com/gephi/gephi-plugins). + +**These measures are in place to avoid malicious code from Plugins:** +- Plugin contributors have to make PRs to the repository we control. Plugins artifacts can only be built from our repository. You can [inspect the codebase](https://github.com/gephi/gephi-plugins/tree/master-forge). +- Plugin artifacts are hosted on GitHub on [our page](https://github.com/gephi/gephi-plugins/tree/gh-pages/plugins) branch. There is full visibility. These are the plugins files downloaded from Gephi. +- Plugin packages (i.e. NBM files) are signed. +- We only accept open-source dependencies in plugins. + +That all said, be aware that Gephi Plugins can pose a risk: +- Plugins can be packaged and distributed as NBMs files. Only the plugins available via Gephi are officially approved. If you manually install (e.g. via a NBM file you have received), you do that at your own risk. +- Some Plugins may require network access. We recommend you to review the source code of the plugins you install. diff --git a/checkstyle-suppressions.xml b/checkstyle-suppressions.xml new file mode 100644 index 0000000000..4af6827c10 --- /dev/null +++ b/checkstyle-suppressions.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/checkstyle.xml b/checkstyle.xml new file mode 100644 index 0000000000..2a89081015 --- /dev/null +++ b/checkstyle.xml @@ -0,0 +1,378 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/flathub/gephi.png b/flathub/gephi.png new file mode 100644 index 0000000000..0ccc65c771 Binary files /dev/null and b/flathub/gephi.png differ diff --git a/flathub/org.gephi.Gephi.desktop b/flathub/org.gephi.Gephi.desktop new file mode 100644 index 0000000000..2dabf7e685 --- /dev/null +++ b/flathub/org.gephi.Gephi.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Version=1.0 +Type=Application +Name=Gephi +Comment=The Open Graph Viz Platform +Exec=gephi %F +Icon=org.gephi.Gephi +Terminal=false +Categories=Science; +StartupNotify=true +StartupWMClass=Gephi \ No newline at end of file diff --git a/flathub/org.gephi.Gephi.metainfo.xml b/flathub/org.gephi.Gephi.metainfo.xml new file mode 100644 index 0000000000..a4d358b5a6 --- /dev/null +++ b/flathub/org.gephi.Gephi.metainfo.xml @@ -0,0 +1,58 @@ + + + org.gephi.Gephi + CC-BY-SA-3.0 + GPL-3.0 + Gephi + The Open Graph Viz Platform + +

+ Gephi is the leading open-source platform for visualizing and manipulating large graphs. +

+

+

    +
  • Fast: Powered by a built-in OpenGL engine, Gephi is able to push the envelope with very large networks. Visualize networks up to a million elements. All actions (e.g. layout, filter, drag) run in real-time.
  • +
  • Simple: Easy to install and get started. An UI that is centered around the visualization. Like Photoshopβ„’ for graphs.
  • +
  • Extensible: Extend Gephi with plug-ins.
  • +
+

+

+ Example datasets can be found on our wiki: https://github.com/gephi/gephi/wiki/Datasets +

+

Localization is available in English, French, Spanish, Japanese, Russian, Brazilian Portuguese, Chinese, Czech, German, Romanian, Greek, Hungarian, Korean, Swedish and Ukrainian.

+
+ org.gephi.Gephi.desktop + + + https://upload.wikimedia.org/wikipedia/commons/2/27/Gephi-07beta-screenshot.png + + + https://dashboard.snapcraft.io/site_media/appmedia/2022/01/preview4.png + + + https://dashboard.snapcraft.io/site_media/appmedia/2022/01/metricsresults.png + + + https://dashboard.snapcraft.io/site_media/appmedia/2022/01/layout2.png + + + https://dashboard.snapcraft.io/site_media/appmedia/2022/01/neighbours.png + + + https://github.com/gephi/gephi/issues + https://gephi.org/users/ + https://gephi.org/ + Mathieu Bastian + contact@gephi.org + + + + + + + + + + + +
\ No newline at end of file diff --git a/maven-version-rules.xml b/maven-version-rules.xml new file mode 100644 index 0000000000..c680bae3c8 --- /dev/null +++ b/maven-version-rules.xml @@ -0,0 +1,46 @@ + + + + + (?i).*alpha.* + + (?i).*beta.* + (?i).*preview.* + + (?i).*[-.]b([0-9]+)? + + (?i).*[-.]rc([0-9]+)? + + (?i).*[-.]m([0-9]+)? + + (?i).*[-.]pr([0-9]+)? + + + (?i)RELEASE.* + + + (?i).*[-.]jre[0-9]+ + + + + + + + + \ No newline at end of file diff --git a/modules/AlgorithmsPlugin/pom.xml b/modules/AlgorithmsPlugin/pom.xml index 53bf9de2fb..90808d16aa 100644 --- a/modules/AlgorithmsPlugin/pom.xml +++ b/modules/AlgorithmsPlugin/pom.xml @@ -4,13 +4,13 @@ gephi-parent org.gephi - 0.9-SNAPSHOT + 0.11.3-SNAPSHOT ../.. org.gephi algorithms-plugin - 0.9-SNAPSHOT + 0.11.3-SNAPSHOT nbm @@ -31,7 +31,7 @@ - org.codehaus.mojo + org.apache.netbeans.utilities nbm-maven-plugin diff --git a/modules/AlgorithmsPlugin/src/main/java/org/gephi/algorithms/shortestpath/AbstractShortestPathAlgorithm.java b/modules/AlgorithmsPlugin/src/main/java/org/gephi/algorithms/shortestpath/AbstractShortestPathAlgorithm.java index c7b8dd3125..da4dce5530 100644 --- a/modules/AlgorithmsPlugin/src/main/java/org/gephi/algorithms/shortestpath/AbstractShortestPathAlgorithm.java +++ b/modules/AlgorithmsPlugin/src/main/java/org/gephi/algorithms/shortestpath/AbstractShortestPathAlgorithm.java @@ -39,15 +39,16 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.algorithms.shortestpath; import java.awt.Color; import java.util.HashMap; +import java.util.Map; import org.gephi.graph.api.Edge; import org.gephi.graph.api.Node; /** - * * @author Mathieu Bastian */ public abstract class AbstractShortestPathAlgorithm { @@ -59,8 +60,8 @@ public abstract class AbstractShortestPathAlgorithm { public AbstractShortestPathAlgorithm(Node sourceNode) { this.sourceNode = sourceNode; - colors = new HashMap(); - distances = new HashMap(); + colors = new HashMap<>(); + distances = new HashMap<>(); } protected boolean relax(Edge edge) { @@ -86,9 +87,23 @@ protected double edgeWeight(Edge edge) { public abstract void compute(); - public abstract Node getPredecessor(Node node); + public abstract Map getPredecessors(); - public abstract Edge getPredecessorIncoming(Node node); + public final Node getPredecessor(Node node) { + Edge edge = getPredecessors().get(node); + if (edge != null) { + if (edge.getSource() != node) { + return edge.getSource(); + } else { + return edge.getTarget(); + } + } + return null; + } + + public final Edge getPredecessorIncoming(Node node) { + return getPredecessors().get(node); + } public HashMap getDistances() { return distances; diff --git a/modules/AlgorithmsPlugin/src/main/java/org/gephi/algorithms/shortestpath/BellmanFordShortestPathAlgorithm.java b/modules/AlgorithmsPlugin/src/main/java/org/gephi/algorithms/shortestpath/BellmanFordShortestPathAlgorithm.java index 38db347593..bb4459ac9e 100644 --- a/modules/AlgorithmsPlugin/src/main/java/org/gephi/algorithms/shortestpath/BellmanFordShortestPathAlgorithm.java +++ b/modules/AlgorithmsPlugin/src/main/java/org/gephi/algorithms/shortestpath/BellmanFordShortestPathAlgorithm.java @@ -39,15 +39,17 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.algorithms.shortestpath; import java.util.HashMap; +import java.util.Map; import org.gephi.graph.api.DirectedGraph; import org.gephi.graph.api.Edge; +import org.gephi.graph.api.EdgeIterable; import org.gephi.graph.api.Node; /** - * * @author Mathieu Bastian */ public class BellmanFordShortestPathAlgorithm extends AbstractShortestPathAlgorithm { @@ -58,71 +60,54 @@ public class BellmanFordShortestPathAlgorithm extends AbstractShortestPathAlgori public BellmanFordShortestPathAlgorithm(DirectedGraph graph, Node sourceNode) { super(sourceNode); this.graph = graph; - predecessors = new HashMap(); + predecessors = new HashMap<>(); } @Override public void compute() { graph.readLock(); - - //Initialize - int nodeCount = 0; - for (Node node : graph.getNodes()) { - distances.put(node, Double.POSITIVE_INFINITY); - nodeCount++; - } - distances.put(sourceNode, 0d); - - - //Relax edges repeatedly - for (int i = 0; i < nodeCount; i++) { - - boolean relaxed = false; - for (Edge edge : graph.getEdges()) { - Node target = edge.getTarget(); - if (relax(edge)) { - relaxed = true; - predecessors.put(target, edge); - } + try { + //Initialize + int nodeCount = 0; + for (Node node : graph.getNodes()) { + distances.put(node, Double.POSITIVE_INFINITY); + nodeCount++; } - if (!relaxed) { - break; + distances.put(sourceNode, 0d); + + //Relax edges repeatedly + for (int i = 0; i < nodeCount; i++) { + + boolean relaxed = false; + for (Edge edge : graph.getEdges()) { + Node target = edge.getTarget(); + if (relax(edge)) { + relaxed = true; + predecessors.put(target, edge); + } + } + if (!relaxed) { + break; + } } - } - //Check for negative-weight cycles - for (Edge edge : graph.getEdges()) { - - if (distances.get(edge.getSource()) + edgeWeight(edge) < distances.get(edge.getTarget())) { - graph.readUnlock(); - throw new RuntimeException("The Graph contains a negative-weighted cycle"); + //Check for negative-weight cycles + EdgeIterable edgesIterable = graph.getEdges(); + for (Edge edge : edgesIterable) { + if (distances.get(edge.getSource()) + edgeWeight(edge) < distances.get(edge.getTarget())) { + edgesIterable.doBreak(); + throw new RuntimeException("The Graph contains a negative-weighted cycle"); + } } + } finally { + graph.readUnlockAll(); } - - graph.readUnlock(); - } - - @Override - protected double edgeWeight(Edge edge) { - return edge.getWeight(); } @Override - public Node getPredecessor(Node node) { - Edge edge = predecessors.get(node); - if (edge != null) { - if (edge.getSource() != node) { - return edge.getSource(); - } else { - return edge.getTarget(); - } - } - return null; + public Map getPredecessors() { + return predecessors; } - @Override - public Edge getPredecessorIncoming(Node node) { - return predecessors.get(node); - } } diff --git a/modules/AlgorithmsPlugin/src/main/java/org/gephi/algorithms/shortestpath/DijkstraShortestPathAlgorithm.java b/modules/AlgorithmsPlugin/src/main/java/org/gephi/algorithms/shortestpath/DijkstraShortestPathAlgorithm.java index 7bbaa09949..b6d4426c34 100644 --- a/modules/AlgorithmsPlugin/src/main/java/org/gephi/algorithms/shortestpath/DijkstraShortestPathAlgorithm.java +++ b/modules/AlgorithmsPlugin/src/main/java/org/gephi/algorithms/shortestpath/DijkstraShortestPathAlgorithm.java @@ -39,17 +39,18 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.algorithms.shortestpath; import java.util.HashMap; import java.util.HashSet; +import java.util.Map; import java.util.Set; import org.gephi.graph.api.Edge; import org.gephi.graph.api.Graph; import org.gephi.graph.api.Node; /** - * * @author Mathieu Bastian */ public class DijkstraShortestPathAlgorithm extends AbstractShortestPathAlgorithm { @@ -60,58 +61,60 @@ public class DijkstraShortestPathAlgorithm extends AbstractShortestPathAlgorithm public DijkstraShortestPathAlgorithm(Graph graph, Node sourceNode) { super(sourceNode); this.graph = graph; - predecessors = new HashMap(); + predecessors = new HashMap<>(); } @Override public void compute() { graph.readLock(); - Set unsettledNodes = new HashSet(); - Set settledNodes = new HashSet(); + try { + Set unsettledNodes = new HashSet<>(); + Set settledNodes = new HashSet<>(); - //Initialize - for (Node node : graph.getNodes()) { - distances.put(node, Double.POSITIVE_INFINITY); - } - distances.put(sourceNode, 0d); - unsettledNodes.add(sourceNode); - - while (!unsettledNodes.isEmpty()) { - - // find node with smallest distance value - Double minDistance = Double.POSITIVE_INFINITY; - Node minDistanceNode = null; - for (Node k : unsettledNodes) { - Double dist = distances.get(k); - if (minDistanceNode == null) { - minDistanceNode = k; - } + //Initialize + for (Node node : graph.getNodes()) { + distances.put(node, Double.POSITIVE_INFINITY); + } + distances.put(sourceNode, 0d); + unsettledNodes.add(sourceNode); + + while (!unsettledNodes.isEmpty()) { + + // find node with smallest distance value + Double minDistance = Double.POSITIVE_INFINITY; + Node minDistanceNode = null; + for (Node k : unsettledNodes) { + Double dist = distances.get(k); + if (minDistanceNode == null) { + minDistanceNode = k; + } - if (dist.compareTo(minDistance) < 0) { - minDistance = dist; - minDistanceNode = k; + if (dist.compareTo(minDistance) < 0) { + minDistance = dist; + minDistanceNode = k; + } } - } - unsettledNodes.remove(minDistanceNode); - settledNodes.add(minDistanceNode); - - for (Edge edge : graph.getEdges(minDistanceNode)) { - Node neighbor = graph.getOpposite(minDistanceNode, edge); - if (!settledNodes.contains(neighbor)) { - double dist = getShortestDistance(minDistanceNode) + edgeWeight(edge); - if (getShortestDistance(neighbor) > dist) { - - distances.put(neighbor, dist); - predecessors.put(neighbor, edge); - unsettledNodes.add(neighbor); - maxDistance = Math.max(maxDistance, dist); + unsettledNodes.remove(minDistanceNode); + settledNodes.add(minDistanceNode); + + for (Edge edge : graph.getEdges(minDistanceNode)) { + Node neighbor = graph.getOpposite(minDistanceNode, edge); + if (!settledNodes.contains(neighbor)) { + double dist = getShortestDistance(minDistanceNode) + edgeWeight(edge); + if (getShortestDistance(neighbor) > dist) { + + distances.put(neighbor, dist); + predecessors.put(neighbor, edge); + unsettledNodes.add(neighbor); + maxDistance = Math.max(maxDistance, dist); + } } } } + } finally { + graph.readUnlockAll(); } - - graph.readUnlock(); } private double getShortestDistance(Node destination) { @@ -124,25 +127,7 @@ private double getShortestDistance(Node destination) { } @Override - protected double edgeWeight(Edge edge) { - return edge.getWeight(); - } - - @Override - public Node getPredecessor(Node node) { - Edge edge = predecessors.get(node); - if (edge != null) { - if (edge.getSource() != node) { - return edge.getSource(); - } else { - return edge.getTarget(); - } - } - return null; - } - - @Override - public Edge getPredecessorIncoming(Node node) { - return predecessors.get(node); + public Map getPredecessors() { + return predecessors; } } diff --git a/modules/AlgorithmsPlugin/src/main/nbm/manifest.mf b/modules/AlgorithmsPlugin/src/main/nbm/manifest.mf index 4b9cb9d738..e3023f54f9 100644 --- a/modules/AlgorithmsPlugin/src/main/nbm/manifest.mf +++ b/modules/AlgorithmsPlugin/src/main/nbm/manifest.mf @@ -1,4 +1,6 @@ Manifest-Version: 1.0 AutoUpdate-Essential-Module: true OpenIDE-Module-Localizing-Bundle: org/gephi/algorithms/Bundle.properties -OpenIDE-Module-Specification-Version: ${gephi.modules.specification.version} \ No newline at end of file +OpenIDE-Module-Specification-Version: ${gephi.modules.specification.version} +OpenIDE-Module-Display-Category: Gephi Core +OpenIDE-Module-Name: Algorithms diff --git a/modules/AlgorithmsPlugin/src/main/nbm/module.xml b/modules/AlgorithmsPlugin/src/main/nbm/module.xml deleted file mode 100644 index 710276ba14..0000000000 --- a/modules/AlgorithmsPlugin/src/main/nbm/module.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - diff --git a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle.properties b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle.properties index fd3ca503b9..c7bae2cf96 100644 --- a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle.properties +++ b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle.properties @@ -1,5 +1,2 @@ -OpenIDE-Module-Display-Category=Gephi Core -OpenIDE-Module-Long-Description=\ - Basic graph theory algorithms -OpenIDE-Module-Name=Algorithms +OpenIDE-Module-Long-Description=Basic graph theory algorithms OpenIDE-Module-Short-Description=Basic graph theory algorithms diff --git a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_ar.properties b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_ar.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_ar.properties @@ -0,0 +1 @@ + diff --git a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_ca.properties b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_ca.properties new file mode 100644 index 0000000000..0ad168e5a1 --- /dev/null +++ b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_ca.properties @@ -0,0 +1,2 @@ +OpenIDE-Module-Long-Description=Basic graph theory algorithms +OpenIDE-Module-Short-Description=Basic graph theory algorithms diff --git a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_cs.properties b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_cs.properties index bb0f0c8e60..cfd1df86c2 100644 --- a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_cs.properties +++ b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_cs.properties @@ -1,11 +1,2 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Zbyn\u011bk Schwarz , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-02-29 20\:31+0000\nLast-Translator\: Zbyn\u011bk Schwarz \nLanguage-Team\: Czech (http\://www.transifex.com/projects/p/gephi/language/cs/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: cs\nPlural-Forms\: nplurals\=3; plural\=(n\=\=1) ? 0 \: (n>\=2 && n<\=4) ? 1 \: 2;\n - -OpenIDE-Module-Long-Description=Z\u00e1kladn\u00ed algoritmy teorie graf\u016f - -OpenIDE-Module-Short-Description=Z\u00e1kladn\u00ed algoritmy teorie graf\u016f +OpenIDE-Module-Long-Description=Zαkladnν algoritmy teorie graf\u016f +OpenIDE-Module-Short-Description=Zαkladnν algoritmy teorie graf\u016f diff --git a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_de.properties b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_de.properties index f4527f3fb1..94ee704d4d 100644 --- a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_de.properties +++ b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_de.properties @@ -1,10 +1,2 @@ -# German translation for gephi -# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 -# This file is distributed under the same license as the gephi package. -# FIRST AUTHOR , 2011. -# -!=Project-Id-Version\: gephi\nReport-Msgid-Bugs-To\: FULL NAME \nPOT-Creation-Date\: 2010-04-07 13\:16+0200\nPO-Revision-Date\: 2011-03-01 15\:39+0000\nLast-Translator\: FULL NAME \nLanguage-Team\: German \nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nX-Launchpad-Export-Date\: 2011-03-13 04\:46+0000\nX-Generator\: Launchpad (build 12559)\n - -!OpenIDE-Module-Long-Description= - -!OpenIDE-Module-Short-Description= +OpenIDE-Module-Long-Description=Grundlegende graphentheoretische Algorithmen +OpenIDE-Module-Short-Description=Grundlegende graphentheoretische Algorithmen diff --git a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_el.properties b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_el.properties new file mode 100644 index 0000000000..a673e6b68e --- /dev/null +++ b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_el.properties @@ -0,0 +1,4 @@ + + +OpenIDE-Module-Long-Description=\u0392\u03B1\u03C3\u03B9\u03BA\u03BF\u03AF \u03B3\u03C1\u03B1\u03C6\u03BF\u03B8\u03B5\u03C9\u03C1\u03B7\u03C4\u03B9\u03BA\u03BF\u03AF \u03B1\u03BB\u03B3\u03CC\u03C1\u03B9\u03B8\u03BC\u03BF\u03B9 +OpenIDE-Module-Short-Description=\u0392\u03B1\u03C3\u03B9\u03BA\u03BF\u03AF \u03B3\u03C1\u03B1\u03C6\u03BF\u03B8\u03B5\u03C9\u03C1\u03B7\u03C4\u03B9\u03BA\u03BF\u03AF \u03B1\u03BB\u03B3\u03CC\u03C1\u03B9\u03B8\u03BC\u03BF\u03B9 diff --git a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_es.properties b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_es.properties index a1b018c94a..52756cd69e 100644 --- a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_es.properties +++ b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_es.properties @@ -1,11 +1,2 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 14\:30+0000\nLast-Translator\: gephi \nLanguage-Team\: Spanish (http\://www.transifex.com/projects/p/gephi/language/es/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: es\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n - -OpenIDE-Module-Long-Description=Algoritmos b\u00e1sicos de la teor\u00eda de grafos - -OpenIDE-Module-Short-Description=Algoritmos b\u00e1sicos de la teor\u00eda de grafos +OpenIDE-Module-Long-Description=Algoritmos bαsicos de la teorνa de grafos +OpenIDE-Module-Short-Description=Algoritmos bαsicos de la teorνa de grafos diff --git a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_fr.properties b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_fr.properties index a7c89cc5dc..478e7d528a 100644 --- a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_fr.properties +++ b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_fr.properties @@ -1,11 +1,2 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 14\:30+0000\nLast-Translator\: gephi \nLanguage-Team\: French (http\://www.transifex.com/projects/p/gephi/language/fr/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fr\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -OpenIDE-Module-Long-Description=Algorithmes de base en th\u00e9orie des graphes - -OpenIDE-Module-Short-Description=Algorithmes de base en th\u00e9orie des graphes +OpenIDE-Module-Long-Description=Algorithmes de base en thιorie des graphes +OpenIDE-Module-Short-Description=Algorithmes de base en thιorie des graphes diff --git a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_he.properties b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_he.properties new file mode 100644 index 0000000000..b2c04dc9e7 --- /dev/null +++ b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_he.properties @@ -0,0 +1,2 @@ +OpenIDE-Module-Long-Description=\u05d0\u05dc\u05d2\u05d5\u05e8\u05d9\u05ea\u05de\u05d9\u05dd \u05d1\u05e1\u05d9\u05e1\u05d9\u05dd \u05d1\u05ea\u05d5\u05e8\u05ea \u05d4\u05d2\u05e8\u05e4\u05d9\u05dd +OpenIDE-Module-Short-Description=\u05d0\u05dc\u05d2\u05d5\u05e8\u05d9\u05ea\u05de\u05d9\u05dd \u05d1\u05e1\u05d9\u05e1\u05d9\u05dd \u05d1\u05ea\u05d5\u05e8\u05ea \u05d4\u05d2\u05e8\u05e4\u05d9\u05dd diff --git a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_hu.properties b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_hu.properties new file mode 100644 index 0000000000..22bfed9537 --- /dev/null +++ b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_hu.properties @@ -0,0 +1,4 @@ + + +OpenIDE-Module-Short-Description=Alapvet\u0151 gr\u00E1felm\u00E9leti algoritmusok +OpenIDE-Module-Long-Description=Alapvet\u0151 gr\u00E1felm\u00E9leti algoritmusok diff --git a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_it.properties b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_it.properties new file mode 100644 index 0000000000..808b470e0f --- /dev/null +++ b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_it.properties @@ -0,0 +1,2 @@ +OpenIDE-Module-Long-Description=Algoritmi di base sulla teoria dei grafi +OpenIDE-Module-Short-Description=Algoritmi di base sulla teoria dei grafi diff --git a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_ja.properties b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_ja.properties index df36d50be0..3faa83fe29 100644 --- a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_ja.properties +++ b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_ja.properties @@ -1,11 +1,2 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-11 00\:30+0000\nLast-Translator\: Siro Kida \nLanguage-Team\: Japanese (http\://www.transifex.com/projects/p/gephi/language/ja/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ja\nPlural-Forms\: nplurals\=1; plural\=0;\n - -OpenIDE-Module-Long-Description=\u57fa\u790e\u30b0\u30e9\u30d5\u7406\u8ad6\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0 - -OpenIDE-Module-Short-Description=\u57fa\u790e\u30b0\u30e9\u30d5\u7406\u8ad6\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0 +OpenIDE-Module-Long-Description=\u57fa\u790e\u30b0\u30e9\u30d5\u7406\u8ad6\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0 +OpenIDE-Module-Short-Description=\u57fa\u790e\u30b0\u30e9\u30d5\u7406\u8ad6\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0 diff --git a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_ko.properties b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_ko.properties new file mode 100644 index 0000000000..3ea290a0a0 --- /dev/null +++ b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_ko.properties @@ -0,0 +1,4 @@ + + +OpenIDE-Module-Long-Description=\uAE30\uBCF8 \uADF8\uB798\uD504 \uC774\uB860 \uC54C\uACE0\uB9AC\uC998 +OpenIDE-Module-Short-Description=\uAE30\uBCF8 \uADF8\uB798\uD504 \uC774\uB860 \uC54C\uACE0\uB9AC\uC998 diff --git a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_nb_NO.properties b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_nb_NO.properties new file mode 100644 index 0000000000..a12d2347c8 --- /dev/null +++ b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_nb_NO.properties @@ -0,0 +1,4 @@ + + +OpenIDE-Module-Long-Description=Algoritmer for grunnleggende grafteori +OpenIDE-Module-Short-Description=Algoritmer for grunnleggende grafteori diff --git a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_nl.properties b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_nl.properties new file mode 100644 index 0000000000..0ad168e5a1 --- /dev/null +++ b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_nl.properties @@ -0,0 +1,2 @@ +OpenIDE-Module-Long-Description=Basic graph theory algorithms +OpenIDE-Module-Short-Description=Basic graph theory algorithms diff --git a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_oc.properties b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_oc.properties index e9370845f0..a9f79325c8 100644 --- a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_oc.properties +++ b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_oc.properties @@ -1,10 +1,2 @@ -# Occitan (post 1500) translation for gephi -# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 -# This file is distributed under the same license as the gephi package. -# FIRST AUTHOR , 2010. -# -!=Project-Id-Version\: gephi\nReport-Msgid-Bugs-To\: FULL NAME \nPOT-Creation-Date\: 2010-04-07 13\:16+0200\nPO-Revision-Date\: 2010-10-21 13\:36+0000\nLast-Translator\: C\u00e9dric VALMARY (Tot en \u00f2c) \nLanguage-Team\: Occitan (post 1500) \nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nX-Launchpad-Export-Date\: 2011-03-13 04\:46+0000\nX-Generator\: Launchpad (build 12559)\n - -OpenIDE-Module-Long-Description=Algoritmes de basa en teoria dels grafes - -OpenIDE-Module-Short-Description=Algoritmes de basa en teoria dels grafes +OpenIDE-Module-Long-Description=Algoritmes de basa en teoria dels grafes +OpenIDE-Module-Short-Description=Algoritmes de basa en teoria dels grafes diff --git a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_pl.properties b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_pl.properties new file mode 100644 index 0000000000..e9e2efa8ed --- /dev/null +++ b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_pl.properties @@ -0,0 +1,4 @@ + + +OpenIDE-Module-Long-Description=Podstawowe algorytmy teorii graf\u00F3w +OpenIDE-Module-Short-Description=Podstawowe algorytmy teorii graf\u00F3w diff --git a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_pt.properties b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_pt.properties new file mode 100644 index 0000000000..9cf88419be --- /dev/null +++ b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_pt.properties @@ -0,0 +1,2 @@ +OpenIDE-Module-Long-Description=Algoritmos b\u00E1sicos de teoria de grafos +OpenIDE-Module-Short-Description=Algoritmos b\u00E1sicos de teoria de grafos diff --git a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_pt_BR.properties b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_pt_BR.properties index 6e1af6e154..d2369bb3eb 100644 --- a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_pt_BR.properties +++ b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_pt_BR.properties @@ -1,11 +1,2 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# C\u00e9lio CJr , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 23\:22+0000\nLast-Translator\: C\u00e9lio Faria Jr. \nLanguage-Team\: Portuguese (Brazil) (http\://www.transifex.com/projects/p/gephi/language/pt_BR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt_BR\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -OpenIDE-Module-Long-Description=Algoritmos b\u00e1sicos de teoria de grafos - -OpenIDE-Module-Short-Description=Algoritmos b\u00e1sicos de teoria de grafos +OpenIDE-Module-Long-Description=Algoritmos bαsicos de teoria de grafos +OpenIDE-Module-Short-Description=Algoritmos bαsicos de teoria de grafos diff --git a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_ro.properties b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_ro.properties new file mode 100644 index 0000000000..5903a932fc --- /dev/null +++ b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_ro.properties @@ -0,0 +1,4 @@ + + +OpenIDE-Module-Long-Description=Algoritmi de baz\u0103 din teoria grafurilor +OpenIDE-Module-Short-Description=Algoritmi de baz\u0103 din teoria grafurilor diff --git a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_ru.properties b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_ru.properties index d481fb7cee..353004c428 100644 --- a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_ru.properties +++ b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_ru.properties @@ -1,11 +1,2 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 14\:30+0000\nLast-Translator\: gephi \nLanguage-Team\: Russian (http\://www.transifex.com/projects/p/gephi/language/ru/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ru\nPlural-Forms\: nplurals\=3; plural\=(n%10\=\=1 && n%100\!\=11 ? 0 \: n%10>\=2 && n%10<\=4 && (n%100<10 || n%100>\=20) ? 1 \: 2);\n - -OpenIDE-Module-Long-Description=\u0411\u0430\u0437\u043e\u0432\u044b\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0442\u0435\u043e\u0440\u0438\u0438 \u0433\u0440\u0430\u0444\u043e\u0432 - -OpenIDE-Module-Short-Description=\u0411\u0430\u0437\u043e\u0432\u044b\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0442\u0435\u043e\u0440\u0438\u0438 \u0433\u0440\u0430\u0444\u043e\u0432 +OpenIDE-Module-Long-Description=\u0411\u0430\u0437\u043e\u0432\u044b\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0442\u0435\u043e\u0440\u0438\u0438 \u0433\u0440\u0430\u0444\u043e\u0432 +OpenIDE-Module-Short-Description=\u0411\u0430\u0437\u043e\u0432\u044b\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0442\u0435\u043e\u0440\u0438\u0438 \u0433\u0440\u0430\u0444\u043e\u0432 diff --git a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_th.properties b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_th.properties new file mode 100644 index 0000000000..05179733e1 --- /dev/null +++ b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_th.properties @@ -0,0 +1,2 @@ +OpenIDE-Module-Long-Description=\u0E2D\u0E31\u0E25\u0E01\u0E2D\u0E23\u0E34\u0E17\u0E36\u0E21\u0E17\u0E24\u0E29\u0E0E\u0E35\u0E01\u0E23\u0E32\u0E1F\u0E40\u0E1A\u0E37\u0E49\u0E2D\u0E07\u0E15\u0E49\u0E19 +OpenIDE-Module-Short-Description=\u0E2D\u0E31\u0E25\u0E01\u0E2D\u0E23\u0E34\u0E17\u0E36\u0E21\u0E17\u0E24\u0E29\u0E0E\u0E35\u0E01\u0E23\u0E32\u0E1F\u0E40\u0E1A\u0E37\u0E49\u0E2D\u0E07\u0E15\u0E49\u0E19 diff --git a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_tr.properties b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_tr.properties new file mode 100644 index 0000000000..7a09775e26 --- /dev/null +++ b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_tr.properties @@ -0,0 +1,2 @@ +OpenIDE-Module-Long-Description=Temel ηizge kuram\u0131 algoritmalar\u0131 +OpenIDE-Module-Short-Description=Temel ηizge kuram\u0131 algoritmalar\u0131 diff --git a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_uk.properties b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_uk.properties new file mode 100644 index 0000000000..25e24fad7b --- /dev/null +++ b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_uk.properties @@ -0,0 +1,2 @@ +OpenIDE-Module-Long-Description=\u0411\u0430\u0437\u043E\u0432\u0456 \u0430\u043B\u0433\u043E\u0440\u0438\u0442\u043C\u0438 \u0442\u0435\u043E\u0440\u0456\u0457 \u0433\u0440\u0430\u0444\u0456\u0432 +OpenIDE-Module-Short-Description=\u0411\u0430\u0437\u043E\u0432\u0456 \u0430\u043B\u0433\u043E\u0440\u0438\u0442\u043C\u0438 \u0442\u0435\u043E\u0440\u0456\u0457 \u0433\u0440\u0430\u0444\u0456\u0432 diff --git a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_zh_CN.properties b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_zh_CN.properties index 1655e8fbaa..11dc0e13b1 100644 --- a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_zh_CN.properties +++ b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_zh_CN.properties @@ -1,10 +1,2 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-08 00\:21+0000\nLast-Translator\: gephi \nLanguage-Team\: Chinese (China) (http\://www.transifex.com/projects/p/gephi/language/zh_CN/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: zh_CN\nPlural-Forms\: nplurals\=1; plural\=0;\n - -OpenIDE-Module-Long-Description=\u57fa\u672c\u7684\u56fe\u8bba\u7b97\u6cd5 - -OpenIDE-Module-Short-Description=\u57fa\u672c\u7684\u56fe\u8bba\u7b97\u6cd5 +OpenIDE-Module-Long-Description=\u57fa\u672c\u7684\u56fe\u8bba\u7b97\u6cd5 +OpenIDE-Module-Short-Description=\u57fa\u672c\u7684\u56fe\u8bba\u7b97\u6cd5 diff --git a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_zh_TW.properties b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_zh_TW.properties new file mode 100644 index 0000000000..edac71fde2 --- /dev/null +++ b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/Bundle_zh_TW.properties @@ -0,0 +1,2 @@ +OpenIDE-Module-Long-Description=\u57fa\u790e\u5716\u8ad6\u6f14\u7b97\u6cd5 +OpenIDE-Module-Short-Description=\u57fa\u790e\u5716\u8ad6\u6f14\u7b97\u6cd5 diff --git a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/cs.po b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/cs.po deleted file mode 100644 index ff6cfc77dd..0000000000 --- a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/cs.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# ZbynΔ›k Schwarz , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-02-29 20:31+0000\n" -"Last-Translator: ZbynΔ›k Schwarz \n" -"Language-Team: Czech (http://www.transifex.com/projects/p/gephi/language/cs/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: cs\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "ZΓ‘kladnΓ­ algoritmy teorie grafΕ―" - -msgid "OpenIDE-Module-Short-Description" -msgstr "ZΓ‘kladnΓ­ algoritmy teorie grafΕ―" diff --git a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/es.po b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/es.po deleted file mode 100644 index d4ed14b959..0000000000 --- a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/es.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 14:30+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/gephi/language/es/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "Algoritmos bΓ‘sicos de la teorΓ­a de grafos" - -msgid "OpenIDE-Module-Short-Description" -msgstr "Algoritmos bΓ‘sicos de la teorΓ­a de grafos" diff --git a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/fr.po b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/fr.po deleted file mode 100644 index 9305337554..0000000000 --- a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/fr.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 14:30+0000\n" -"Last-Translator: gephi \n" -"Language-Team: French (http://www.transifex.com/projects/p/gephi/language/fr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "Algorithmes de base en thΓ©orie des graphes" - -msgid "OpenIDE-Module-Short-Description" -msgstr "Algorithmes de base en thΓ©orie des graphes" diff --git a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/ja.po b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/ja.po deleted file mode 100644 index 612ea1bede..0000000000 --- a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/ja.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-11 00:30+0000\n" -"Last-Translator: Siro Kida \n" -"Language-Team: Japanese (http://www.transifex.com/projects/p/gephi/language/ja/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ja\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "εŸΊη€Žγ‚°γƒ©γƒ•η†θ«–γ‚’γƒ«γ‚΄γƒͺγ‚Ίγƒ " - -msgid "OpenIDE-Module-Short-Description" -msgstr "εŸΊη€Žγ‚°γƒ©γƒ•η†θ«–γ‚’γƒ«γ‚΄γƒͺγ‚Ίγƒ " diff --git a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/org-gephi-algorithms.pot b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/org-gephi-algorithms.pot deleted file mode 100644 index 5de8c51514..0000000000 --- a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/org-gephi-algorithms.pot +++ /dev/null @@ -1,22 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# Gephi Team , 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: Gephi 0.8\n" -"Report-Msgid-Bugs-To: gephi.team@lists.launchpad.net\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-05 14:52+0200\n" -"Last-Translator: Mathieu Bastian \n" -"Language-Team: English \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "Basic graph theory algorithms" - -msgid "OpenIDE-Module-Short-Description" -msgstr "Basic graph theory algorithms" diff --git a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/pt_BR.po b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/pt_BR.po deleted file mode 100644 index a1d7986682..0000000000 --- a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/pt_BR.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# CΓ©lio CJr , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 23:22+0000\n" -"Last-Translator: CΓ©lio Faria Jr. \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/gephi/language/pt_BR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "Algoritmos bΓ‘sicos de teoria de grafos " - -msgid "OpenIDE-Module-Short-Description" -msgstr "Algoritmos bΓ‘sicos de teoria de grafos " diff --git a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/ru.po b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/ru.po deleted file mode 100644 index c96c9c1f6d..0000000000 --- a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/ru.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 14:30+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Russian (http://www.transifex.com/projects/p/gephi/language/ru/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ Π³Ρ€Π°Ρ„ΠΎΠ²" - -msgid "OpenIDE-Module-Short-Description" -msgstr "Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ Π³Ρ€Π°Ρ„ΠΎΠ²" diff --git a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/zh_CN.po b/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/zh_CN.po deleted file mode 100644 index 0970dddd0b..0000000000 --- a/modules/AlgorithmsPlugin/src/main/resources/org/gephi/algorithms/zh_CN.po +++ /dev/null @@ -1,24 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-08 00:21+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/gephi/language/zh_CN/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "εŸΊζœ¬ηš„ε›ΎθΊη—法" - -msgid "OpenIDE-Module-Short-Description" -msgstr "εŸΊζœ¬ηš„ε›ΎθΊη—法" diff --git a/modules/AppearanceAPI/pom.xml b/modules/AppearanceAPI/pom.xml new file mode 100644 index 0000000000..e92d38e317 --- /dev/null +++ b/modules/AppearanceAPI/pom.xml @@ -0,0 +1,74 @@ + + + 4.0.0 + + gephi-parent + org.gephi + 0.11.3-SNAPSHOT + ../.. + + + org.gephi + appearance-api + 0.11.3-SNAPSHOT + nbm + + AppearanceAPI + + + + ${project.groupId} + graph-api + + + ${project.groupId} + project-api + + + ${project.groupId} + core-library-wrapper + + + org.netbeans.api + org-openide-util-lookup + + + org.netbeans.api + org-openide-util + + + + + org.mockito + mockito-core + test + + + ${project.groupId} + graph-api + test + test-jar + + + ${project.groupId} + project-api + test-jar + test + + + + + + + org.apache.netbeans.utilities + nbm-maven-plugin + + + org.gephi.appearance.api + org.gephi.appearance.spi + + + + + + diff --git a/modules/AppearanceAPI/src/main/java/org/gephi/appearance/AppearanceControllerImpl.java b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/AppearanceControllerImpl.java new file mode 100644 index 0000000000..d540dca19a --- /dev/null +++ b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/AppearanceControllerImpl.java @@ -0,0 +1,146 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance; + +import org.gephi.appearance.api.AppearanceController; +import org.gephi.appearance.api.Function; +import org.gephi.appearance.spi.Transformer; +import org.gephi.appearance.spi.TransformerUI; +import org.gephi.graph.api.Element; +import org.gephi.graph.api.ElementIterable; +import org.gephi.graph.api.Graph; +import org.gephi.graph.api.GraphModel; +import org.gephi.graph.api.Node; +import org.gephi.project.api.Workspace; +import org.gephi.project.spi.Controller; +import org.openide.util.Lookup; +import org.openide.util.lookup.ServiceProvider; +import org.openide.util.lookup.ServiceProviders; + +/** + * @author mbastian + */ +@ServiceProviders({ + @ServiceProvider(service = AppearanceController.class), + @ServiceProvider(service = Controller.class)}) +public class AppearanceControllerImpl implements AppearanceController, Controller { + + public AppearanceControllerImpl() { + } + + @Override + public AppearanceModelImpl newModel(Workspace workspace) { + return new AppearanceModelImpl(workspace); + } + + @Override + public void transform(Function function) { + if (!function.isValid()) { + return; + } + GraphModel graphModel = function.getGraph().getModel(); + Graph graph = graphModel.getGraphVisible(); + ElementIterable iterable; + if (function.getElementClass().equals(Node.class)) { + iterable = graph.getNodes(); + } else { + iterable = graph.getEdges(); + } + try { + function.transformAll(iterable); + } catch (Exception e) { + iterable.doBreak(); + if (e instanceof RuntimeException) { + throw (RuntimeException) e; + } else { + throw new RuntimeException(e); + } + } + } + + @Override + public Class getModelClass() { + return AppearanceModelImpl.class; + } + + @Override + public AppearanceModelImpl getModel() { + return Controller.super.getModel(); + } + + @Override + public AppearanceModelImpl getModel(Workspace workspace) { + return Controller.super.getModel(workspace); + } + + @Override + public Transformer getTransformer(TransformerUI ui) { + Class transformerClass = ui.getTransformerClass(); + Transformer transformer = Lookup.getDefault().lookup(transformerClass); + return transformer; + } + + @Override + public void setUseRankingLocalScale(boolean useLocalScale) { + AppearanceModelImpl model = getModel(); + if (model != null) { + model.setRankingLocalScale(useLocalScale); + } + } + + @Override + public void setUsePartitionLocalScale(boolean useLocalScale) { + AppearanceModelImpl model = getModel(); + if (model != null) { + model.setPartitionLocalScale(useLocalScale); + } + } + + @Override + public void setTransformNullValues(boolean transformNullValues) { + AppearanceModelImpl model = getModel(); + if (model != null) { + model.setTransformNullValues(transformNullValues); + } + } +} diff --git a/modules/AppearanceAPI/src/main/java/org/gephi/appearance/AppearanceModelImpl.java b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/AppearanceModelImpl.java new file mode 100644 index 0000000000..c0c5dcf4ac --- /dev/null +++ b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/AppearanceModelImpl.java @@ -0,0 +1,529 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.WeakHashMap; +import java.util.stream.Collectors; +import org.gephi.appearance.api.AppearanceModel; +import org.gephi.appearance.api.Function; +import org.gephi.appearance.api.Partition; +import org.gephi.appearance.api.Ranking; +import org.gephi.appearance.spi.PartitionTransformer; +import org.gephi.appearance.spi.RankingTransformer; +import org.gephi.appearance.spi.SimpleTransformer; +import org.gephi.appearance.spi.Transformer; +import org.gephi.appearance.spi.TransformerUI; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Edge; +import org.gephi.graph.api.Graph; +import org.gephi.graph.api.GraphController; +import org.gephi.graph.api.GraphModel; +import org.gephi.graph.api.Node; +import org.gephi.graph.api.Table; +import org.gephi.project.api.Workspace; +import org.gephi.project.spi.Model; +import org.openide.util.Lookup; +import org.openide.util.NbBundle; +import org.openide.util.NbPreferences; + +/** + * @author mbastian + */ +public class AppearanceModelImpl implements AppearanceModel, Model { + + private final Workspace workspace; + private final GraphModel graphModel; + // Transformers + private final List nodeTransformers; + private final List edgeTransformers; + // Transformer UIS + private final Map transformerUIs; + // Ranking and partitions + private final DegreeRankingImpl degreeRanking; + private final InDegreeRankingImpl inDegreeRanking; + private final OutDegreeRankingImpl outDegreeRanking; + private final EdgeWeightRankingImpl edgeWeightRanking; + private final EdgeTypePartitionImpl edgeTypePartition; + private final Map nodeAttributeRankings; + private final Map edgeAttributeRankings; + private final Map nodeAttributePartitions; + private final Map edgeAttributePartitions; + // Static functions + private final List nodeStaticFunctions; + private final List edgeStaticFunctions; + // LocalScale (if true, uses visible graph) + private boolean rankingLocalScale = NbPreferences.forModule(AppearanceModel.class) + .getBoolean("Appearance.rankingLocalScale", false); + private boolean partitionLocalScale = NbPreferences.forModule(AppearanceModel.class) + .getBoolean("Appearance.partitionLocalScale", false); + // Null values settings + private boolean transformNullValues = NbPreferences.forModule(AppearanceModel.class) + .getBoolean("Appearance.transformNullValues", false); + + public AppearanceModelImpl(Workspace workspace) { + this.workspace = workspace; + this.graphModel = Lookup.getDefault().lookup(GraphController.class).getGraphModel(workspace); + this.transformerUIs = initTransformerUIs(); + this.nodeTransformers = initNodeTransformers(); + this.edgeTransformers = initEdgeTransformers(); + + degreeRanking = new DegreeRankingImpl(graphModel.defaultColumns().degree()); + inDegreeRanking = new InDegreeRankingImpl(graphModel.defaultColumns().inDegree()); + outDegreeRanking = new OutDegreeRankingImpl(graphModel.defaultColumns().outDegree()); + edgeWeightRanking = new EdgeWeightRankingImpl(); + edgeTypePartition = new EdgeTypePartitionImpl(graphModel.defaultColumns().edgeType(), + graphModel.getConfiguration().getEdgeLabelType()); + nodeAttributeRankings = new WeakHashMap<>(); + edgeAttributeRankings = new WeakHashMap<>(); + nodeAttributePartitions = new WeakHashMap<>(); + edgeAttributePartitions = new WeakHashMap<>(); + + // Static functions + nodeStaticFunctions = getNodeSimpleFunctions(); + nodeStaticFunctions.addAll(getNodeRankingFunctions()); + edgeStaticFunctions = getEdgeSimpleFunctions(); + edgeStaticFunctions.addAll(getRankingAndPartitionEdgeFunctions()); + + //Init + initAttributeRankingsAndPartitions(); + } + + protected Graph getRankingGraph() { + if (rankingLocalScale) { + return graphModel.getGraphVisible(); + } else { + return graphModel.getGraph(); + } + } + + protected Graph getPartitionGraph() { + if (partitionLocalScale) { + return graphModel.getGraphVisible(); + } else { + return graphModel.getGraph(); + } + } + + @Override + public Function[] getNodeFunctions() { + List res = new ArrayList<>(); + res.addAll(nodeStaticFunctions); + res.addAll(getAttributeFunctions(graphModel.getNodeTable())); + return res.stream().filter(FunctionImpl::isValid).toArray(Function[]::new); + } + + @Override + public Function[] getEdgeFunctions() { + List res = new ArrayList<>(); + res.addAll(edgeStaticFunctions); + res.addAll(getAttributeFunctions(graphModel.getEdgeTable())); + return res.stream().filter(FunctionImpl::isValid).toArray(Function[]::new); + } + + @Override + public Function getNodeFunction(Column column, Class transformer) { + return getFunction(column, transformer); + } + + @Override + public Function getEdgeFunction(Column column, Class transformer) { + return getFunction(column, transformer); + } + + private Function getFunction(Column column, Class transformer) { + if (column.isProperty()) { + GraphFunction graphFunction = convertColumnToGraphFunction(column); + List funcs = + column.getTable().isNodeTable() ? getNodeRankingFunctions() : getRankingAndPartitionEdgeFunctions(); + return funcs.stream() + .filter(f -> f.getTransformer().getClass().equals(transformer) && + f.getGraphFunction().equals(graphFunction)) + .filter(FunctionImpl::isValid) + .findFirst().orElse(null); + } else { + return getAttributeFunctions(column.getTable()).stream() + .filter(f -> f.getTransformer().getClass().equals(transformer) && f.getColumn().equals(column)) + .filter(FunctionImpl::isValid) + .findFirst().orElse(null); + } + } + + @Override + public Partition getNodePartition(Column column) { + return initAttributePartition(column); + } + + @Override + public Partition getEdgePartition(Column column) { + return initAttributePartition(column); + } + + protected RankingImpl[] getNodeRankings() { + List rankings = new ArrayList<>(); + rankings.add(degreeRanking); + rankings.add(inDegreeRanking); + rankings.add(outDegreeRanking); + rankings.addAll(nodeAttributeRankings.values()); + return rankings.toArray(new RankingImpl[0]); + } + + protected RankingImpl[] getEdgeRankings() { + List rankings = new ArrayList<>(); + rankings.add(edgeWeightRanking); + rankings.addAll(edgeAttributeRankings.values()); + return rankings.toArray(new RankingImpl[0]); + } + + protected PartitionImpl[] getNodePartitions() { + return nodeAttributePartitions.values().toArray(new AttributePartitionImpl[0]); + } + + protected PartitionImpl[] getEdgePartitions() { + List partitions = new ArrayList<>(); + partitions.add(edgeTypePartition); + partitions.addAll(edgeAttributePartitions.values()); + return partitions.toArray(new PartitionImpl[0]); + } + + protected RankingImpl getDegreeRanking() { + return degreeRanking; + } + + protected Ranking getInDegreeRanking() { + return inDegreeRanking; + } + + protected Ranking getOutDegreeRanking() { + return outDegreeRanking; + } + + protected Ranking getEdgeWeightRanking() { + return edgeWeightRanking; + } + + protected Partition getEdgeTypePartition() { + return edgeTypePartition; + } + + protected RankingImpl getNodeRanking(Column column) { + return nodeAttributeRankings.get(column); + } + + protected Ranking getEdgeRanking(Column column) { + return edgeAttributeRankings.get(column); + } + + // Only for testing + protected int countNodeAttributeRanking() { + return nodeAttributeRankings.size(); + } + + @Override + public Workspace getWorkspace() { + return workspace; + } + + @Override + public boolean isRankingLocalScale() { + return rankingLocalScale; + } + + public void setRankingLocalScale(boolean localScale) { + this.rankingLocalScale = localScale; + } + + @Override + public boolean isPartitionLocalScale() { + return partitionLocalScale; + } + + public void setPartitionLocalScale(boolean localScale) { + this.partitionLocalScale = localScale; + } + + @Override + public boolean isTransformNullValues() { + return transformNullValues; + } + + public void setTransformNullValues(boolean transformNullValues) { + this.transformNullValues = transformNullValues; + } + + private List getNodeRankingFunctions() { + return nodeTransformers.stream().filter(t -> t instanceof RankingTransformer) + .flatMap(t -> getDegreeFunctions(t).stream()).collect(Collectors.toList()); + } + + private void cleanAttributeRankingsAndPartitions(Table table) { + if (table.isNodeTable()) { + nodeAttributeRankings.keySet().removeIf(c -> !c.exists()); + nodeAttributePartitions.keySet().removeIf(c -> !c.exists()); + } else { + edgeAttributeRankings.keySet().removeIf(c -> !c.exists()); + edgeAttributePartitions.keySet().removeIf(c -> !c.exists()); + } + } + + private List getAttributeFunctions(Table table) { + cleanAttributeRankingsAndPartitions(table); + + List res = new ArrayList<>(); + List transformers = table.isNodeTable() ? nodeTransformers : edgeTransformers; + for (Column column : table) { + if (!column.isProperty()) { + transformers.forEach(t -> { + if ((column.isNumber() && t instanceof RankingTransformer) || t instanceof PartitionTransformer) { + res.addAll(getAttributeFunctions(column, t)); + } + }); + } else if (column.isDynamic() && !column.isDynamicAttribute()) { + transformers.stream().filter(t -> t instanceof RankingTransformer).forEach(t -> { + res.addAll(getTimesetFunctions(column, t)); + }); + } + } + return res; + } + + private List getTimesetFunctions(Column column, Transformer transformer) { + List res = new ArrayList<>(); + if (transformer instanceof RankingTransformer && column.isDynamic() && !column.isDynamicAttribute()) { + if (transformer.isNode() && column.getTable().isNodeTable()) { + RankingImpl ranking = + nodeAttributeRankings.computeIfAbsent(column, k -> new TimesetRankingImpl(column)); + res.add(new AttributeFunctionImpl(this, getId("node", transformer, column), column, + transformer, getTransformerUI(transformer), ranking)); + } + if (transformer.isEdge() && column.getTable().isEdgeTable()) { + RankingImpl ranking = + edgeAttributeRankings.computeIfAbsent(column, k -> new TimesetRankingImpl(column)); + res.add(new AttributeFunctionImpl(this, getId("edge", transformer, column), column, + transformer, getTransformerUI(transformer), ranking)); + } + } + return res; + } + + private List getAttributeFunctions(Column column, Transformer transformer) { + List res = new ArrayList<>(); + if (transformer instanceof RankingTransformer && column.isNumber()) { + if (transformer.isNode() && column.getTable().isNodeTable()) { + RankingImpl ranking = + nodeAttributeRankings.computeIfAbsent(column, k -> new AttributeRankingImpl(column)); + res.add(new AttributeFunctionImpl(this, getId("node", transformer, column), column, + transformer, getTransformerUI(transformer), ranking)); + } + if (transformer.isEdge() && column.getTable().isEdgeTable()) { + RankingImpl ranking = + edgeAttributeRankings.computeIfAbsent(column, k -> new AttributeRankingImpl(column)); + res.add(new AttributeFunctionImpl(this, getId("edge", transformer, column), column, + transformer, getTransformerUI(transformer), ranking)); + } + } + if (transformer instanceof PartitionTransformer) { + if (transformer.isNode() && column.getTable().isNodeTable()) { + PartitionImpl partition = + nodeAttributePartitions.computeIfAbsent(column, k -> new AttributePartitionImpl(column)); + res.add(new AttributeFunctionImpl(this, getId("node", transformer, column), column, transformer, + getTransformerUI(transformer), partition)); + } + if (transformer.isEdge() && column.getTable().isEdgeTable()) { + PartitionImpl partition = + edgeAttributePartitions.computeIfAbsent(column, k -> new AttributePartitionImpl(column)); + res.add(new AttributeFunctionImpl(this, getId("edge", transformer, column), column, transformer, + getTransformerUI(transformer), partition)); + } + } + return res; + } + + protected void initAttributeRankingsAndPartitions() { + for (Column column : graphModel.getNodeTable()) { + if (!column.isProperty()) { + if (column.isNumber()) { + nodeAttributeRankings.put(column, new AttributeRankingImpl(column)); + } + nodeAttributePartitions.put(column, new AttributePartitionImpl(column)); + } + } + for (Column column : graphModel.getEdgeTable()) { + if (!column.isProperty()) { + if (column.isNumber()) { + edgeAttributeRankings.put(column, new AttributeRankingImpl(column)); + } + edgeAttributePartitions.put(column, new AttributePartitionImpl(column)); + } + } + } + + private AttributePartitionImpl initAttributePartition(Column column) { + if (!column.isProperty()) { + if (column.getTable().isNodeTable()) { + return nodeAttributePartitions.computeIfAbsent(column, k -> new AttributePartitionImpl(column)); + } else if (column.getTable().isEdgeTable()) { + return edgeAttributePartitions.computeIfAbsent(column, k -> new AttributePartitionImpl(column)); + } + } + return null; + } + + private List getNodeSimpleFunctions() { + return Lookup.getDefault().lookupAll(Transformer.class).stream() + .filter(t -> t instanceof SimpleTransformer && t.isNode()) + .map(t -> new SimpleFunctionImpl(this, getId("node", t, "simple"), Node.class, t, getTransformerUI(t))) + .collect(Collectors.toList()); + } + + private List getEdgeSimpleFunctions() { + return Lookup.getDefault().lookupAll(Transformer.class).stream() + .filter(t -> t instanceof SimpleTransformer && t.isEdge()) + .map(t -> new SimpleFunctionImpl(this, getId("edge", t, "simple"), Edge.class, t, getTransformerUI(t))) + .collect(Collectors.toList()); + } + + private List getDegreeFunctions(Transformer transformer) { + List res = new ArrayList<>(); + TransformerUI transformerUI = getTransformerUI(transformer); + + res.add( + new GraphFunctionImpl(this, GraphFunction.NODE_DEGREE, getId("node", transformer, "degree"), + NbBundle.getMessage(AppearanceModelImpl.class, "NodeGraphFunction.Degree.name"), + Node.class, transformer, transformerUI, degreeRanking)); + + res.add(new GraphFunctionImpl(this, GraphFunction.NODE_INDEGREE, getId("node", transformer, "indegree"), + NbBundle.getMessage(AppearanceModelImpl.class, "NodeGraphFunction.InDegree.name"), + Node.class, transformer, transformerUI, inDegreeRanking)); + res.add( + new GraphFunctionImpl(this, GraphFunction.NODE_OUTDEGREE, getId("node", transformer, "outdegree"), + NbBundle.getMessage(AppearanceModelImpl.class, "NodeGraphFunction.OutDegree.name"), + Node.class, transformer, transformerUI, outDegreeRanking)); + return res; + } + + private List getRankingAndPartitionEdgeFunctions() { + return edgeTransformers.stream().flatMap(t -> { + List res = new ArrayList<>(); + TransformerUI transformerUI = getTransformerUI(t); + + if (t instanceof RankingTransformer) { + res.add(new GraphFunctionImpl(this, GraphFunction.EDGE_WEIGHT, getId("edge", t, "weight"), + NbBundle.getMessage(AppearanceModelImpl.class, "EdgeGraphFunction.Weight.name"), Edge.class, t, + transformerUI, edgeWeightRanking)); + } + + if (t instanceof PartitionTransformer) { + res.add( + new GraphFunctionImpl(this, GraphFunction.EDGE_TYPE, getId("edge", t, "type"), + NbBundle.getMessage(AppearanceModelImpl.class, "EdgeGraphFunction.Type.name"), + Edge.class, t, transformerUI, edgeTypePartition)); + } + return res.stream(); + }).collect(Collectors.toList()); + } + + protected TransformerUI getTransformerUI(Transformer transformer) { + return transformerUIs.get(transformer.getClass()); + } + + @Override + public GraphModel getGraphModel() { + return graphModel; + } + + private Map initTransformerUIs() { + //Index UIs + Map uis = new HashMap<>(); + + for (TransformerUI ui : Lookup.getDefault().lookupAll(TransformerUI.class)) { + Class transformerClass = ui.getTransformerClass(); + if (transformerClass == null) { + throw new NullPointerException("Transformer class can' be null"); + } + if (uis.containsKey(transformerClass)) { + throw new RuntimeException("A Transformer can't be attach to multiple TransformerUI"); + } + uis.put(transformerClass, ui); + } + return uis; + } + + private List initNodeTransformers() { + return Lookup.getDefault().lookupAll(Transformer.class).stream().filter(Transformer::isNode).collect( + Collectors.toList()); + } + + private List initEdgeTransformers() { + return Lookup.getDefault().lookupAll(Transformer.class).stream().filter(Transformer::isEdge).collect( + Collectors.toList()); + } + + private GraphFunction convertColumnToGraphFunction(Column column) { + GraphFunction graphFunction = null; + if (column.equals(graphModel.defaultColumns().degree())) { + graphFunction = GraphFunction.NODE_DEGREE; + } else if (column.equals(graphModel.defaultColumns().inDegree())) { + graphFunction = GraphFunction.NODE_INDEGREE; + } else if (column.equals(graphModel.defaultColumns().outDegree())) { + graphFunction = GraphFunction.NODE_OUTDEGREE; + } else if (column.equals(graphModel.defaultColumns().edgeType())) { + graphFunction = GraphFunction.EDGE_TYPE; + } else if (column.getTable().isEdgeTable() && column.getId().equals("weight")) { + graphFunction = GraphFunction.EDGE_WEIGHT; + } + return graphFunction; + } + + private String getId(String prefix, Transformer transformer, Column column) { + return prefix + "_" + transformer.getClass().getSimpleName() + "_column_" + column.getId(); + } + + + private String getId(String prefix, Transformer transformer, String suffix) { + return prefix + "_" + transformer.getClass().getSimpleName() + "_" + suffix; + } +} diff --git a/modules/AppearanceAPI/src/main/java/org/gephi/appearance/AppearanceModelPersistenceProvider.java b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/AppearanceModelPersistenceProvider.java new file mode 100644 index 0000000000..b29a52a39f --- /dev/null +++ b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/AppearanceModelPersistenceProvider.java @@ -0,0 +1,260 @@ +package org.gephi.appearance; + +import java.awt.Color; +import java.util.Arrays; +import java.util.Map; +import java.util.stream.Collectors; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; +import javax.xml.stream.XMLStreamWriter; +import javax.xml.stream.events.XMLEvent; +import org.gephi.appearance.api.Interpolator; +import org.gephi.graph.api.AttributeUtils; +import org.gephi.graph.api.Column; +import org.gephi.project.api.Workspace; +import org.gephi.project.spi.WorkspacePersistenceProvider; +import org.gephi.project.spi.WorkspaceXMLPersistenceProvider; +import org.openide.util.lookup.ServiceProvider; + +@ServiceProvider(service = WorkspacePersistenceProvider.class, position = 400) +public class AppearanceModelPersistenceProvider implements WorkspaceXMLPersistenceProvider { + + + @Override + public void writeXML(XMLStreamWriter writer, Workspace workspace) { + AppearanceModelImpl model = workspace.getLookup().lookup(AppearanceModelImpl.class); + if (model != null) { + try { + writeXML(writer, model); + } catch (XMLStreamException ex) { + throw new RuntimeException(ex); + } + } + } + + @Override + public void readXML(XMLStreamReader reader, Workspace workspace) { + AppearanceModelImpl model = workspace.getLookup().lookup(AppearanceModelImpl.class); + model.initAttributeRankingsAndPartitions(); + try { + readXML(reader, model); + } catch (XMLStreamException ex) { + throw new RuntimeException(ex); + } + } + + @Override + public String getIdentifier() { + return "appearancemodel"; + } + + protected void writeXML(XMLStreamWriter writer, AppearanceModelImpl model) + throws XMLStreamException { + writer.writeStartElement("localscale"); + writer.writeAttribute("ranking", String.valueOf(model.isRankingLocalScale())); + writer.writeAttribute("partition", String.valueOf(model.isPartitionLocalScale())); + writer.writeEndElement(); + + //Rankings + writeRankings(writer, model.getNodeRankings(), "node"); + writeRankings(writer, model.getEdgeRankings(), "edge"); + + //Partitions + writePartitions(writer, model.getNodePartitions(), "node"); + writePartitions(writer, model.getEdgePartitions(), "edge"); + } + + public void readXML(XMLStreamReader reader, AppearanceModelImpl model) throws XMLStreamException { + boolean end = false; + while (reader.hasNext() && !end) { + Integer eventType = reader.next(); + if (eventType.equals(XMLEvent.START_ELEMENT)) { + String name = reader.getLocalName(); + if ("localscale".equalsIgnoreCase(name)) { + String partition = reader.getAttributeValue(null, "partition"); + String ranking = reader.getAttributeValue(null, "ranking"); + model.setPartitionLocalScale(Boolean.parseBoolean(partition)); + model.setRankingLocalScale(Boolean.parseBoolean(ranking)); + } else if ("rankings".equalsIgnoreCase(name)) { + String elementClass = reader.getAttributeValue(null, "for"); + readRankings(reader, + elementClass.equals("node") ? model.getNodeRankings() : model.getEdgeRankings()); + } else if ("partitions".equalsIgnoreCase(name)) { + String elementClass = reader.getAttributeValue(null, "for"); + readPartitions(reader, + elementClass.equals("node") ? model.getNodePartitions() : model.getEdgePartitions()); + } + } else if (eventType.equals(XMLStreamReader.END_ELEMENT)) { + if (getIdentifier().equalsIgnoreCase(reader.getLocalName())) { + end = true; + } + } + } + } + + protected void writeRankings(XMLStreamWriter writer, RankingImpl[] rankings, String elementClass) + throws XMLStreamException { + writer.writeStartElement("rankings"); + writer.writeAttribute("for", elementClass); + for (RankingImpl ranking : rankings) { + writer.writeStartElement("ranking"); + writer.writeAttribute("class", ranking.getClass().getSimpleName()); + if (ranking instanceof AttributeRankingImpl) { + Column col = ranking.getColumn(); + writer.writeAttribute("column", col != null ? col.getId() : ""); + } + writeInterpolator(writer, ranking.getInterpolator()); + writer.writeEndElement(); + } + writer.writeEndElement(); + } + + protected void readRankings(XMLStreamReader reader, RankingImpl[] rankings) throws XMLStreamException { + Map graphRankings = + Arrays.stream(rankings).filter(r -> !(r instanceof AttributeRankingImpl)).collect( + Collectors.toMap(r -> r.getClass().getSimpleName(), r -> r)); + Map attributeRankings = + Arrays.stream(rankings).filter(r -> r instanceof AttributeRankingImpl).filter(r -> r.getColumn() != null) + .collect( + Collectors.toMap(r -> r.getColumn().getId(), r -> r)); + + RankingImpl ranking = null; + boolean end = false; + while (reader.hasNext() && !end) { + Integer eventType = reader.next(); + if (eventType.equals(XMLEvent.START_ELEMENT)) { + String name = reader.getLocalName(); + if ("ranking".equalsIgnoreCase(name)) { + String rankingClass = reader.getAttributeValue(null, "class"); + String rankingColumn = reader.getAttributeValue(null, "column"); + if (rankingColumn != null) { + ranking = attributeRankings.get(rankingColumn); + } else { + ranking = graphRankings.get(rankingClass); + } + } else if ("interpolator".equalsIgnoreCase(name) && ranking != null) { + readInterpolator(reader, ranking); + } + } else if (eventType.equals(XMLStreamReader.END_ELEMENT)) { + ranking = null; + if ("rankings".equalsIgnoreCase(reader.getLocalName())) { + end = true; + } + } + } + } + + protected void writeInterpolator(XMLStreamWriter writer, Interpolator interpolator) + throws XMLStreamException { + String type = null; + if (interpolator == Interpolator.LOG2) { + type = "log2"; + } else if (interpolator == Interpolator.LINEAR) { + type = "linear"; + } else if (interpolator instanceof Interpolator.BezierInterpolator) { + type = "bezier"; + } + if (type != null) { + writer.writeStartElement("interpolator"); + writer.writeAttribute("type", type); + if (type.equals("bezier")) { + Interpolator.BezierInterpolator bezierInterpolator = + (Interpolator.BezierInterpolator) interpolator; + writer.writeAttribute("x1", String.valueOf(bezierInterpolator.getControl1().getX())); + writer.writeAttribute("y1", String.valueOf(bezierInterpolator.getControl1().getY())); + writer.writeAttribute("x2", String.valueOf(bezierInterpolator.getControl2().getX())); + writer.writeAttribute("y2", String.valueOf(bezierInterpolator.getControl2().getY())); + } + writer.writeEndElement(); + } + } + + protected void readInterpolator(XMLStreamReader reader, RankingImpl ranking) { + String type = reader.getAttributeValue(null, "type"); + Interpolator interpolator = null; + switch (type) { + case "log2": + interpolator = Interpolator.LOG2; + break; + case "linear": + interpolator = Interpolator.LINEAR; + break; + case "bezier": + float x1 = Float.parseFloat(reader.getAttributeValue(null, "x1")); + float y1 = Float.parseFloat(reader.getAttributeValue(null, "y1")); + float x2 = Float.parseFloat(reader.getAttributeValue(null, "x2")); + float y2 = Float.parseFloat(reader.getAttributeValue(null, "y2")); + interpolator = new Interpolator.BezierInterpolator(x1, y1, x2, y2); + break; + } + if (interpolator != null) { + ranking.setInterpolator(interpolator); + } + } + + protected void writePartitions(XMLStreamWriter writer, PartitionImpl[] partitions, String elementClass) + throws XMLStreamException { + writer.writeStartElement("partitions"); + writer.writeAttribute("for", elementClass); + for (PartitionImpl partition : partitions) { + if (!partition.colorMap.isEmpty()) { + writer.writeStartElement("partition"); + writer.writeAttribute("class", partition.getClass().getSimpleName()); + if (partition instanceof AttributePartitionImpl) { + Column col = partition.getColumn(); + writer.writeAttribute("column", col != null ? col.getId() : ""); + } + for (Map.Entry entry : partition.colorMap.entrySet()) { + String key = AttributeUtils.print(entry.getKey()); + int rgba = (entry.getValue().getAlpha() << 24) | entry.getValue().getRGB(); + writer.writeStartElement("color"); + writer.writeAttribute("for", key); + writer.writeAttribute("rgba", String.valueOf(rgba)); + writer.writeEndElement(); + } + writer.writeEndElement(); + } + } + writer.writeEndElement(); + } + + protected void readPartitions(XMLStreamReader reader, PartitionImpl[] partitions) throws XMLStreamException { + Map graphPartitions = + Arrays.stream(partitions).filter(r -> !(r instanceof AttributePartitionImpl)).collect( + Collectors.toMap(r -> r.getClass().getSimpleName(), r -> r)); + Map attributePartitions = + Arrays.stream(partitions).filter(r -> r instanceof AttributePartitionImpl) + .filter(r -> r.getColumn() != null) + .collect( + Collectors.toMap(r -> r.getColumn().getId(), r -> r)); + + PartitionImpl partition = null; + boolean end = false; + while (reader.hasNext() && !end) { + Integer eventType = reader.next(); + if (eventType.equals(XMLEvent.START_ELEMENT)) { + String name = reader.getLocalName(); + if ("partition".equalsIgnoreCase(name)) { + String partitionClass = reader.getAttributeValue(null, "class"); + String partitionColumn = reader.getAttributeValue(null, "column"); + if (partitionColumn != null) { + partition = attributePartitions.get(partitionColumn); + } else { + partition = graphPartitions.get(partitionClass); + } + } else if ("color".equalsIgnoreCase(name) && partition != null) { + Color color = new Color(Integer.parseInt(reader.getAttributeValue(null, "rgba")), true); + String keyStr = reader.getAttributeValue(null, "for"); + Object key = AttributeUtils.parse(keyStr, partition.getValueType()); + partition.colorMap.put(key, color); + } + } else if (eventType.equals(XMLStreamReader.END_ELEMENT)) { + if ("partitions".equalsIgnoreCase(reader.getLocalName())) { + end = true; + } else if ("partition".equalsIgnoreCase(reader.getLocalName())) { + partition = null; + } + } + } + } +} diff --git a/modules/AppearanceAPI/src/main/java/org/gephi/appearance/AttributeFunctionImpl.java b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/AttributeFunctionImpl.java new file mode 100644 index 0000000000..b0adb02511 --- /dev/null +++ b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/AttributeFunctionImpl.java @@ -0,0 +1,66 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +package org.gephi.appearance; + +import org.gephi.appearance.api.AttributeFunction; +import org.gephi.appearance.api.Interpolator; +import org.gephi.appearance.api.Partition; +import org.gephi.appearance.api.PartitionFunction; +import org.gephi.appearance.api.Ranking; +import org.gephi.appearance.api.RankingFunction; +import org.gephi.appearance.spi.Transformer; +import org.gephi.appearance.spi.TransformerUI; +import org.gephi.graph.api.Column; + +/** + * @author mbastian + */ +public class AttributeFunctionImpl extends FunctionImpl + implements RankingFunction, PartitionFunction, AttributeFunction { + + public AttributeFunctionImpl(AppearanceModelImpl model, String name, Column column, Transformer transformer, + TransformerUI transformerUI, RankingImpl ranking) { + super(model, name, column.getTable().getElementClass(), column, transformer, + transformerUI, null, ranking); + } + + public AttributeFunctionImpl(AppearanceModelImpl model, String name, Column column, Transformer transformer, + TransformerUI transformerUI, PartitionImpl partition) { + super(model, name, column.getTable().getElementClass(), column, transformer, + transformerUI, partition, null); + } + + @Override + public Interpolator getInterpolator() { + return ranking.getInterpolator(); + } + + @Override + public void setInterpolator(Interpolator interpolator) { + ranking.setInterpolator(interpolator); + } + + @Override + public Column getColumn() { + return column; + } + + @Override + public Partition getPartition() { + return partition; + } + + @Override + public Ranking getRanking() { + return ranking; + } + + @Override + public String toString() { + return column.getTitle(); + } +} diff --git a/modules/AppearanceAPI/src/main/java/org/gephi/appearance/AttributePartitionImpl.java b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/AttributePartitionImpl.java new file mode 100644 index 0000000000..5934f27bb7 --- /dev/null +++ b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/AttributePartitionImpl.java @@ -0,0 +1,145 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance; + +import java.lang.ref.WeakReference; +import java.util.Collection; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Element; +import org.gephi.graph.api.Graph; +import org.gephi.graph.api.Index; + +/** + * @author mbastian + */ +public class AttributePartitionImpl extends PartitionImpl { + + protected final WeakReference column; + + public AttributePartitionImpl(Column column) { + super(); + this.column = new WeakReference<>(column); + } + + @Override + public Object getValue(Element element, Graph graph) { + return element.getAttribute(column.get(), graph.getView()); + } + + private Index getIndex(Graph graph) { + return graph.getModel().getElementIndex(column.get().getTable(), graph.getView()); + } + + @Override + public Collection getValues(Graph graph) { + return getIndex(graph).values(column.get()); + } + + @Override + public int getElementCount(Graph graph) { + return getIndex(graph).countElements(column.get()); + } + + @Override + public int count(Object value, Graph graph) { + return getIndex(graph).count(column.get(), value); + } + + @Override + public float percentage(Object value, Graph graph) { + Index index = getIndex(graph); + int count = index.count(column.get(), value); + return 100f * ((float) count / index.countElements(column.get())); + } + + @Override + public int size(Graph graph) { + return getIndex(graph).countValues(column.get()); + } + + @Override + public Column getColumn() { + return column.get(); + } + + @Override + public Class getValueType() { + return getColumn().getTypeClass(); + } + + @Override + public boolean isValid(Graph graph) { + Column col = column.get(); + if (col != null && col.getIndex() != -1) { + return true; + } + return false; + } + + @Override + public int getVersion(Graph graph) { + if (isValid(graph)) { + return getIndex(graph).getColumnIndex(column.get()).getVersion(); + } + return 0; + } + + @Override + public int hashCode() { + int hash = 3; + hash = 23 * hash + (this.column != null ? this.column.hashCode() : 0); + return hash; + } + + @Override + public boolean equals(Object obj) { + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final AttributePartitionImpl other = (AttributePartitionImpl) obj; + return this.column == other.column || (this.column != null && this.column.equals(other.column)); + } +} diff --git a/modules/AppearanceAPI/src/main/java/org/gephi/appearance/AttributeRankingImpl.java b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/AttributeRankingImpl.java new file mode 100644 index 0000000000..e977bb3a0e --- /dev/null +++ b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/AttributeRankingImpl.java @@ -0,0 +1,115 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance; + +import java.lang.ref.WeakReference; +import java.util.Objects; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Element; +import org.gephi.graph.api.Graph; +import org.gephi.graph.api.Index; + +/** + * @author mbastian + */ +public class AttributeRankingImpl extends RankingImpl { + + protected final WeakReference column; + + public AttributeRankingImpl(Column column) { + super(); + this.column = new WeakReference<>(column); + } + + @Override + public Number getMinValue(Graph graph) { + return getIndex(graph).getMinValue(column.get()); + } + + @Override + public Number getMaxValue(Graph graph) { + return getIndex(graph).getMaxValue(column.get()); + } + + private Index getIndex(Graph graph) { + return graph.getModel().getElementIndex(column.get().getTable(), graph.getView()); + } + + @Override + public Number getValue(Element element, Graph graph) { + return (Number) element.getAttribute(column.get(), graph.getView()); + } + + @Override + public boolean isValid(Graph graph) { + Column col = column.get(); + if (col != null && col.getIndex() != -1) { + return col.isNumber() && !col.isArray(); + } + return false; + } + + @Override + public int hashCode() { + int hash = 3; + hash = 67 * hash + (this.column != null ? this.column.hashCode() : 0); + return hash; + } + + @Override + public boolean equals(Object obj) { + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final AttributeRankingImpl other = (AttributeRankingImpl) obj; + return Objects.equals(this.column, other.column); + } + + @Override + public Column getColumn() { + return column.get(); + } +} diff --git a/modules/AppearanceAPI/src/main/java/org/gephi/appearance/DegreeRankingImpl.java b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/DegreeRankingImpl.java new file mode 100644 index 0000000000..df3aa188ee --- /dev/null +++ b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/DegreeRankingImpl.java @@ -0,0 +1,88 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance; + +import java.lang.ref.WeakReference; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.DirectedGraph; +import org.gephi.graph.api.Element; +import org.gephi.graph.api.Graph; +import org.gephi.graph.api.Index; +import org.gephi.graph.api.Node; + +/** + * @author mbastian + */ +public class DegreeRankingImpl extends RankingImpl { + + protected final Column column; + + public DegreeRankingImpl(Column degreeColumn) { + super(); + this.column = degreeColumn; + } + + @Override + public Number getValue(Element element, Graph gr) { + return gr.getDegree((Node) element); + } + + @Override + public Number getMinValue(Graph graph) { + return getIndex(graph).getMinValue(column); + } + + @Override + public Number getMaxValue(Graph graph) { + return getIndex(graph).getMaxValue(column); + } + + private Index getIndex(Graph graph) { + return graph.getModel().getNodeIndex(graph.getView()); + } + + @Override + public boolean isValid(Graph graph) { + return true; + } +} diff --git a/modules/AppearanceAPI/src/main/java/org/gephi/appearance/EdgeTypePartitionImpl.java b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/EdgeTypePartitionImpl.java new file mode 100644 index 0000000000..3ed32a75e6 --- /dev/null +++ b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/EdgeTypePartitionImpl.java @@ -0,0 +1,129 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance; + +import java.util.Arrays; +import java.util.Collection; +import java.util.stream.Collectors; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Edge; +import org.gephi.graph.api.Element; +import org.gephi.graph.api.Graph; +import org.gephi.graph.api.Index; + +/** + * @author mbastian + */ +public class EdgeTypePartitionImpl extends PartitionImpl { + + private final Class valueType; + private final Column column; + + public EdgeTypePartitionImpl(Column column, Class valueType) { + super(); + this.valueType = valueType; + this.column = column; + } + + @Override + public Collection getValues(Graph graph) { + int[] types = graph.getModel().getEdgeTypes(); + return Arrays.stream(types).filter(t -> graph.getEdgeCount(t) > 0) + .mapToObj(t -> graph.getModel().getEdgeTypeLabel(t)).collect( + Collectors.toList()); + } + + @Override + public Object getValue(Element element, Graph gr) { + return ((Edge) element).getTypeLabel(); + } + + @Override + public int getElementCount(Graph graph) { + return graph.getEdgeCount(); + } + + @Override + public int count(Object value, Graph graph) { + return getIndex(graph).count(column, value); + } + + @Override + public float percentage(Object value, Graph graph) { + Index index = getIndex(graph); + int count = index.count(column, value); + return 100f * ((float) count / index.countElements(column)); + } + + @Override + public int size(Graph graph) { + return getIndex(graph).countValues(column); + } + + private Index getIndex(Graph graph) { + return graph.getModel().getEdgeIndex(graph.getView()); + } + + @Override + public Column getColumn() { + return column; + } + + @Override + public Class getValueType() { + return valueType; + } + + @Override + public boolean isValid(Graph graph) { + return graph.getModel().isMultiGraph(); + } + + @Override + public int getVersion(Graph graph) { + if (isValid(graph)) { + return getIndex(graph).getColumnIndex(column).getVersion(); + } + return 0; + } +} diff --git a/modules/AppearanceAPI/src/main/java/org/gephi/appearance/EdgeWeightRankingImpl.java b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/EdgeWeightRankingImpl.java new file mode 100644 index 0000000000..db8d8c9fa0 --- /dev/null +++ b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/EdgeWeightRankingImpl.java @@ -0,0 +1,87 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance; + +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Edge; +import org.gephi.graph.api.Element; +import org.gephi.graph.api.Graph; +import org.gephi.graph.api.Index; + +/** + * @author mbastian + */ +public class EdgeWeightRankingImpl extends RankingImpl { + + public EdgeWeightRankingImpl() { + super(); + } + + @Override + public Number getValue(Element element, Graph graph) { + return ((Edge) element).getWeight(graph.getView()); + } + + @Override + public Number getMinValue(Graph graph) { + return getIndex(graph).getMinValue(getColumn(graph)); + } + + @Override + public Number getMaxValue(Graph graph) { + return getIndex(graph).getMaxValue(getColumn(graph)); + } + + private Index getIndex(Graph graph) { + return graph.getModel().getElementIndex(graph.getModel().getEdgeTable(), graph.getView()); + } + + private Column getColumn(Graph graph) { + return graph.getModel().getEdgeTable().getColumn("weight"); + } + + @Override + public boolean isValid(Graph graph) { + return true; + } +} diff --git a/modules/AppearanceAPI/src/main/java/org/gephi/appearance/FunctionImpl.java b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/FunctionImpl.java new file mode 100644 index 0000000000..98cbabd1ea --- /dev/null +++ b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/FunctionImpl.java @@ -0,0 +1,272 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance; + +import java.lang.ref.WeakReference; +import java.util.Objects; +import java.util.concurrent.atomic.AtomicInteger; +import org.gephi.appearance.api.Function; +import org.gephi.appearance.spi.PartitionTransformer; +import org.gephi.appearance.spi.RankingTransformer; +import org.gephi.appearance.spi.SimpleTransformer; +import org.gephi.appearance.spi.Transformer; +import org.gephi.appearance.spi.TransformerUI; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Element; +import org.gephi.graph.api.Graph; + +/** + * @author mbastian + */ +public abstract class FunctionImpl implements Function { + + protected final AppearanceModelImpl model; + protected final Class elementClass; + protected final String name; + protected final Column column; + protected final Transformer transformer; + protected final TransformerUI transformerUI; + protected final PartitionImpl partition; + protected final RankingImpl ranking; + protected final AtomicInteger version; + // Version + protected WeakReference lastGraph; + protected boolean lastTransformNullValues; + + protected FunctionImpl(AppearanceModelImpl model, String name, Class elementClass, Column column, + Transformer transformer, TransformerUI transformerUI, PartitionImpl partition, + RankingImpl ranking) { + if (name == null) { + throw new NullPointerException("The name can't be null"); + } + this.model = model; + this.name = name; + this.elementClass = elementClass; + this.column = column; + try { + this.transformer = transformer.getClass().newInstance(); + } catch (Exception ex) { + throw new RuntimeException(ex); + } + this.transformerUI = transformerUI; + this.partition = partition; + this.ranking = ranking; + this.version = + new AtomicInteger(partition != null ? partition.getVersion(model.getPartitionGraph()) : Integer.MIN_VALUE); + this.lastGraph = partition != null ? new WeakReference<>(model.getPartitionGraph()) : null; + this.lastTransformNullValues = model.isTransformNullValues(); + } + + @Override + public void transform(Element element) { + Graph graph = getGraph(); + if (isSimple()) { + ((SimpleTransformer) transformer).transform(element); + } else if (isRanking()) { + transformRanking(element, graph, ranking.getMinValue(graph), ranking.getMaxValue(graph)); + } else if (isPartition()) { + transformPartition(element, graph); + } + } + + @Override + public void transformAll(Iterable elementIterable) { + Graph graph = getGraph(); + if (!graph.getView().isDestroyed()) { + if (isSimple()) { + elementIterable.forEach(((SimpleTransformer) transformer)::transform); + } else if (isRanking()) { + final Number minValue = ranking.getMinValue(graph); + final Number maxValue = ranking.getMaxValue(graph); + elementIterable.forEach(e -> transformRanking(e, graph, minValue, maxValue)); + } else if (isPartition()) { + elementIterable.forEach(e -> transformPartition(e, graph)); + } + } + } + + private void transformPartition(Element element, Graph graph) { + Object val = partition.getValue(element, graph); + if (val != null || model.isTransformNullValues()) { + ((PartitionTransformer) transformer).transform(element, partition, val); + } + } + + private void transformRanking(Element element, Graph graph, Number minValue, Number maxValue) { + // Always use visible graph to get the value (see #2629) + Number val = ranking.getValue(element, graph.getModel().getGraphVisible()); + if (val != null) { + float normalizedValue = ranking.normalize(val, ranking.getInterpolator(), minValue, maxValue); + ((RankingTransformer) transformer).transform(element, ranking, val, normalizedValue); + } else if (model.isTransformNullValues()) { + ((RankingTransformer) transformer).transform(element, ranking, null, 0f); + } + } + + public boolean hasChanged() { + if (isPartition()) { + Graph graph = model.getPartitionGraph(); + + // Check if view has changed + boolean viewChanged = false; + synchronized (this) { + if (lastGraph == null) { + lastGraph = new WeakReference<>(graph); + } else { + Graph lg = lastGraph.get(); + lastGraph = null; + if (lg == null || lg != graph) { + viewChanged = true; + lastGraph = new WeakReference<>(graph); + } + } + + // Check if transformNullValues was changed + if (lastTransformNullValues != model.isTransformNullValues()) { + viewChanged = true; + } + lastTransformNullValues = model.isTransformNullValues(); + } + + int newVersion = partition.getVersion(graph); + return version.getAndSet(newVersion) != newVersion || viewChanged; + } + return false; + } + + @Override + public boolean isValid() { + Graph graph = getGraph(); + if (graph.getView().isDestroyed()) { + return false; + } + if (isRanking()) { + return ranking.isValid(graph); + } else if (isPartition()) { + return partition.isValid(graph); + } + return true; + } + + @Override + public Graph getGraph() { + if (isRanking()) { + return model.getRankingGraph(); + } else if (isPartition()) { + return model.getPartitionGraph(); + } + return model.getGraphModel().getGraph(); + } + + @Override + public Transformer getTransformer() { + return transformer; + } + + @Override + public TransformerUI getUI() { + return transformerUI; + } + + @Override + public boolean isSimple() { + return ranking == null && partition == null; + } + + @Override + public boolean isAttribute() { + return column != null; + } + + @Override + public boolean isPartition() { + return partition != null; + } + + @Override + public boolean isRanking() { + return ranking != null; + } + + @Override + public Class getElementClass() { + return elementClass; + } + + @Override + public AppearanceModelImpl getModel() { + return model; + } + + @Override + public String toString() { + return name; + } + + @Override + public String getId() { + return name; + } + + @Override + public int hashCode() { + int hash = 5; + hash = 97 * hash + (this.name != null ? this.name.hashCode() : 0); + return hash; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final FunctionImpl other = (FunctionImpl) obj; + return Objects.equals(this.name, other.name); + } +} diff --git a/modules/AppearanceAPI/src/main/java/org/gephi/appearance/GraphFunctionImpl.java b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/GraphFunctionImpl.java new file mode 100644 index 0000000000..411c3aa72d --- /dev/null +++ b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/GraphFunctionImpl.java @@ -0,0 +1,71 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +package org.gephi.appearance; + +import org.gephi.appearance.api.AppearanceModel; +import org.gephi.appearance.api.GraphFunction; +import org.gephi.appearance.api.Interpolator; +import org.gephi.appearance.api.PartitionFunction; +import org.gephi.appearance.api.RankingFunction; +import org.gephi.appearance.spi.Transformer; +import org.gephi.appearance.spi.TransformerUI; +import org.gephi.graph.api.Element; + +/** + * @author mbastian + */ +public class GraphFunctionImpl extends FunctionImpl implements GraphFunction, RankingFunction, PartitionFunction { + + private final String displayName; + private final AppearanceModel.GraphFunction graphFunction; + + public GraphFunctionImpl(AppearanceModelImpl model, AppearanceModel.GraphFunction graphFunction, String name, + String displayName, Class elementClass, + Transformer transformer, TransformerUI transformerUI, RankingImpl ranking) { + super(model, name, elementClass, null, transformer, transformerUI, null, ranking); + this.displayName = displayName; + this.graphFunction = graphFunction; + } + + public GraphFunctionImpl(AppearanceModelImpl model, AppearanceModel.GraphFunction graphFunction, String name, + String displayName, Class elementClass, + Transformer transformer, TransformerUI transformerUI, PartitionImpl partition) { + super(model, name, elementClass, null, transformer, transformerUI, partition, null); + this.displayName = displayName; + this.graphFunction = graphFunction; + } + + @Override + public AppearanceModel.GraphFunction getGraphFunction() { + return graphFunction; + } + + @Override + public Interpolator getInterpolator() { + return ranking.getInterpolator(); + } + + @Override + public void setInterpolator(Interpolator interpolator) { + ranking.setInterpolator(interpolator); + } + + @Override + public PartitionImpl getPartition() { + return partition; + } + + @Override + public RankingImpl getRanking() { + return ranking; + } + + @Override + public String toString() { + return displayName; + } +} diff --git a/modules/AppearanceAPI/src/main/java/org/gephi/appearance/InDegreeRankingImpl.java b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/InDegreeRankingImpl.java new file mode 100644 index 0000000000..ac52210b06 --- /dev/null +++ b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/InDegreeRankingImpl.java @@ -0,0 +1,69 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance; + +import org.gephi.graph.api.Column; +import org.gephi.graph.api.DirectedGraph; +import org.gephi.graph.api.Element; +import org.gephi.graph.api.Graph; +import org.gephi.graph.api.Node; + +/** + * @author mbastian + */ +public class InDegreeRankingImpl extends DegreeRankingImpl { + + public InDegreeRankingImpl(Column degreeColumn) { + super(degreeColumn); + } + + @Override + public Number getValue(Element element, Graph gr) { + return ((DirectedGraph) gr).getInDegree((Node) element); + } + + @Override + public boolean isValid(Graph graph) { + return graph.isDirected(); + } +} diff --git a/modules/AppearanceAPI/src/main/java/org/gephi/appearance/OutDegreeRankingImpl.java b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/OutDegreeRankingImpl.java new file mode 100644 index 0000000000..f42391feaf --- /dev/null +++ b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/OutDegreeRankingImpl.java @@ -0,0 +1,69 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance; + +import org.gephi.graph.api.Column; +import org.gephi.graph.api.DirectedGraph; +import org.gephi.graph.api.Element; +import org.gephi.graph.api.Graph; +import org.gephi.graph.api.Node; + +/** + * @author mbastian + */ +public class OutDegreeRankingImpl extends DegreeRankingImpl { + + public OutDegreeRankingImpl(Column degreeColumn) { + super(degreeColumn); + } + + @Override + public Number getValue(Element element, Graph gr) { + return ((DirectedGraph) gr).getOutDegree((Node) element); + } + + @Override + public boolean isValid(Graph graph) { + return graph.isDirected(); + } +} diff --git a/modules/AppearanceAPI/src/main/java/org/gephi/appearance/PartitionImpl.java b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/PartitionImpl.java new file mode 100644 index 0000000000..0d203e03e7 --- /dev/null +++ b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/PartitionImpl.java @@ -0,0 +1,105 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance; + +import java.awt.Color; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import org.gephi.appearance.api.Partition; +import org.gephi.graph.api.Graph; + +/** + * @author mbastian + */ +public abstract class PartitionImpl implements Partition { + + protected final Map colorMap; + + protected PartitionImpl() { + this.colorMap = new HashMap<>(); + } + + @Override + public Color getColor(Object value) { + return colorMap.getOrDefault(value, Partition.DEFAULT_COLOR); + } + + @Override + public void setColor(Object value, Color color) { + if (color.equals(Partition.DEFAULT_COLOR)) { + colorMap.remove(value); + } else { + colorMap.put(value, color); + } + } + + @Override + public void setColors(Graph graph, Color[] colors) { + Collection sortedValues = getSortedValues(graph); + Iterator itr = sortedValues.iterator(); + for (int i = 0; i < colors.length && itr.hasNext(); i++) { + setColor(itr.next(), colors[i]); + } + } + + @Override + public Collection getSortedValues(Graph graph) { + List values = new ArrayList(getValues(graph)); + values.sort((o1, o2) -> { + int c1 = count(o1, graph); + int c2 = count(o2, graph); + return Integer.compare(c2, c1); + }); + return values; + } + + public abstract boolean isValid(Graph graph); + + public abstract Class getValueType(); + + public abstract int getVersion(Graph graph); +} diff --git a/modules/AppearanceAPI/src/main/java/org/gephi/appearance/RankingImpl.java b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/RankingImpl.java new file mode 100644 index 0000000000..02fea781c1 --- /dev/null +++ b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/RankingImpl.java @@ -0,0 +1,92 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance; + +import org.gephi.appearance.api.Interpolator; +import org.gephi.appearance.api.Ranking; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Element; +import org.gephi.graph.api.Graph; +import org.openide.util.NbPreferences; + +/** + * @author mbastian + */ +public abstract class RankingImpl implements Ranking { + + static final String PREF_DEFAULT_INTERPOLATOR = "Appearance.defaultInterpolator"; + + protected Interpolator interpolator = Interpolator.fromString( + NbPreferences.forModule(Interpolator.class).get(PREF_DEFAULT_INTERPOLATOR, null)); + + public Interpolator getInterpolator() { + return interpolator; + } + + public void setInterpolator(Interpolator interpolator) { + this.interpolator = interpolator; + } + + @Override + public float getNormalizedValue(Element element, Graph graph) { + return normalize(getValue(element, graph), interpolator, getMinValue(graph), getMaxValue(graph)); + } + + @Override + public float normalize(Number value, Interpolator interpolator, Number minValue, Number maxValue) { + if (minValue.equals(maxValue)) { + return 1f; + } + float normalizedValue = + (float) (value.doubleValue() - minValue.doubleValue()) / + (float) (maxValue.doubleValue() - minValue.doubleValue()); + return interpolator.interpolate(normalizedValue); + } + + public abstract boolean isValid(Graph graph); + + @Override + public Column getColumn() { + return null; + } +} diff --git a/modules/AppearanceAPI/src/main/java/org/gephi/appearance/SimpleFunctionImpl.java b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/SimpleFunctionImpl.java new file mode 100644 index 0000000000..9499b0af73 --- /dev/null +++ b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/SimpleFunctionImpl.java @@ -0,0 +1,24 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +package org.gephi.appearance; + +import org.gephi.appearance.api.SimpleFunction; +import org.gephi.appearance.spi.Transformer; +import org.gephi.appearance.spi.TransformerUI; +import org.gephi.graph.api.Element; + +/** + * @author mbastian + */ +public class SimpleFunctionImpl extends FunctionImpl implements SimpleFunction { + + public SimpleFunctionImpl(AppearanceModelImpl model, String name, Class elementClass, + Transformer transformer, + TransformerUI transformerUI) { + super(model, name, elementClass, null, transformer, transformerUI, null, null); + } +} diff --git a/modules/AppearanceAPI/src/main/java/org/gephi/appearance/TimesetRankingImpl.java b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/TimesetRankingImpl.java new file mode 100644 index 0000000000..77281dc4d8 --- /dev/null +++ b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/TimesetRankingImpl.java @@ -0,0 +1,52 @@ +package org.gephi.appearance; + +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Element; +import org.gephi.graph.api.Graph; +import org.gephi.graph.api.TimeIndex; +import org.gephi.graph.api.types.TimeSet; + +public class TimesetRankingImpl extends AttributeRankingImpl { + + public TimesetRankingImpl(Column column) { + super(column); + } + + @Override + public Number getValue(Element element, Graph graph) { + TimeSet timeSet = (TimeSet) element.getAttribute(column.get(), graph.getView()); + if (timeSet != null) { + // TODO Make this configurable via Estimator + return timeSet.getMinDouble(); + } + return null; + } + + @Override + public Number getMinValue(Graph graph) { + return getIndex(graph).getMinTimestamp(); + } + + @Override + public Number getMaxValue(Graph graph) { + return getIndex(graph).getMaxTimestamp(); + } + + private TimeIndex getIndex(Graph graph) { + if (this.column.get().getTable().isNodeTable()) { + return graph.getModel().getNodeTimeIndex(graph.getView()); + } else { + return graph.getModel().getEdgeTimeIndex(graph.getView()); + } + } + + @Override + public boolean isValid(Graph graph) { + if (column.get() != null) { + TimeIndex timeIndex = getIndex(graph); + return timeIndex.getMinTimestamp() != Double.NEGATIVE_INFINITY && + timeIndex.getMaxTimestamp() != Double.POSITIVE_INFINITY; + } + return false; + } +} \ No newline at end of file diff --git a/modules/AppearanceAPI/src/main/java/org/gephi/appearance/api/AppearanceController.java b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/api/AppearanceController.java new file mode 100644 index 0000000000..57b48133e5 --- /dev/null +++ b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/api/AppearanceController.java @@ -0,0 +1,116 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance.api; + +import org.gephi.appearance.spi.Transformer; +import org.gephi.appearance.spi.TransformerUI; +import org.gephi.project.api.Workspace; + +/** + * Manage and controls the appearance of elements through visual + * transformations. + *

+ * This controller is a singleton and can therefore be found in Lookup: + *

AppearanceController ac = Lookup.getDefault().lookup(AppearanceController.class);
+ */ +public interface AppearanceController { + + /** + * Sets whether rankings use a local or a global scale. When calculating the + * minimum and maximum value (i.e. the scale) rankings can use the complete + * graph or only the currently visible graph. When using the visible graph + * it is called the local scale. + * + * @param useLocalScale true for local, false for + * global + */ + void setUseRankingLocalScale(boolean useLocalScale); + + /** + * Sets whether partitions use a local or a global scale. When calculating the + * partitions it can use the complete graph or only the currently visible graph. When using the visible graph + * it is called the local scale. + * + * @param useLocalScale true for local, false for + * global + */ + void setUsePartitionLocalScale(boolean useLocalScale); + + /** + * Sets whether elements with null values are also transformed. Default value is false/ + * + * @param transformNullValues true to transform also null values, false to ignore + */ + void setTransformNullValues(boolean transformNullValues); + + /** + * Apply the function's transformer. If the function is for nodes all nodes + * in the visible graph will be transformed. Similarly for edges. + * + * @param function function to transform + */ + void transform(Function function); + + /** + * Returns the appearance model for the current workspace. + * + * @return appearance model + */ + AppearanceModel getModel(); + + /** + * Returns the appearance model for the given workspace. + * + * @param workspace workspace + * @return appearance model + */ + AppearanceModel getModel(Workspace workspace); + + /** + * Returns the transformer associated with the given transformer UI. + * + * @param ui user interface instance + * @return transformer instance or null if not found + */ + Transformer getTransformer(TransformerUI ui); +} diff --git a/modules/AppearanceAPI/src/main/java/org/gephi/appearance/api/AppearanceModel.java b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/api/AppearanceModel.java new file mode 100644 index 0000000000..18a0ac1d66 --- /dev/null +++ b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/api/AppearanceModel.java @@ -0,0 +1,169 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance.api; + +import org.gephi.appearance.spi.Transformer; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.GraphModel; +import org.gephi.project.api.Workspace; + +/** + * Entry point to access the appearance functions. + *

+ * One model exists for each workspace. + */ +public interface AppearanceModel { + + /** + * Return the workspace this model is associated with + * + * @return the workspace of this model + */ + Workspace getWorkspace(); + + /** + * Returns true if rankings are using the currently visible + * graph as a scale. If false the complete graph is used to + * determine minimum and maximum values. + * + * @return true if using a local scale, false if + * global scale + */ + boolean isRankingLocalScale(); + + /** + * Returns true if partitions are using the currently visible + * graph as a source. If false the complete graph is used to + * determine partitions. + * + * @return true if using a local scale, false if + * global scale + */ + boolean isPartitionLocalScale(); + + /** + * Returns true if null values are considered in functions. If false elements with null + * values will be transformed as well. Default value is false. + *

+ * When using a ranking function, null values will receive the lowest normalised value. + * + * @return true if null values are transformed, false otherwise + */ + boolean isTransformNullValues(); + + /** + * Returns the node partition for thid column. + * + * @param column column + * @return node partition of null if it doesn't exist + */ + Partition getNodePartition(Column column); + + /** + * Returns the edge partition for this column. + * + * @param column column + * @return edge partition of null if it doesn't exist + */ + Partition getEdgePartition(Column column); + + /** + * Returns all node functions for the given graph. + * + * @return all node functions + */ + Function[] getNodeFunctions(); + + /** + * Returns the node function for the given column and transformer. + * + * @param column column + * @param transformer transformer + * @return node function or null if not found + */ + Function getNodeFunction(Column column, Class transformer); + + /** + * Returns the edge function for the given column and transformer. + * + * @param column column + * @param transformer transformer + * @return edge function or null if not found + */ + Function getEdgeFunction(Column column, Class transformer); + + /** + * Returns all edge functions for the given graph. + * + * @return all edge functions + */ + Function[] getEdgeFunctions(); + + /** + * Returns the graph model this model is associated with. + * + * @return the graph model + */ + GraphModel getGraphModel(); + + /** + * Identifies the non-column-based functions. + */ + enum GraphFunction { + NODE_DEGREE("degree"), + NODE_INDEGREE("indegree"), + NODE_OUTDEGREE("outdegree"), + EDGE_WEIGHT("weight"), + EDGE_TYPE("type"); + + private final String id; + + GraphFunction(String id) { + this.id = id; + } + + public String getId() { + return id; + } + } +} diff --git a/modules/AppearanceAPI/src/main/java/org/gephi/appearance/api/AttributeFunction.java b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/api/AttributeFunction.java new file mode 100644 index 0000000000..0934afb135 --- /dev/null +++ b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/api/AttributeFunction.java @@ -0,0 +1,58 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance.api; + +import org.gephi.graph.api.Column; + +/** + * Attribute functions are based on attribute columns. + */ +public interface AttributeFunction extends Function { + + /** + * Returns the column this function finds its value from. + * + * @return column + */ + Column getColumn(); +} diff --git a/modules/AppearanceAPI/src/main/java/org/gephi/appearance/api/Function.java b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/api/Function.java new file mode 100644 index 0000000000..df048b17a2 --- /dev/null +++ b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/api/Function.java @@ -0,0 +1,166 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance.api; + +import org.gephi.appearance.spi.Transformer; +import org.gephi.appearance.spi.TransformerUI; +import org.gephi.graph.api.Element; +import org.gephi.graph.api.Graph; + +/** + * Functions represent the various transformations that can be applied to the + * graph elements. Each function is specific to an element class (i.e. nodes or + * edges), to a specific transformer and to a specific source (e.g. a ranking or + * a partition). + *

+ * This interface has sub-interfaces specific to the type of function. + */ +public interface Function { + + /** + * Transforms the given element. + * + * @param element element to transform + */ + void transform(Element element); + + /** + * Transforms all the given elements. + * + * @param elementIterable element iterable to tranform + */ + void transformAll(Iterable elementIterable); + + /** + * Returns the transformer associated with this function. + * + * @param transformer class + * @return transformer + */ + T getTransformer(); + + /** + * Returns the transformer user interface associated with this function. + * + * @return transformer UI or null if not found + */ + TransformerUI getUI(); + + /** + * Returns true if this function is a simple function. + *

+ * If true, this instance can be casted to SimpleFunction. + * + * @return true if partition, false otherwise + */ + boolean isSimple(); + + /** + * Returns true if this function is based on attribute column. + *

+ * If true, this instance can be casted to AttributeFunction. + * + * @return true if attribute, false otherwise + */ + boolean isAttribute(); + + /** + * Returns true if this function is a ranking function. + *

+ * If true, this instance can be casted to RankingFunction. + * + * @return true if ranking, false otherwise + */ + boolean isRanking(); + + /** + * Returns true if this function is a partition function. + *

+ * If true, this instance can be casted to PartitionFunction. + * + * @return true if partition, false otherwise + */ + boolean isPartition(); + + /** + * Returns the element class this function will be applied to. + * + * @return element class + */ + Class getElementClass(); + + /** + * Returns the graph this function is being applied on. + * + * @return graph + */ + Graph getGraph(); + + /** + * Returns the model this function belongs to. + * + * @return model + */ + AppearanceModel getModel(); + + /** + * Returns true if the underlying partition or ranking changed its boundaries or values since last time checked. + * + * @return true if changed, false otherwise + */ + boolean hasChanged(); + + /** + * Returns the function's unique identifier. + * + * @return function id + */ + String getId(); + + /** + * Returns true if the function is valid. A function may not be valid if the underlying column has been removed for instance. + * + * @return true if valid, false otherwise + */ + boolean isValid(); +} diff --git a/modules/AppearanceAPI/src/main/java/org/gephi/appearance/api/GraphFunction.java b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/api/GraphFunction.java new file mode 100644 index 0000000000..1ad32fb47d --- /dev/null +++ b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/api/GraphFunction.java @@ -0,0 +1,53 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance.api; + +/** + * A graph function operates based on graph attributes such as edge type or node + * degree. These values are different from AttributeFunction as + * they change when the graph topology change. + */ +public interface GraphFunction extends Function { + + public AppearanceModel.GraphFunction getGraphFunction(); +} diff --git a/modules/RankingAPI/src/main/java/org/gephi/ranking/api/Interpolator.java b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/api/Interpolator.java similarity index 79% rename from modules/RankingAPI/src/main/java/org/gephi/ranking/api/Interpolator.java rename to modules/AppearanceAPI/src/main/java/org/gephi/appearance/api/Interpolator.java index 28948a1184..40d7dd337e 100644 --- a/modules/RankingAPI/src/main/java/org/gephi/ranking/api/Interpolator.java +++ b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/api/Interpolator.java @@ -39,26 +39,32 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ -package org.gephi.ranking.api; + +package org.gephi.appearance.api; + +import java.awt.geom.Point2D; +import java.util.Objects; /** - * Abstract clas that defines the single {@link #interpolate(float)} method. - * This abstract class is implemented by built-in interpolators. - * - * @author Mathieu Bastian + * Abstract class that defines the single {@link #interpolate(float)} method. + * This abstract class is implemented by built-in interpolators accessible as + * static classes. */ public abstract class Interpolator { /** - * Linear interpolation - * x = interpolate(x) - * + * Linear interpolation x = interpolate(x) */ public static final Interpolator LINEAR = new Interpolator() { @Override public float interpolate(float x) { return x; } + + @Override + public String toString() { + return "LINEAR"; + } }; /** * Log2 interpolation @@ -69,8 +75,47 @@ public float interpolate(float x) { public float interpolate(float x) { return (float) (Math.log(1 + x) / Math.log(2)); } + + @Override + public String toString() { + return "LOG2"; + } }; + /** + * Deserializes an interpolator from its string representation, as produced + * by {@link #toString()}. + *

+ * Recognized formats: + *

    + *
  • {@code "LINEAR"} β†’ {@link #LINEAR}
  • + *
  • {@code "LOG2"} β†’ {@link #LOG2}
  • + *
  • {@code "BEZIER:x1,y1,x2,y2"} β†’ {@link BezierInterpolator}
  • + *
+ * Returns {@link #LINEAR} for any unrecognized or malformed input. + * + * @param s serialized string, may be null + * @return corresponding interpolator, never null + */ + public static Interpolator fromString(String s) { + if (s == null || s.isEmpty() || "LINEAR".equals(s)) { + return LINEAR; + } + if ("LOG2".equals(s)) { + return LOG2; + } + if (s.startsWith("BEZIER:")) { + try { + String[] parts = s.substring(7).split(","); + return new BezierInterpolator( + Float.parseFloat(parts[0]), Float.parseFloat(parts[1]), + Float.parseFloat(parts[2]), Float.parseFloat(parts[3])); + } catch (Exception ignored) { + } + } + return LINEAR; + } + /** * Builds a bezier interpolator with two control points (px1, py1) and (px2, * py2). The points should all be in range [0, 1]. @@ -107,6 +152,16 @@ public static Interpolator newBezierInterpolator(float px1, float py1, float px2 //Author David C. Browne public static class BezierInterpolator extends Interpolator { + /** + * power of 2 sample size for lookup table of x values + */ + private static final int SAMPLE_SIZE = 16; + /** + * difference in t used to calculate each of the xSamples values -- + * power of 2 sample size should provide exact representation of this + * value and its integer multiples (integer in range of [0..SAMPLE_SIZE] + */ + private static final float SAMPLE_INCREMENT = 1f / SAMPLE_SIZE; /** * the coordinates of the 2 2D control points for a cubic Bezier curve, * with implicit start point (0,0) and end point (1,1) -- each @@ -118,16 +173,6 @@ public static class BezierInterpolator extends Interpolator { * x1 == y1 and x2 == y2 -- if so, then all x(t) == y(t) for the curve */ private final boolean isCurveLinear; - /** - * power of 2 sample size for lookup table of x values - */ - private static final int SAMPLE_SIZE = 16; - /** - * difference in t used to calculate each of the xSamples values -- - * power of 2 sample size should provide exact representation of this - * value and its integer multiples (integer in range of [0..SAMPLE_SIZE] - */ - private static final float SAMPLE_INCREMENT = 1f / SAMPLE_SIZE; /** * x values for the bezier curve, sampled at increments of 1/SAMPLE_SIZE * -- this is used to find the good initial guess for parameter t, given @@ -148,9 +193,13 @@ public static class BezierInterpolator extends Interpolator { public BezierInterpolator(float px1, float py1, float px2, float py2) { // check user input for precondition if (px1 < 0 || px1 > 1 || py1 < 0 || py1 > 1 - || px2 < 0 || px2 > 1 || py2 < 0 || py2 > 1) { + || px2 < 0 || px2 > 1 || py2 < 0 || py2 > 1) { throw new IllegalArgumentException("control point coordinates must " - + "all be in range [0,1]"); + + "all be in range [0,1]"); + } + + if (px1 == 0 && px2 == 0) { + px2 += 0.01;//Fix numerical inestability with some small difference } // save control point data @@ -170,6 +219,14 @@ public BezierInterpolator(float px1, float py1, float px2, float py2) { } } + public Point2D getControl1() { + return new Point2D.Float(x1, y1); + } + + public Point2D getControl2() { + return new Point2D.Float(x2, y2); + } + /** * get the y-value of the cubic bezier curve that corresponds to the x * input @@ -200,10 +257,10 @@ public float interpolate(float x) { * use Bernstein basis to evaluate 1D cubic Bezier curve (quicker and * more numerically stable than power basis) -- 1D control coordinates * are (0, p1, p2, 1), where p1 and p2 are in range [0,1], and there is - * no ordering constraint on p1 and p2, i.e., p1 <= p2 does not have to - * be true @param t is the pa + * no ordering constraint on p1 and p2, i.e., p1 <= p2 does not have to + * be true * - * ramaterized value in range [0,1] + * @param t is the paramaterized value in range [0,1] * @param p1 is 1st control point coordinate in range [0,1] * @param p2 is 2nd control point coordinate in range [0,1] * @return the value of the Bezier curve at parameter t @@ -220,10 +277,10 @@ private float eval(float t, float p1, float p2) { /** * evaluate Bernstein basis derivative of 1D cubic Bezier curve, where * 1D control points are (0, p1, p2, 1), where p1 and p2 are in range - * [0,1], and there is no ordering constraint on p1 and p2, i.e., p1 <= - * p2 does not have to be true @param t is the paramaterized + * [0,1], and there is no ordering constraint on p1 and p2, i.e., p1 <= + * p2 does not have to be true * - * value in range [0,1] + * @param t is the paramaterized value in range [0,1] * @param p1 is 1st control point coordinate in range [0,1] * @param p2 is 2nd control point coordinate in range [0,1] * @return the value of the Bezier curve at parameter t @@ -243,8 +300,7 @@ private float evalDerivative(float t, float p1, float p2) { * x-value sample array that was created on construction * * @param x is x-value of cubic bezier curve, in range [0,1] - * @return a good initial guess for parameter t (in range [0,1]) that - * gives x + * @return a good initial guess for parameter t (in range [0,1]) that gives x */ private float getInitialGuessForT(float x) { // find which places in the array that x would be sandwiched between, @@ -260,7 +316,7 @@ private float getInitialGuessForT(float x) { } else { // linearly interpolate the time value return ((i - 1) + ((x - xSamples[i - 1]) / xRange)) - * SAMPLE_INCREMENT; + * SAMPLE_INCREMENT; } } } @@ -307,5 +363,28 @@ private float findTForX(float x) { return t; } + + @Override + public String toString() { + return String.format("BEZIER:%s,%s,%s,%s", x1, y1, x2, y2); + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (!(o instanceof BezierInterpolator)) { + return false; + } + BezierInterpolator that = (BezierInterpolator) o; + return Float.compare(that.x1, x1) == 0 && Float.compare(that.y1, y1) == 0 && + Float.compare(that.x2, x2) == 0 && Float.compare(that.y2, y2) == 0; + } + + @Override + public int hashCode() { + return Objects.hash(x1, y1, x2, y2); + } } } diff --git a/modules/AppearanceAPI/src/main/java/org/gephi/appearance/api/Partition.java b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/api/Partition.java new file mode 100644 index 0000000000..e33bcb1245 --- /dev/null +++ b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/api/Partition.java @@ -0,0 +1,156 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance.api; + +import java.awt.Color; +import java.util.Collection; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Element; +import org.gephi.graph.api.Graph; + +/** + * Partition configuration for categorical attributes. + *

+ * This interface has access to the underlying index so it can return the + * complete collection of different values, as well as the number of elements + * with this value. + *

+ * Note that null can be a valid value. + *

+ * Colors can be associated with values. + */ +public interface Partition { + + public static Color DEFAULT_COLOR = Color.LIGHT_GRAY; + + /** + * Returns the collection of values this partition represents. Each value + * has at least one element. + * + * @param graph graph this partition applies to + * @return values + */ + Collection getValues(Graph graph); + + /** + * Returns the same collection as {@link #getValues(Graph graph) } but sorted + * descendant in counts. + * + * @param graph graph this partition applies to + * @return sorted values + */ + Collection getSortedValues(Graph graph); + + /** + * Returns the number of elements that have a value in this partition. + * + * @param graph graph this partition applies to + * @return element count + */ + int getElementCount(Graph graph); + + /** + * Returns the number of elements for the given value. + * + * @param value value + * @param graph graph this partition applies to + * @return value count + */ + int count(Object value, Graph graph); + + /** + * Returns the element's value for this partition. + * + * @param element element to get the value for + * @param graph graph this element belongs to + * @return the value for this partition + */ + Object getValue(Element element, Graph graph); + + /** + * Returns the color for the given value. + * + * @param value value to get the color for + * @return color or null if not defined + */ + Color getColor(Object value); + + /** + * Sets the color for the given value. + * + * @param value value to set the color for + * @param color color + */ + void setColor(Object value, Color color); + + /** + * Sets the colors for all values. It uses the descending value count as order from getSortedValues(). + * + * @param graph graph this partition applies to + * @param colors colors to set + */ + void setColors(Graph graph, Color[] colors); + + /** + * Returns the percentage of elements with the given value. + * + * @param value value + * @return percentage, between zero and 100 + */ + float percentage(Object value, Graph graph); + + /** + * Returns the number of values this partition represents. + * + * @param graph this element belongs to + * @return value count + */ + int size(Graph graph); + + /** + * Returns the column associated with this partition. + * + * @return column or null if partition not based on a column + */ + Column getColumn(); +} diff --git a/modules/AppearanceAPI/src/main/java/org/gephi/appearance/api/PartitionFunction.java b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/api/PartitionFunction.java new file mode 100644 index 0000000000..d5279bf860 --- /dev/null +++ b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/api/PartitionFunction.java @@ -0,0 +1,56 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance.api; + +/** + * Partition function. + */ +public interface PartitionFunction extends Function { + + /** + * Returns the partition configuration associated with this function. + * + * @return partition + */ + Partition getPartition(); +} diff --git a/modules/AppearanceAPI/src/main/java/org/gephi/appearance/api/Ranking.java b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/api/Ranking.java new file mode 100644 index 0000000000..48aea97fd2 --- /dev/null +++ b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/api/Ranking.java @@ -0,0 +1,109 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance.api; + +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Element; +import org.gephi.graph.api.Graph; + +/** + * Ranking configuration for numerical attributes. + *

+ * This interface has underlying access to the elements value so it can return + * the minimum and maximum values. + */ +public interface Ranking { + + /** + * Returns the minimum value in this ranking. + * + * @param graph graph to query + * @return minimum value + */ + Number getMinValue(Graph graph); + + /** + * Returns the maximum value in this ranking. + * + * @param graph graph to query + * @return maximum value + */ + Number getMaxValue(Graph graph); + + /** + * Returns the element's value for this ranking. + * + * @param element element to get the value for + * @param graph graph this element belongs to + * @return the value for this ranking + */ + Number getValue(Element element, Graph graph); + + /** + * Returns the element's normalized value for this ranking. + * + * @param element element to get the value for + * @param graph graph this element belongs to + * @return the normalized value for this ranking + */ + float getNormalizedValue(Element element, Graph graph); + + /** + * Normalizes the given value with the interpolator. + *

+ * The value is first put between zero and one by doing (value - min) / (max + * - min) and then passed to the given interpolator. + * + * @param value value to normalize + * @param interpolator interpolator + * @return normalized value + */ + float normalize(Number value, Interpolator interpolator, Number minValue, Number maxValue); + + /** + * Returns the column associated with this partition. + * + * @return column or null if partition not based on a column + */ + Column getColumn(); +} diff --git a/modules/AppearanceAPI/src/main/java/org/gephi/appearance/api/RankingFunction.java b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/api/RankingFunction.java new file mode 100644 index 0000000000..1db4c3b1f1 --- /dev/null +++ b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/api/RankingFunction.java @@ -0,0 +1,73 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance.api; + +/** + * Ranking function. + */ +public interface RankingFunction extends Function { + + /** + * Returns the ranking configuration associated with this function. + * + * @return ranking + */ + Ranking getRanking(); + + /** + * Returns the interpolator. + *

+ * By default, a Interpolator.LINEAR is used so no + * transformation is operated. + * + * @return interpolator + */ + Interpolator getInterpolator(); + + /** + * Sets the interpolator for this function. + * + * @param interpolator interpolator + */ + void setInterpolator(Interpolator interpolator); +} diff --git a/modules/AppearanceAPI/src/main/java/org/gephi/appearance/api/SimpleFunction.java b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/api/SimpleFunction.java new file mode 100644 index 0000000000..99fd8dedf5 --- /dev/null +++ b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/api/SimpleFunction.java @@ -0,0 +1,49 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance.api; + +/** + * Simple functions are neither ranking nor partition. + */ +public interface SimpleFunction extends Function { +} diff --git a/modules/AppearanceAPI/src/main/java/org/gephi/appearance/spi/PartitionTransformer.java b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/spi/PartitionTransformer.java new file mode 100644 index 0000000000..b90ad482fa --- /dev/null +++ b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/spi/PartitionTransformer.java @@ -0,0 +1,65 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance.spi; + +import org.gephi.appearance.api.Partition; +import org.gephi.graph.api.Element; + +/** + * Partition transformer that transforms an element based on a categorical + * partition column. + * + * @param element class + */ +public interface PartitionTransformer extends Transformer { + + /** + * Transforms the given element based on the provided partition + * configuration. + * + * @param element element to transform + * @param partition partition configuration + * @param value element's value for this partition + */ + void transform(E element, Partition partition, Object value); +} diff --git a/modules/AppearanceAPI/src/main/java/org/gephi/appearance/spi/RankingTransformer.java b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/spi/RankingTransformer.java new file mode 100644 index 0000000000..23e7816051 --- /dev/null +++ b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/spi/RankingTransformer.java @@ -0,0 +1,69 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance.spi; + +import org.gephi.appearance.api.Ranking; +import org.gephi.graph.api.Element; + +/** + * Ranking transformer that transforms an element based on a numerical ranking + * column. + * + * @param element class + */ +public interface RankingTransformer extends Transformer { + + /** + * Transforms the given element based on the provided ranking parameters. + *

+ * The ranking object contains the min and max value so the + * ranked value can be calculated. + * + * @param element element to transform + * @param ranking ranking configuration + * @param value element's value for this ranking + * @param normalisedValue normalised value between 0.0 and 1.0 + */ + void transform(E element, Ranking ranking, Number value, float normalisedValue); + +} diff --git a/modules/AppearanceAPI/src/main/java/org/gephi/appearance/spi/SimpleTransformer.java b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/spi/SimpleTransformer.java new file mode 100644 index 0000000000..31ca8850f2 --- /dev/null +++ b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/spi/SimpleTransformer.java @@ -0,0 +1,60 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance.spi; + +import org.gephi.graph.api.Element; + +/** + * Basic transformer that takes only an element to transform it. + * + * @param element class + */ +public interface SimpleTransformer extends Transformer { + + /** + * Transforms the given element. + * + * @param element element to transform + */ + void transform(E element); +} diff --git a/modules/AppearanceAPI/src/main/java/org/gephi/appearance/spi/Transformer.java b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/spi/Transformer.java new file mode 100644 index 0000000000..9054f50a84 --- /dev/null +++ b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/spi/Transformer.java @@ -0,0 +1,69 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance.spi; + +/** + * Transformers role is to transform the appearance of elements based on user + * configuration. Examples of appearance alteration are color, size, label color + * or label size. + *

+ * Transformers can be defined as singleton services by adding the + * @ServiceProvider annotation: + *

@ServiceProvider(service = Transformer.class)
+ */ +public interface Transformer { + + /** + * True is this transformer can be applied to nodes. + * + * @return true if is node, false otherwise + */ + boolean isNode(); + + /** + * True if this transformer can be applied to edges. + * + * @return true if is edge, false otherwise + */ + boolean isEdge(); +} diff --git a/modules/AppearanceAPI/src/main/java/org/gephi/appearance/spi/TransformerCategory.java b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/spi/TransformerCategory.java new file mode 100644 index 0000000000..bbf90d727f --- /dev/null +++ b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/spi/TransformerCategory.java @@ -0,0 +1,79 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance.spi; + +import javax.swing.Icon; + +/** + * Transformer categories are associated with TransformerUI to + * describe what kind of transformation is performed. It is designed to group + * together different transformers. For instance if two transformers both act on + * the size of a node but in a different way they should be grouped together + * with the same category. + *

+ * For persistence purposes, the category should have a unique identifier via {#getId()}. + * @see TransformerUI + */ +public interface TransformerCategory { + + /** + * Returns the transformer category display name. + * + * @return display name + */ + String getDisplayName(); + + /** + * Returns the transformer category icon. + * + * @return icon or null if missing + */ + Icon getIcon(); + + /** + * Returns the category's unique identifier. + * + * @return unique identifier + */ + String getId(); +} diff --git a/modules/AppearanceAPI/src/main/java/org/gephi/appearance/spi/TransformerUI.java b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/spi/TransformerUI.java new file mode 100644 index 0000000000..a9320a442b --- /dev/null +++ b/modules/AppearanceAPI/src/main/java/org/gephi/appearance/spi/TransformerUI.java @@ -0,0 +1,127 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance.spi; + +import javax.swing.AbstractButton; +import javax.swing.Icon; +import javax.swing.JPanel; +import org.gephi.appearance.api.Function; + +/** + * Defines the user interface associated with a transformer. + *

+ * It is a one-to-one relationship as only a single transformer UI can be + * associated with a transformer. + *

+ * Implementations of this class should be singleton services by adding the + * @ServiceProvider annotation: + *

@ServiceProvider(service = TransformerUI.class, position = 2000)
+ * The position parameter is optional but can be used to control the order in + * which the transformers appear in the user interface. The higher the last. + * + * @param transformer class + */ +public interface TransformerUI { + + /** + * Returns the transformer category. + * + * @return transformer category + */ + TransformerCategory getCategory(); + + /** + * Returns the transformer panel for the given function. + * + * @param function function + * @return transformer panel + */ + JPanel getPanel(Function function); + + /** + * Returns the transformer's display name. + * + * @return display name + */ + String getDisplayName(); + + /** + * Returns the transformer's description. + * + * @return description or null if missing + */ + String getDescription(); + + /** + * Returns the transformer's icon. + * + * @return icon or null if missing + */ + Icon getIcon(); + + /** + * Returns the control buttons associated with this transformer. + * + * @return control buttons or null if missing + */ + AbstractButton[] getControlButton(); + + /** + * Returns the transformer class this transformer UI is associated with. + * + * @return transformer class + */ + Class getTransformerClass(); + + /** + * Called after the transformer has been applied to the graph, either via + * the Apply button or auto-apply. + *

+ * Implementations can override this to react to apply events, for example + * to persist UI state that depends on the current function configuration. + * + * @param function function that was applied + */ + default void onApply(Function function) { + } +} diff --git a/modules/AppearanceAPI/src/main/nbm/manifest.mf b/modules/AppearanceAPI/src/main/nbm/manifest.mf new file mode 100644 index 0000000000..662c4370f9 --- /dev/null +++ b/modules/AppearanceAPI/src/main/nbm/manifest.mf @@ -0,0 +1,6 @@ +Manifest-Version: 1.0 +AutoUpdate-Essential-Module: true +OpenIDE-Module-Localizing-Bundle: org/gephi/appearance/Bundle.properties +OpenIDE-Module-Specification-Version: ${gephi.modules.specification.version} +OpenIDE-Module-Display-Category: Gephi Core +OpenIDE-Module-Name: Appearance API diff --git a/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle.properties b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle.properties new file mode 100644 index 0000000000..310672a2c6 --- /dev/null +++ b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle.properties @@ -0,0 +1,7 @@ +OpenIDE-Module-Long-Description = API for the visual appearance of elements +OpenIDE-Module-Short-Description = API for the visual appearance of elements +NodeGraphFunction.Degree.name = Degree +NodeGraphFunction.InDegree.name = In-Degree +NodeGraphFunction.OutDegree.name = Out-Degree +EdgeGraphFunction.Weight.name = Weight +EdgeGraphFunction.Type.name = Type diff --git a/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_ar.properties b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_ar.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_ar.properties @@ -0,0 +1 @@ + diff --git a/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_ca.properties b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_ca.properties new file mode 100644 index 0000000000..610a555802 --- /dev/null +++ b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_ca.properties @@ -0,0 +1,7 @@ +OpenIDE-Module-Long-Description=API for the visual appearance of elements +OpenIDE-Module-Short-Description=API for the visual appearance of elements +NodeGraphFunction.Degree.name=Grau +NodeGraphFunction.InDegree.name=Grau d'entrada +NodeGraphFunction.OutDegree.name=Grau de sortida +EdgeGraphFunction.Weight.name=Pes +EdgeGraphFunction.Type.name=Tipus diff --git a/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_cs.properties b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_cs.properties new file mode 100644 index 0000000000..26355f407f --- /dev/null +++ b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_cs.properties @@ -0,0 +1,7 @@ +OpenIDE-Module-Long-Description = API pro vizuαlnν vzhled prvk\u016f +OpenIDE-Module-Short-Description = API pro vizuαlnν vzhled prvk\u016f +NodeGraphFunction.Degree.name = Stupe\u0148 +NodeGraphFunction.InDegree.name = Stupe\u0148 Dovnit\u0159 +NodeGraphFunction.OutDegree.name = Stupe\u0148 Ven +EdgeGraphFunction.Weight.name = Vαha +EdgeGraphFunction.Type.name = Typ diff --git a/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_de.properties b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_de.properties new file mode 100644 index 0000000000..65155d0f36 --- /dev/null +++ b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_de.properties @@ -0,0 +1,7 @@ +OpenIDE-Module-Long-Description = API fόr die visuelle Ausgestaltung von Elementen +OpenIDE-Module-Short-Description = API fόr die visuelle Ausgestaltung von Elementen +NodeGraphFunction.Degree.name = Grad +NodeGraphFunction.InDegree.name = Eingangsgrad +NodeGraphFunction.OutDegree.name = Ausgangsgrad +EdgeGraphFunction.Weight.name = Gewicht +EdgeGraphFunction.Type.name = Typ diff --git a/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_el.properties b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_el.properties new file mode 100644 index 0000000000..3113a479e2 --- /dev/null +++ b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_el.properties @@ -0,0 +1,9 @@ + + +NodeGraphFunction.Degree.name=\u0392\u03B1\u03B8\u03BC\u03CC\u03C2 +NodeGraphFunction.InDegree.name=\u0392\u03B1\u03B8\u03BC\u03CC\u03C2 \u0395\u03B9\u03C3\u03CC\u03B4\u03BF\u03C5 +NodeGraphFunction.OutDegree.name=\u0392\u03B1\u03B8\u03BC\u03CC\u03C2 \u0395\u03BE\u03CC\u03B4\u03BF\u03C5 +EdgeGraphFunction.Weight.name=\u0392\u03AC\u03C1\u03BF\u03C2 +EdgeGraphFunction.Type.name=\u03A4\u03CD\u03C0\u03BF\u03C2 +OpenIDE-Module-Long-Description=API \u03B5\u03BC\u03C6\u03AC\u03BD\u03B9\u03C3\u03B7\u03C2 \u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03C9\u03BD +OpenIDE-Module-Short-Description=API \u03B5\u03BC\u03C6\u03AC\u03BD\u03B9\u03C3\u03B7\u03C2 \u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03C9\u03BD diff --git a/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_es.properties b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_es.properties new file mode 100644 index 0000000000..77c4927dff --- /dev/null +++ b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_es.properties @@ -0,0 +1,7 @@ +OpenIDE-Module-Long-Description = API para la apariencia visual de los elementos +OpenIDE-Module-Short-Description = API para la apariencia visual de los elementos +NodeGraphFunction.Degree.name = Grado +NodeGraphFunction.InDegree.name = Grado de entrada +NodeGraphFunction.OutDegree.name = Grado de salida +EdgeGraphFunction.Weight.name = Peso +EdgeGraphFunction.Type.name = Tipo diff --git a/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_fr.properties b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_fr.properties new file mode 100644 index 0000000000..74001357e0 --- /dev/null +++ b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_fr.properties @@ -0,0 +1,7 @@ +OpenIDE-Module-Long-Description = API pour l'aspect visuel des ιlιments +OpenIDE-Module-Short-Description = API pour l'aspect visuel des ιlιments +NodeGraphFunction.Degree.name = Degrι +NodeGraphFunction.InDegree.name = Degrι Entrant +NodeGraphFunction.OutDegree.name = Degrι Sortant +EdgeGraphFunction.Weight.name = Poids +EdgeGraphFunction.Type.name = Type diff --git a/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_he.properties b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_he.properties new file mode 100644 index 0000000000..268a11d2bb --- /dev/null +++ b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_he.properties @@ -0,0 +1,7 @@ +OpenIDE-Module-Long-Description = \u05de\u05e0\u05e9\u05e7 \u05e2\u05d1\u05d5\u05e8 \u05d4\u05ea\u05d5\u05e6\u05d2\u05d4 \u05d4\u05d7\u05d6\u05d5\u05ea\u05d9\u05ea \u05e9\u05dc \u05d4\u05e8\u05db\u05d9\u05d1\u05d9\u05dd +OpenIDE-Module-Short-Description = \u05de\u05e0\u05e9\u05e7 \u05e2\u05d1\u05d5\u05e8 \u05d4\u05ea\u05e6\u05d5\u05d2\u05d4 \u05d4\u05d7\u05d6\u05d5\u05ea\u05d9\u05ea \u05e9\u05dc \u05d4\u05de\u05e8\u05db\u05d9\u05d1\u05d9\u05dd +NodeGraphFunction.Degree.name = \u05d3\u05e8\u05d2\u05d4 +NodeGraphFunction.InDegree.name = \u05d3\u05e8\u05d2\u05d4 \u05e0\u05db\u05e0\u05e1\u05ea +NodeGraphFunction.OutDegree.name = \u05d3\u05e8\u05d2\u05d4 \u05d9\u05d5\u05e6\u05d0\u05ea +EdgeGraphFunction.Weight.name = \u05de\u05e9\u05e7\u05dc +EdgeGraphFunction.Type.name = \u05e1\u05d5\u05d2 diff --git a/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_hu.properties b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_hu.properties new file mode 100644 index 0000000000..b20dfe9924 --- /dev/null +++ b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_hu.properties @@ -0,0 +1,9 @@ + + +NodeGraphFunction.InDegree.name=Fokozatban +EdgeGraphFunction.Weight.name=S\u00FAly +NodeGraphFunction.Degree.name=Fokozat +NodeGraphFunction.OutDegree.name=Kimen\u0151 fokozat +OpenIDE-Module-Short-Description=API az elemek vizu\u00E1lis megjelen\u00E9s\u00E9hez +OpenIDE-Module-Long-Description=API az elemek vizu\u00E1lis megjelen\u00E9s\u00E9hez +EdgeGraphFunction.Type.name=T\u00EDpus diff --git a/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_it.properties b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_it.properties new file mode 100644 index 0000000000..3dbc8e8224 --- /dev/null +++ b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_it.properties @@ -0,0 +1,7 @@ +OpenIDE-Module-Long-Description=API for the visual appearance of elements +OpenIDE-Module-Short-Description=API for the visual appearance of elements +NodeGraphFunction.Degree.name=Grado +NodeGraphFunction.InDegree.name=Grado entrante +NodeGraphFunction.OutDegree.name=Grado uscente +EdgeGraphFunction.Weight.name=Peso +EdgeGraphFunction.Type.name=Tipo diff --git a/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_ja.properties b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_ja.properties new file mode 100644 index 0000000000..dc9e28c8ea --- /dev/null +++ b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_ja.properties @@ -0,0 +1,7 @@ +# OpenIDE-Module-Long-Description = API for the visual appearance of elements +# OpenIDE-Module-Short-Description = API for the visual appearance of elements +# NodeGraphFunction.Degree.name = Degree +# NodeGraphFunction.InDegree.name = In-Degree +# NodeGraphFunction.OutDegree.name = Out-Degree +# EdgeGraphFunction.Weight.name = Weight +# EdgeGraphFunction.Type.name = Type diff --git a/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_ko.properties b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_ko.properties new file mode 100644 index 0000000000..27ac6229d5 --- /dev/null +++ b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_ko.properties @@ -0,0 +1,9 @@ + + +EdgeGraphFunction.Weight.name=\uAC00\uC911\uCE58 +NodeGraphFunction.Degree.name=\uCC28\uC218 +NodeGraphFunction.InDegree.name=\uC9C4\uC785 \uCC28\uC218 +NodeGraphFunction.OutDegree.name=\uC9C4\uCD9C \uCC28\uC218 +EdgeGraphFunction.Type.name=\uC720\uD615 +OpenIDE-Module-Long-Description=\uAD6C\uC131 \uC694\uC18C\uB4E4\uC758 \uC2DC\uAC01\uC801 \uBAA8\uC2B5\uC744 \uC704\uD55C API +OpenIDE-Module-Short-Description=\uAD6C\uC131 \uC694\uC18C\uB4E4\uC758 \uC2DC\uAC01\uC801 \uBAA8\uC2B5\uC744 \uC704\uD55C API diff --git a/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_nl.properties b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_nl.properties new file mode 100644 index 0000000000..22c555c7a2 --- /dev/null +++ b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_nl.properties @@ -0,0 +1,7 @@ +OpenIDE-Module-Long-Description=API for the visual appearance of elements +OpenIDE-Module-Short-Description=API for the visual appearance of elements +NodeGraphFunction.Degree.name=Degree +NodeGraphFunction.InDegree.name=In-Degree +NodeGraphFunction.OutDegree.name=Out-Degree +EdgeGraphFunction.Weight.name=Gewicht +EdgeGraphFunction.Type.name=Type diff --git a/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_pt.properties b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_pt.properties new file mode 100644 index 0000000000..5aa51b821d --- /dev/null +++ b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_pt.properties @@ -0,0 +1,7 @@ +OpenIDE-Module-Long-Description=API para a apar\u00EAncia visual de elementos +OpenIDE-Module-Short-Description=API para a apar\u00EAncia visual de elementos +NodeGraphFunction.Degree.name=Grau +NodeGraphFunction.InDegree.name=Grau de Entrada +NodeGraphFunction.OutDegree.name=Grau de Sa\u00EDda +EdgeGraphFunction.Weight.name=Peso +EdgeGraphFunction.Type.name=Tipo diff --git a/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_pt_BR.properties b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_pt_BR.properties new file mode 100644 index 0000000000..21f7937c30 --- /dev/null +++ b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_pt_BR.properties @@ -0,0 +1,7 @@ +OpenIDE-Module-Long-Description = API para a aparκncia visual dos elementos +OpenIDE-Module-Short-Description = API para a aparκncia visual dos elementos +NodeGraphFunction.Degree.name = Grau +NodeGraphFunction.InDegree.name = Grau de Entrada +NodeGraphFunction.OutDegree.name = Grau de Saνda +EdgeGraphFunction.Weight.name = Peso +EdgeGraphFunction.Type.name = Tipo diff --git a/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_ro.properties b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_ro.properties new file mode 100644 index 0000000000..9a1a823974 --- /dev/null +++ b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_ro.properties @@ -0,0 +1,9 @@ + + +OpenIDE-Module-Long-Description=API pentru aspectul vizual al elementelor +OpenIDE-Module-Short-Description=API pentru aspectul vizual al elementelor +NodeGraphFunction.Degree.name=Grad +NodeGraphFunction.InDegree.name=Grad Interior +NodeGraphFunction.OutDegree.name=Grad Exterior +EdgeGraphFunction.Weight.name=Pondere +EdgeGraphFunction.Type.name=Tip diff --git a/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_ru.properties b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_ru.properties new file mode 100644 index 0000000000..dc9e28c8ea --- /dev/null +++ b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_ru.properties @@ -0,0 +1,7 @@ +# OpenIDE-Module-Long-Description = API for the visual appearance of elements +# OpenIDE-Module-Short-Description = API for the visual appearance of elements +# NodeGraphFunction.Degree.name = Degree +# NodeGraphFunction.InDegree.name = In-Degree +# NodeGraphFunction.OutDegree.name = Out-Degree +# EdgeGraphFunction.Weight.name = Weight +# EdgeGraphFunction.Type.name = Type diff --git a/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_th.properties b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_th.properties new file mode 100644 index 0000000000..59b9ae3e32 --- /dev/null +++ b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_th.properties @@ -0,0 +1,7 @@ +OpenIDE-Module-Long-Description=API \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E04\u0E27\u0E1A\u0E04\u0E38\u0E21\u0E41\u0E25\u0E30\u0E08\u0E31\u0E14\u0E01\u0E32\u0E23\u0E01\u0E32\u0E23\u0E41\u0E2A\u0E14\u0E07\u0E1C\u0E25\u0E23\u0E39\u0E1B\u0E25\u0E31\u0E01\u0E29\u0E13\u0E4C\u0E02\u0E2D\u0E07\u0E2D\u0E07\u0E04\u0E4C\u0E1B\u0E23\u0E30\u0E01\u0E2D\u0E1A\u0E01\u0E23\u0E32\u0E1F +OpenIDE-Module-Short-Description=API \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E01\u0E32\u0E23\u0E41\u0E2A\u0E14\u0E07\u0E23\u0E39\u0E1B\u0E25\u0E31\u0E01\u0E29\u0E13\u0E4C\u0E02\u0E2D\u0E07\u0E2D\u0E07\u0E04\u0E4C\u0E1B\u0E23\u0E30\u0E01\u0E2D\u0E1A +NodeGraphFunction.Degree.name=\u0E14\u0E35\u0E01\u0E23\u0E35 +NodeGraphFunction.InDegree.name=\u0E2D\u0E34\u0E19\u0E14\u0E35\u0E01\u0E23\u0E35 +NodeGraphFunction.OutDegree.name=\u0E40\u0E2D\u0E32\u0E15\u0E4C\u0E14\u0E35\u0E01\u0E23\u0E35 +EdgeGraphFunction.Type.name=\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17 +EdgeGraphFunction.Weight.name=\u0E19\u0E49\u0E33\u0E2B\u0E19\u0E31\u0E01 diff --git a/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_tr.properties b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_tr.properties new file mode 100644 index 0000000000..ceafebf940 --- /dev/null +++ b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_tr.properties @@ -0,0 +1,7 @@ +OpenIDE-Module-Long-Description=Gφrsel gφrόnόm elemanlar\u0131 API'si +OpenIDE-Module-Short-Description=Gφrsel gφrόnόm elemanlar\u0131 API'si +NodeGraphFunction.Degree.name=Degree +NodeGraphFunction.InDegree.name=In-Degree +NodeGraphFunction.OutDegree.name=Out-Degree +EdgeGraphFunction.Weight.name=A\u011f\u0131rl\u0131k +EdgeGraphFunction.Type.name=Tόr diff --git a/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_uk.properties b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_uk.properties new file mode 100644 index 0000000000..170193e4a1 --- /dev/null +++ b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_uk.properties @@ -0,0 +1,7 @@ +NodeGraphFunction.OutDegree.name=\u0412\u0438\u0445\u0456\u0434\u043D\u0438\u0439 \u0441\u0442\u0443\u043F\u0456\u043D\u044C +EdgeGraphFunction.Type.name=\u0422\u0438\u043F +OpenIDE-Module-Short-Description=API \u0434\u043B\u044F \u0432\u0456\u0437\u0443\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0432\u0438\u0433\u043B\u044F\u0434\u0443 \u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432 +NodeGraphFunction.InDegree.name=\u0406\u043D-\u0433\u0440\u0430\u0434\u0443\u0441 +EdgeGraphFunction.Weight.name=\u0412\u0430\u0433\u0430 +OpenIDE-Module-Long-Description=API \u0434\u043B\u044F \u0432\u0456\u0437\u0443\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0432\u0438\u0433\u043B\u044F\u0434\u0443 \u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432 +NodeGraphFunction.Degree.name=\u0421\u0442\u0443\u043F\u0456\u043D\u044C diff --git a/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_zh_CN.properties b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_zh_CN.properties new file mode 100644 index 0000000000..c6d2591b8e --- /dev/null +++ b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_zh_CN.properties @@ -0,0 +1,9 @@ +# OpenIDE-Module-Long-Description = API for the visual appearance of elements +# OpenIDE-Module-Short-Description = API for the visual appearance of elements +NodeGraphFunction.Degree.name=\u5ea6 +NodeGraphFunction.InDegree.name=\u8fde\u5165\u5ea6 +NodeGraphFunction.OutDegree.name=\u8fde\u51fa\u5ea6 +EdgeGraphFunction.Weight.name=\u8fb9\u7684\u6743\u91cd +EdgeGraphFunction.Type.name=\u7c7b\u578b +OpenIDE-Module-Short-Description=\u5143\u7D20\u89C6\u89C9\u5916\u89C2\u7684API +OpenIDE-Module-Long-Description=\u5143\u7D20\u89C6\u89C9\u5916\u89C2\u7684API diff --git a/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_zh_TW.properties b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_zh_TW.properties new file mode 100644 index 0000000000..ec101a92ea --- /dev/null +++ b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/Bundle_zh_TW.properties @@ -0,0 +1,7 @@ +OpenIDE-Module-Long-Description = \u8996\u89ba\u5143\u4ef6\u61c9\u7528\u7a0b\u5f0f\u4ecb\u9762 +OpenIDE-Module-Short-Description = \u8996\u89ba\u5143\u4ef6\u61c9\u7528\u7a0b\u5f0f\u4ecb\u9762 +NodeGraphFunction.Degree.name = \u5ea6 +NodeGraphFunction.InDegree.name = \u9023\u5165\u5ea6 +NodeGraphFunction.OutDegree.name = \u9023\u51fa\u5ea6 +EdgeGraphFunction.Weight.name = \u9023\u7d50\u6b0a\u91cd +EdgeGraphFunction.Type.name = \u9023\u7d50\u985e\u578b diff --git a/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/api/package.html b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/api/package.html new file mode 100644 index 0000000000..7b4bcfebd3 --- /dev/null +++ b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/api/package.html @@ -0,0 +1,18 @@ + + + + org.gephi.appearance.api + + +

+ API for manipulating element appearance. +

+

+ This API gives access to the available appearance functions. Functions + define how nodes or edges visual appearance should be transformed. + Functions are created automatically and users of this API can obtain them + via the org.gephi.appearance.api.AppearanceModel. +

+ + + diff --git a/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/spi/package.html b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/spi/package.html new file mode 100644 index 0000000000..3df0dbd8f6 --- /dev/null +++ b/modules/AppearanceAPI/src/main/resources/org/gephi/appearance/spi/package.html @@ -0,0 +1,27 @@ + + + + org.gephi.appearance.spi + + +

+ Interfaces that define the different ways the appearance of elements can + be transformed. +

+

+ The purpose of transformers is to change the appearance of elements + based on user parameters and column's values. There are three types + of transformers: simple, ranking and partition. The simple transformer + interface is defined in org.gephi.appearance.spi.SimpleTransformer. + The ranking and partition transformers are both based on the specific value + an element has in a given column. The ranking transformer work with + numerical, sorted values (e.g. age, number of followers) and the + partition transformer work with categorical values (e.g. community id, + gender). The ranking transformer is defined in org.gephi.appearance.spi.RankingTransformer + and the partition transformer in org.gephi.appearance.spi.PartitionTransformer. + Then, transformers can be associated with user interfaces elements + through the implementation of org.gephi.appearance.spi.TransformerUI. +

+ + + diff --git a/modules/AppearanceAPI/src/main/resources/overview.html b/modules/AppearanceAPI/src/main/resources/overview.html new file mode 100644 index 0000000000..bceecb1c92 --- /dev/null +++ b/modules/AppearanceAPI/src/main/resources/overview.html @@ -0,0 +1,22 @@ + + + + Appearance API + + +

+ Appearance API/SPI controls the visual transformations that can + be applied to nodes and edges. +

+

+ API provides access to the various functions that can be applied to + elements. Functions can be simple (e.g. unique color to all nodes) + but also based on a ranking for numerical sorted attributes or a + partition for categorical attributes. +

+

+ See org.gephi.appearance.spi package to know how to define + new transformers. +

+ + diff --git a/modules/AppearanceAPI/src/test/java/org.gephi.appearance/AppearanceControllerTest.java b/modules/AppearanceAPI/src/test/java/org.gephi.appearance/AppearanceControllerTest.java new file mode 100644 index 0000000000..289f859291 --- /dev/null +++ b/modules/AppearanceAPI/src/test/java/org.gephi.appearance/AppearanceControllerTest.java @@ -0,0 +1,269 @@ +package org.gephi.appearance; + +import java.awt.Color; +import java.util.Arrays; +import java.util.Optional; +import org.gephi.appearance.api.AttributeFunction; +import org.gephi.appearance.api.Function; +import org.gephi.appearance.api.Partition; +import org.gephi.appearance.api.Ranking; +import org.gephi.appearance.spi.PartitionTransformer; +import org.gephi.appearance.spi.RankingTransformer; +import org.gephi.appearance.spi.SimpleTransformer; +import org.gephi.appearance.spi.Transformer; +import org.gephi.graph.GraphGenerator; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Configuration; +import org.gephi.graph.api.Estimator; +import org.gephi.graph.api.GraphView; +import org.gephi.graph.api.Interval; +import org.gephi.graph.api.Node; +import org.gephi.graph.api.TimeRepresentation; +import org.gephi.graph.api.types.TimestampDoubleMap; +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mockito; +import org.mockito.Spy; +import org.mockito.junit.MockitoJUnitRunner; +import org.netbeans.junit.MockServices; + +@RunWith(MockitoJUnitRunner.class) +public class AppearanceControllerTest { + + @Spy + AppearanceControllerImpl controller = new AppearanceControllerImpl(); + + @Test + public void testTransform() { + MockServices.setServices(FixedTransformer.class); + GraphGenerator generator = GraphGenerator.build().generateTinyGraph().addIntNodeColumn(); + + AppearanceModelImpl model = new AppearanceModelImpl(generator.getWorkspace()); + Mockito.doReturn(model).when(controller).getModel(); + + Assert.assertFalse(controller.getModel().isRankingLocalScale()); + + Node node = generator.getGraph().getNode(GraphGenerator.FIRST_NODE); + + Optional simpleFunction = Arrays.stream(controller.getModel().getNodeFunctions()).filter( + Function::isSimple).findFirst(); + Assert.assertTrue(simpleFunction.isPresent()); + + Optional rankingFunction = + Arrays.stream(controller.getModel().getNodeFunctions()).filter(f -> f.isRanking() && f.isAttribute()) + .findFirst(); + Assert.assertTrue(rankingFunction.isPresent()); + + Optional partitionFunction = Arrays.stream(controller.getModel().getNodeFunctions()).filter( + Function::isPartition).findFirst(); + Assert.assertTrue(partitionFunction.isPresent()); + + controller.transform(simpleFunction.get()); + Assert.assertEquals(Color.PINK, node.getColor()); + + controller.transform(rankingFunction.get()); + Assert.assertEquals(0, (int) node.size()); + + controller.transform(partitionFunction.get()); + Assert.assertEquals(Color.CYAN, node.getColor()); + } + + @Test + public void testFilteredView() { + MockServices.setServices(FixedTransformer.class); + GraphGenerator generator = GraphGenerator.build().generateTinyGraph().addIntNodeColumn(); + + AppearanceModelImpl model = new AppearanceModelImpl(generator.getWorkspace()); + Mockito.doReturn(model).when(controller).getModel(); + + Node node1 = generator.getGraph().getNode(GraphGenerator.FIRST_NODE); + Node node2 = generator.getGraph().getNode(GraphGenerator.SECOND_NODE); + + Function simpleFunction = Arrays.stream(controller.getModel().getNodeFunctions()).filter( + Function::isSimple).findFirst().get(); + + GraphView view = generator.getGraphModel().createView(true, false); + view.getGraphModel().getGraph(view).addNode(node1); + generator.getGraphModel().setVisibleView(view); + + controller.transform(simpleFunction); + + Assert.assertEquals(Color.PINK, node1.getColor()); + Assert.assertNotEquals(Color.PINK, node2.getColor()); + } + + @Test + public void testLocalScale() { + MockServices.setServices(FixedTransformer.class); + GraphGenerator generator = GraphGenerator.build().generateTinyGraph().addIntNodeColumn(); + + AppearanceModelImpl model = new AppearanceModelImpl(generator.getWorkspace()); + Mockito.doReturn(model).when(controller).getModel(); + + Node node1 = generator.getGraph().getNode(GraphGenerator.FIRST_NODE); + Node node2 = generator.getGraph().getNode(GraphGenerator.SECOND_NODE); + int age1 = (Integer) node1.getAttribute(GraphGenerator.INT_COLUMN); + int age2 = (Integer) node2.getAttribute(GraphGenerator.INT_COLUMN); + node1.setSize(42f); + Assert.assertTrue(age2 > age1); + + Function rankingFunction = + Arrays.stream(controller.getModel().getNodeFunctions()).filter(f -> f.isRanking() && f.isAttribute()) + .findFirst().get(); + + GraphView view = generator.getGraphModel().createView(true, false); + view.getGraphModel().getGraph(view).addNode(node1); + generator.getGraphModel().setVisibleView(view); + + controller.transform(rankingFunction); + Assert.assertEquals(0, (int) node1.size()); + + controller.setUseRankingLocalScale(true); + controller.transform(rankingFunction); + Assert.assertEquals(1, (int) node1.size()); + } + + @Test + public void testTransformNullValuesRanking() { + MockServices.setServices(FixedTransformer.class); + GraphGenerator generator = GraphGenerator.build().generateTinyGraph().addIntNodeColumn(); + + AppearanceModelImpl model = new AppearanceModelImpl(generator.getWorkspace()); + Mockito.doReturn(model).when(controller).getModel(); + controller.setTransformNullValues(true); + + Node node = generator.getGraph().getNode(GraphGenerator.FIRST_NODE); + node.clearAttributes(); + node.setSize(42f); + + Function rankingFunction = + Arrays.stream(controller.getModel().getNodeFunctions()).filter(f -> f.isRanking() && f.isAttribute()) + .findFirst().get(); + controller.transform(rankingFunction); + Assert.assertEquals(0f, node.size(), 0); + } + + @Test + public void testNotTransformNullValuesRanking() { + MockServices.setServices(FixedTransformer.class); + GraphGenerator generator = GraphGenerator.build().generateTinyGraph().addIntNodeColumn(); + + AppearanceModelImpl model = new AppearanceModelImpl(generator.getWorkspace()); + Mockito.doReturn(model).when(controller).getModel(); + controller.setTransformNullValues(false); + + Node node = generator.getGraph().getNode(GraphGenerator.FIRST_NODE); + node.clearAttributes(); + node.setSize(42f); + + Function rankingFunction = + Arrays.stream(controller.getModel().getNodeFunctions()).filter(f -> f.isRanking() && f.isAttribute()) + .findFirst().get(); + controller.transform(rankingFunction); + Assert.assertEquals(42f, node.size(), 0); + } + + @Test + public void testTransformNullValuesPartition() { + MockServices.setServices(FixedTransformer.class); + GraphGenerator generator = GraphGenerator.build().generateSmallRandomGraph().addIntNodeColumn(); + + AppearanceModelImpl model = new AppearanceModelImpl(generator.getWorkspace()); + Mockito.doReturn(model).when(controller).getModel(); + controller.setTransformNullValues(true); + + Node node = generator.getGraph().getNode(GraphGenerator.FIRST_NODE); + node.clearAttributes(); + node.setColor(Color.GREEN); + + Optional partitionFunction = Arrays.stream(controller.getModel().getNodeFunctions()).filter( + Function::isPartition).findFirst(); + controller.transform(partitionFunction.get()); + Assert.assertEquals(Color.CYAN, node.getColor()); + } + + @Test + public void testNotTransformNullValuesPartition() { + MockServices.setServices(FixedTransformer.class); + GraphGenerator generator = GraphGenerator.build().generateSmallRandomGraph().addIntNodeColumn(); + + AppearanceModelImpl model = new AppearanceModelImpl(generator.getWorkspace()); + Mockito.doReturn(model).when(controller).getModel(); + controller.setTransformNullValues(false); + + Node node = generator.getGraph().getNode(GraphGenerator.FIRST_NODE); + node.clearAttributes(); + node.setColor(Color.GREEN); + + Optional partitionFunction = Arrays.stream(controller.getModel().getNodeFunctions()).filter( + Function::isPartition).findFirst(); + controller.transform(partitionFunction.get()); + Assert.assertEquals(Color.GREEN, node.getColor()); + } + + @Test + public void testRankingDynamicColumn() { + MockServices.setServices(FixedTransformer.class); + GraphGenerator generator = + GraphGenerator.build(Configuration.builder().timeRepresentation(TimeRepresentation.TIMESTAMP).build()).generateTinyGraph().addTimestampDoubleColumn(); + + AppearanceModelImpl model = new AppearanceModelImpl(generator.getWorkspace()); + Mockito.doReturn(model).when(controller).getModel(); + Column col = generator.getGraphModel().getNodeTable().getColumn(GraphGenerator.TIMESTAMP_DOUBLE_COLUMN); + + Node node1 = generator.getGraph().getNode(GraphGenerator.FIRST_NODE); + TimestampDoubleMap ts = new TimestampDoubleMap(new double[] {2000, 2004, 2008}, new double[] {0, 500, 1000}); + node1.setAttribute(col, ts); + + Function rankingFunction = + Arrays.stream(controller.getModel().getNodeFunctions()).filter(f -> f.isRanking() && f.isAttribute() + && ((AttributeFunction) f).getColumn() == col) + .findFirst().get(); + + GraphView view = generator.getGraphModel().createView(true, false); + view.getGraphModel().getGraph(view).fill(); + generator.getGraphModel().setVisibleView(view); + + controller.transform(rankingFunction); + Assert.assertEquals(0, (int) node1.size()); + + col.setEstimator(Estimator.MAX); + controller.transform(rankingFunction); + Assert.assertEquals(1, (int) node1.size()); + + view.getGraphModel().setTimeInterval(view, new Interval(2000, 2000)); + controller.transform(rankingFunction); + Assert.assertEquals(0, (int) node1.size()); + } + + public static class FixedTransformer implements Transformer, RankingTransformer, + PartitionTransformer, + SimpleTransformer { + + @Override + public boolean isNode() { + return true; + } + + @Override + public boolean isEdge() { + return false; + } + + @Override + public void transform(Node node, Partition partition, Object value) { + node.setColor(Color.CYAN); + } + + @Override + public void transform(Node node, Ranking ranking, Number value, float normalisedValue) { + node.setSize(normalisedValue); + } + + @Override + public void transform(Node node) { + node.setColor(Color.PINK); + } + } +} diff --git a/modules/AppearanceAPI/src/test/java/org.gephi.appearance/AppearanceModelTest.java b/modules/AppearanceAPI/src/test/java/org.gephi.appearance/AppearanceModelTest.java new file mode 100644 index 0000000000..3836aa92f8 --- /dev/null +++ b/modules/AppearanceAPI/src/test/java/org.gephi.appearance/AppearanceModelTest.java @@ -0,0 +1,168 @@ +package org.gephi.appearance; + +import java.util.Arrays; +import org.gephi.appearance.api.AppearanceModel; +import org.gephi.appearance.api.AttributeFunction; +import org.gephi.appearance.api.Function; +import org.gephi.appearance.api.GraphFunction; +import org.gephi.appearance.api.Partition; +import org.gephi.appearance.api.PartitionFunction; +import org.gephi.appearance.api.Ranking; +import org.gephi.appearance.spi.PartitionTransformer; +import org.gephi.appearance.spi.RankingTransformer; +import org.gephi.appearance.spi.SimpleTransformer; +import org.gephi.appearance.spi.Transformer; +import org.gephi.graph.GraphGenerator; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Element; +import org.gephi.graph.api.GraphView; +import org.junit.Assert; +import org.junit.Test; +import org.netbeans.junit.MockServices; + +public class AppearanceModelTest { + + @Test + public void testDefaultPartition() { + GraphGenerator generator = GraphGenerator.build().generateTinyGraph().addIntNodeColumn(); + AppearanceModelImpl model = new AppearanceModelImpl(generator.getWorkspace()); + + Column idCol = generator.getGraphModel().getNodeTable().getColumn("id"); + Assert.assertNull(model.getNodePartition(idCol)); + + Column ageCol = generator.getGraphModel().getNodeTable().getColumn("id"); + Assert.assertNull(model.getNodePartition(ageCol)); + + Assert.assertNotNull(model.getDegreeRanking()); + } + + @Test + public void testPartitionColumnCreation() { + MockServices.setServices(DummyTransformer.class); + GraphGenerator generator = GraphGenerator.build().generateTinyGraph().addIntNodeColumn(); + AppearanceModelImpl model = new AppearanceModelImpl(generator.getWorkspace()); + + Column ageCol = generator.getGraphModel().getNodeTable().getColumn(GraphGenerator.INT_COLUMN); + Assert.assertNotNull(model.getNodePartition(ageCol)); + + Partition partition = model.getNodePartition(ageCol); + Assert.assertEquals(generator.getGraph().getNodeCount(), partition.getElementCount(generator.getGraph())); + } + + @Test + public void testPartitionCleanup() { + MockServices.setServices(DummyTransformer.class); + GraphGenerator generator = GraphGenerator.build().generateTinyGraph().addIntNodeColumn(); + AppearanceModelImpl model = new AppearanceModelImpl(generator.getWorkspace()); + model.getNodeFunctions(); + + Assert.assertEquals(2, model.countNodeAttributeRanking()); + + generator.getGraphModel().getNodeTable().removeColumn(GraphGenerator.INT_COLUMN); + + // Trigger cleanup by calling getNodeFunctions() which calls cleanAttributeRankingsAndPartitions() + model.getNodeFunctions(); + + Assert.assertEquals(1, model.countNodeAttributeRanking()); + } + + @Test + public void testRemoveColumn() { + MockServices.setServices(DummyTransformer.class); + GraphGenerator generator = GraphGenerator.build().generateTinyGraph().addIntNodeColumn(); + AppearanceModelImpl model = new AppearanceModelImpl(generator.getWorkspace()); + Column col = model.getGraphModel().getNodeTable().getColumn(GraphGenerator.INT_COLUMN); + Function function = Arrays.stream(model.getNodeFunctions()).filter(f -> f.isPartition()).findFirst().get(); + Partition partition = ((PartitionFunction)function).getPartition(); + + Assert.assertFalse(partition.getValues(model.getGraphModel().getGraph()).isEmpty()); + model.getGraphModel().getNodeTable().removeColumn(col); + Assert.assertFalse(function.isValid()); + } + + @Test + public void testHasChanged() { + MockServices.setServices(DummyTransformer.class); + GraphGenerator generator = GraphGenerator.build().generateTinyGraph().addIntNodeColumn(); + AppearanceModelImpl model = new AppearanceModelImpl(generator.getWorkspace()); + Function function = + Arrays.stream(model.getNodeFunctions()).filter(f -> f.isPartition() && f.isAttribute()).findFirst().get(); + + Assert.assertFalse(function.hasChanged()); + GraphView view = generator.getGraphModel().createView(); + generator.getGraphModel().setVisibleView(view); + Assert.assertFalse(function.hasChanged()); + + model.setPartitionLocalScale(true); + Assert.assertTrue(function.hasChanged()); + Assert.assertFalse(function.hasChanged()); + } + + @Test + public void testNodeFunctionsDegree() { + MockServices.setServices(DummyTransformer.class); + GraphGenerator generator = GraphGenerator.build().generateTinyGraph().addIntNodeColumn(); + AppearanceModelImpl model = new AppearanceModelImpl(generator.getWorkspace()); + + Column col = generator.getGraphModel().defaultColumns().degree(); + Function function = model.getNodeFunction(col, DummyTransformer.class); + Assert.assertNotNull(function); + Assert.assertTrue(function instanceof GraphFunction); + Assert + .assertEquals(AppearanceModel.GraphFunction.NODE_DEGREE, ((GraphFunctionImpl) function).getGraphFunction()); + } + + @Test + public void testNodeFunctionsAttribute() { + MockServices.setServices(DummyTransformer.class); + GraphGenerator generator = GraphGenerator.build().generateTinyGraph().addIntNodeColumn(); + AppearanceModelImpl model = new AppearanceModelImpl(generator.getWorkspace()); + + Column col = generator.getGraphModel().getNodeTable().getColumn(GraphGenerator.INT_COLUMN); + Function function = model.getNodeFunction(col, DummyTransformer.class); + Assert.assertNotNull(function); + Assert.assertTrue(function.isAttribute()); + Assert.assertEquals(col, ((AttributeFunction) function).getColumn()); + } + + @Test + public void testEdgeFunctionsWeight() { + MockServices.setServices(DummyTransformer.class); + GraphGenerator generator = GraphGenerator.build().generateTinyGraph().addIntNodeColumn(); + AppearanceModelImpl model = new AppearanceModelImpl(generator.getWorkspace()); + + Column col = generator.getGraphModel().getEdgeTable().getColumn("weight"); + Function function = model.getEdgeFunction(col, DummyTransformer.class); + Assert + .assertEquals(AppearanceModel.GraphFunction.EDGE_WEIGHT, ((GraphFunctionImpl) function).getGraphFunction()); + } + + public static class DummyTransformer implements Transformer, RankingTransformer, PartitionTransformer, + SimpleTransformer { + + @Override + public boolean isNode() { + return true; + } + + @Override + public boolean isEdge() { + return true; + } + + @Override + public void transform(Element element, Partition partition, Object value) { + + } + + @Override + public void transform(Element element, Ranking ranking, Number value, float normalisedValue) { + + } + + @Override + public void transform(Element element) { + + } + } +} diff --git a/modules/AppearanceAPI/src/test/java/org.gephi.appearance/AttributePartitionTest.java b/modules/AppearanceAPI/src/test/java/org.gephi.appearance/AttributePartitionTest.java new file mode 100644 index 0000000000..e40bb2351b --- /dev/null +++ b/modules/AppearanceAPI/src/test/java/org.gephi.appearance/AttributePartitionTest.java @@ -0,0 +1,191 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance; + +import java.awt.Color; +import java.util.Collection; +import org.gephi.graph.GraphGenerator; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Configuration; +import org.gephi.graph.api.Graph; +import org.gephi.graph.api.Node; +import org.gephi.graph.api.TimeRepresentation; +import org.junit.Assert; +import org.junit.Test; + +public class AttributePartitionTest { + + private static void clearNodeAttributes(Graph graph) { + for (Node n : graph.getNodes()) { + n.clearAttributes(); + } + } + + @Test + public void testEmpty() { + Graph graph = GraphGenerator.build().addIntNodeColumn().getGraph(); + Column column = graph.getModel().getNodeTable().getColumn(GraphGenerator.INT_COLUMN); + AttributePartitionImpl attributePartition = new AttributePartitionImpl(column); + + Assert.assertEquals(0, attributePartition.getElementCount(graph)); + Assert.assertEquals(0, attributePartition.getValues(graph).size()); + Assert.assertEquals(0, attributePartition.getSortedValues(graph).size()); + Assert.assertEquals(0, attributePartition.size(graph)); + } + + @Test + public void testIntColumn() { + Graph graph = GraphGenerator.build().generateTinyGraph().addIntNodeColumn().getGraph(); + Column column = graph.getModel().getNodeTable().getColumn(GraphGenerator.INT_COLUMN); + + AttributePartitionImpl p = new AttributePartitionImpl(column); + Assert.assertEquals(graph.getNodeCount(), p.getElementCount(graph)); + Assert.assertEquals(graph.getNodeCount(), p.getValues(graph).size()); + Assert.assertNotNull(p.getValue(graph.getNodes().toArray()[0], graph)); + } + + @Test + public void testIsValidStringColumn() { + Graph graph = GraphGenerator.build().generateTinyGraph().addStringNodeColumn().getGraph(); + Column column = graph.getModel().getNodeTable().getColumn(GraphGenerator.STRING_COLUMN); + + AttributePartitionImpl p = new AttributePartitionImpl(column); + Assert.assertTrue(p.isValid(graph)); + + clearNodeAttributes(graph); + Assert.assertTrue(p.isValid(graph)); + } + + @Test + public void testIsValidIntColumn() { + Graph graph = GraphGenerator.build().generateTinyGraph().addIntNodeColumn().getGraph(); + Column column = graph.getModel().getNodeTable().getColumn(GraphGenerator.INT_COLUMN); + + AttributePartitionImpl p = new AttributePartitionImpl(column); + Assert.assertTrue(p.isValid(graph)); + + clearNodeAttributes(graph); + Assert.assertTrue(p.isValid(graph)); + } + + @Test + public void testStringArrayColumn() { + Graph graph = GraphGenerator.build().generateTinyGraph().addStringArrayNodeColumn().getGraph(); + Column column = graph.getModel().getNodeTable().getColumn(GraphGenerator.STRING_ARRAY_COLUMN); + + AttributePartitionImpl p = new AttributePartitionImpl(column); + Assert.assertEquals(graph.getNodeCount(), p.getElementCount(graph)); + Assert.assertEquals(graph.getNodeCount(), p.getValues(graph).size()); + Assert.assertArrayEquals(GraphGenerator.STRING_ARRAY_COLUMN_VALUES, p.getValues(graph).toArray()); + } + + @Test + public void testVersion() { + Graph graph = GraphGenerator.build().generateTinyGraph().addIntNodeColumn().getGraph(); + Column column = graph.getModel().getNodeTable().getColumn(GraphGenerator.INT_COLUMN); + Node n1 = graph.getNode(GraphGenerator.FIRST_NODE); + + AttributePartitionImpl p = new AttributePartitionImpl(column); + int version = p.getVersion(graph); + n1.setAttribute(column, 99); + Assert.assertNotEquals(version, version = p.getVersion(graph)); + Assert.assertEquals(version, p.getVersion(graph)); + + graph.removeNode(n1); + Assert.assertNotEquals(version, p.getVersion(graph)); + } + + @Test + public void testVersionDynamic() { + Graph graph = GraphGenerator.build(Configuration.builder().timeRepresentation(TimeRepresentation.TIMESTAMP).build()).generateTinyGraph().addTimestampDoubleColumn().getGraph(); + Column column = graph.getModel().getNodeTable().getColumn(GraphGenerator.TIMESTAMP_DOUBLE_COLUMN); + Node n1 = graph.getNode(GraphGenerator.FIRST_NODE); + + AttributePartitionImpl p = new AttributePartitionImpl(column); + int version = p.getVersion(graph); + n1.setAttribute(column, 99.0, 2000); + Assert.assertNotEquals(version, p.getVersion(graph)); + } + + @Test + public void testNullValues() { + Graph graph = GraphGenerator.build().generateTinyGraph().addIntNodeColumn().getGraph(); + Column column = graph.getModel().getNodeTable().getColumn(GraphGenerator.INT_COLUMN); + + AttributePartitionImpl p = new AttributePartitionImpl(column); + Assert.assertEquals(AttributePartitionImpl.DEFAULT_COLOR, p.getColor(null)); + + p.setColor(null, Color.BLUE); + Assert.assertEquals(Color.BLUE, p.getColor(null)); + } + + @Test + public void testNullValuesValues() { + Graph graph = GraphGenerator.build().generateSmallRandomGraph().addIntNodeColumn().getGraph(); + Column column = graph.getModel().getNodeTable().getColumn(GraphGenerator.INT_COLUMN); + + Node n1 = graph.getNode(GraphGenerator.FIRST_NODE); + n1.setAttribute(column, null); + + AttributePartitionImpl p = new AttributePartitionImpl(column); + Assert.assertTrue(p.getValues(graph).contains(null)); + Assert.assertTrue(p.getSortedValues(graph).contains(null)); + } + + @Test + public void testSetColors() { + Graph graph = GraphGenerator.build().generateSmallRandomGraph().addIntNodeColumn().getGraph(); + Column column = graph.getModel().getNodeTable().getColumn(GraphGenerator.INT_COLUMN); + + Node n1 = graph.getNode(GraphGenerator.FIRST_NODE); + Node n2 = graph.getNode(GraphGenerator.SECOND_NODE); + + n1.setAttribute(column, 42); + n2.setAttribute(column, 42); + + AttributePartitionImpl p = new AttributePartitionImpl(column); + p.setColors(graph, new Color[] {Color.MAGENTA, Color.BLUE}); + + Assert.assertEquals(Color.MAGENTA, p.getColor(42)); + } +} diff --git a/modules/AppearanceAPI/src/test/java/org.gephi.appearance/AttributeRankingTest.java b/modules/AppearanceAPI/src/test/java/org.gephi.appearance/AttributeRankingTest.java new file mode 100644 index 0000000000..25139c95d0 --- /dev/null +++ b/modules/AppearanceAPI/src/test/java/org.gephi.appearance/AttributeRankingTest.java @@ -0,0 +1,85 @@ +package org.gephi.appearance; + +import org.gephi.graph.GraphGenerator; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Configuration; +import org.gephi.graph.api.Estimator; +import org.gephi.graph.api.Graph; +import org.gephi.graph.api.Node; +import org.gephi.graph.api.TimeRepresentation; +import org.junit.Assert; +import org.junit.Test; + +public class AttributeRankingTest { + + @Test + public void testEmpty() { + Graph graph = GraphGenerator.build().addIntNodeColumn().getGraph(); + Column column = graph.getModel().getNodeTable().getColumn(GraphGenerator.INT_COLUMN); + AttributeRankingImpl attributeRanking = new AttributeRankingImpl(column); + + Assert.assertNull(attributeRanking.getMinValue(graph)); + Assert.assertNull(attributeRanking.getMaxValue(graph)); + } + + @Test + public void testTwoNodes() { + Graph graph = GraphGenerator.build().generateTinyGraph().addIntNodeColumn().getGraph(); + Column column = graph.getModel().getNodeTable().getColumn(GraphGenerator.INT_COLUMN); + AttributeRankingImpl attributeRanking = new AttributeRankingImpl(column); + + Assert.assertEquals(GraphGenerator.INT_COLUMN_MIN_VALUE, attributeRanking.getMinValue(graph)); + Assert.assertEquals(GraphGenerator.INT_COLUMN_MIN_VALUE + 1, attributeRanking.getMaxValue(graph)); + + Node n1 = graph.getNode(GraphGenerator.FIRST_NODE); + Node n2 = graph.getNode(GraphGenerator.SECOND_NODE); + + Assert.assertEquals(GraphGenerator.INT_COLUMN_MIN_VALUE, attributeRanking.getValue(n1, graph)); + Assert.assertEquals(0f, attributeRanking.getNormalizedValue(n1, graph), 0); + Assert.assertEquals(1f, attributeRanking.getNormalizedValue(n2, graph), 0); + } + + @Test + public void testIsValidStringColumn() { + Graph graph = GraphGenerator.build().generateTinyGraph().addStringNodeColumn().getGraph(); + Column column = graph.getModel().getNodeTable().getColumn(GraphGenerator.STRING_COLUMN); + + AttributeRankingImpl p = new AttributeRankingImpl(column); + Assert.assertFalse(p.isValid(graph)); + } + + @Test + public void testIsValidIntColumn() { + Graph graph = GraphGenerator.build().generateTinyGraph().addIntNodeColumn().getGraph(); + Column column = graph.getModel().getNodeTable().getColumn(GraphGenerator.INT_COLUMN); + + AttributeRankingImpl p = new AttributeRankingImpl(column); + Assert.assertTrue(p.isValid(graph)); + } + + @Test + public void testArrayColumnNotValid() { + Graph graph = GraphGenerator.build().generateTinyGraph().addFloatArrayNodeColumn().getGraph(); + Column column = graph.getModel().getNodeTable().getColumn(GraphGenerator.FLOAT_ARRAY_COLUMN); + + AttributeRankingImpl p = new AttributeRankingImpl(column); + Assert.assertFalse(p.isValid(graph)); + } + + @Test + public void testDynamicTimestampColumn() { + Graph graph = GraphGenerator.build(Configuration.builder().timeRepresentation(TimeRepresentation.TIMESTAMP).build()).generateTinyGraph().addTimestampDoubleColumn().getGraph(); + Column column = graph.getModel().getNodeTable().getColumn(GraphGenerator.TIMESTAMP_DOUBLE_COLUMN); + + AttributeRankingImpl p = new AttributeRankingImpl(column); + Assert.assertTrue(p.isValid(graph)); + + + Assert.assertEquals(GraphGenerator.TIMESTAMP_DOUBLE_COLUMN_VALUES[0][0], p.getMinValue(graph)); + Assert.assertEquals(GraphGenerator.TIMESTAMP_DOUBLE_COLUMN_VALUES[1][0], p.getMaxValue(graph)); + + Node n1 = graph.getNode(GraphGenerator.FIRST_NODE); + + Assert.assertEquals(GraphGenerator.TIMESTAMP_DOUBLE_COLUMN_VALUES[0][0], p.getValue(n1, graph)); + } +} diff --git a/modules/AppearanceAPI/src/test/java/org.gephi.appearance/DegreeRankingTest.java b/modules/AppearanceAPI/src/test/java/org.gephi.appearance/DegreeRankingTest.java new file mode 100644 index 0000000000..5176cc8ba8 --- /dev/null +++ b/modules/AppearanceAPI/src/test/java/org.gephi.appearance/DegreeRankingTest.java @@ -0,0 +1,71 @@ +package org.gephi.appearance; + +import org.gephi.appearance.api.Interpolator; +import org.gephi.graph.GraphGenerator; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Graph; +import org.gephi.graph.api.Node; +import org.junit.Assert; +import org.junit.Test; + +public class DegreeRankingTest { + + @Test + public void testEmpty() { + Graph graph = GraphGenerator.build().getGraph(); + Column col = graph.getModel().defaultColumns().degree(); + DegreeRankingImpl degreeRanking = new DegreeRankingImpl(col); + + Assert.assertNull(degreeRanking.getMinValue(graph)); + Assert.assertNull(degreeRanking.getMaxValue(graph)); + } + + @Test + public void testInterpolator() { + Graph graph = GraphGenerator.build().getGraph(); + Column col = graph.getModel().defaultColumns().degree(); + DegreeRankingImpl degreeRanking = new DegreeRankingImpl(col); + + Assert.assertSame(Interpolator.LINEAR, degreeRanking.getInterpolator()); + degreeRanking.setInterpolator(Interpolator.LOG2); + Assert.assertSame(Interpolator.LOG2, degreeRanking.getInterpolator()); + } + + @Test + public void testOneEdge() { + Graph graph = GraphGenerator.build().generateTinyGraph().getGraph(); + Column col = graph.getModel().defaultColumns().degree(); + DegreeRankingImpl degreeRanking = new DegreeRankingImpl(col); + + Assert.assertEquals(1, degreeRanking.getMinValue(graph)); + Assert.assertEquals(1, degreeRanking.getMaxValue(graph)); + + Node node = graph.getNode(GraphGenerator.FIRST_NODE); + Assert.assertEquals(1, degreeRanking.getValue(node, graph)); + Assert.assertEquals(1f, degreeRanking.getNormalizedValue(node, graph), 0); + } + + @Test + public void testNormalization() { + Graph graph = GraphGenerator.build().generateSmallRandomGraph().getGraph(); + Column col = graph.getModel().defaultColumns().degree(); + DegreeRankingImpl degreeRanking = new DegreeRankingImpl(col); + + int minDegree = degreeRanking.getMinValue(graph).intValue(); + int maxDegree = degreeRanking.getMaxValue(graph).intValue(); + + for(Node node : graph.getNodes()) { + int degree = degreeRanking.getValue(node, graph).intValue(); + float normalizedDegree = degreeRanking.getNormalizedValue(node, graph); + if(degree == minDegree) { + Assert.assertEquals(0f, normalizedDegree, 0); + } else if(degree == maxDegree) { + Assert.assertEquals(1f, normalizedDegree, 0); + } else { + Assert.assertNotEquals(minDegree, normalizedDegree); + Assert.assertNotEquals(maxDegree, normalizedDegree); + } + } + } + +} diff --git a/modules/AppearanceAPI/src/test/java/org.gephi.appearance/EdgeTypePartitionTest.java b/modules/AppearanceAPI/src/test/java/org.gephi.appearance/EdgeTypePartitionTest.java new file mode 100644 index 0000000000..c5df2b0f4a --- /dev/null +++ b/modules/AppearanceAPI/src/test/java/org.gephi.appearance/EdgeTypePartitionTest.java @@ -0,0 +1,78 @@ +package org.gephi.appearance; + +import org.gephi.graph.GraphGenerator; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Edge; +import org.gephi.graph.api.Graph; +import org.gephi.graph.api.Node; +import org.gephi.graph.impl.GraphStoreConfiguration; +import org.junit.Assert; +import org.junit.Test; + +public class EdgeTypePartitionTest { + + @Test + public void testEmpty() { + Graph graph = GraphGenerator.build().getGraph(); + Column col = graph.getModel().defaultColumns().edgeType(); + EdgeTypePartitionImpl typePartition = new EdgeTypePartitionImpl(col, GraphStoreConfiguration.DEFAULT_EDGE_LABEL_TYPE); + + Assert.assertEquals(0, typePartition.getElementCount(graph)); + Assert.assertEquals(0, typePartition.getValues(graph).size()); + Assert.assertEquals(0, typePartition.getSortedValues(graph).size()); + Assert.assertEquals(0, typePartition.size(graph)); + } + + @Test + public void testSimpleGraph() { + Graph graph = GraphGenerator.build().generateTinyGraph().getGraph(); + Column col = graph.getModel().defaultColumns().edgeType(); + EdgeTypePartitionImpl typePartition = new EdgeTypePartitionImpl(col, GraphStoreConfiguration.DEFAULT_EDGE_LABEL_TYPE); + + Assert.assertEquals(1, typePartition.getElementCount(graph)); + Assert.assertEquals(1, typePartition.getValues(graph).size()); + Assert.assertEquals(1, typePartition.getSortedValues(graph).size()); + Assert.assertEquals(1, typePartition.size(graph)); + } + + @Test + public void testMultiGraph() { + Graph graph = GraphGenerator.build().generateTinyMultiGraph().getGraph(); + Column col = graph.getModel().defaultColumns().edgeType(); + EdgeTypePartitionImpl typePartition = new EdgeTypePartitionImpl(col, GraphStoreConfiguration.DEFAULT_EDGE_LABEL_TYPE); + + Assert.assertEquals(2, typePartition.getElementCount(graph)); + Assert.assertEquals(2, typePartition.getValues(graph).size()); + Assert.assertEquals(2, typePartition.getSortedValues(graph).size()); + Assert.assertEquals(2, typePartition.size(graph)); + } + + @Test + public void testIsValid() { + Graph graph = GraphGenerator.build().generateTinyMultiGraph().getGraph(); + Column col = graph.getModel().defaultColumns().edgeType(); + EdgeTypePartitionImpl typePartition = new EdgeTypePartitionImpl(col, GraphStoreConfiguration.DEFAULT_EDGE_LABEL_TYPE); + Assert.assertTrue(typePartition.isValid(graph)); + } + + @Test + public void testIsNotValid() { + Graph graph = GraphGenerator.build().generateTinyGraph().getGraph(); + Column col = graph.getModel().defaultColumns().edgeType(); + EdgeTypePartitionImpl typePartition = new EdgeTypePartitionImpl(col, GraphStoreConfiguration.DEFAULT_EDGE_LABEL_TYPE); + Assert.assertFalse(typePartition.isValid(graph)); + } + + @Test + public void testVersion() { + Graph graph = GraphGenerator.build().generateTinyMultiGraph().getGraph(); + Column col = graph.getModel().defaultColumns().edgeType(); + EdgeTypePartitionImpl p = new EdgeTypePartitionImpl(col, GraphStoreConfiguration.DEFAULT_EDGE_LABEL_TYPE); + Edge e2 = graph.getEdge(GraphGenerator.SECOND_EDGE); + + int version = p.getVersion(graph); + graph.removeEdge(e2); + Assert.assertNotEquals(version, version = p.getVersion(graph)); + Assert.assertEquals(version, p.getVersion(graph)); + } +} diff --git a/modules/AppearanceAPI/src/test/java/org.gephi.appearance/EdgeWeightRankingTest.java b/modules/AppearanceAPI/src/test/java/org.gephi.appearance/EdgeWeightRankingTest.java new file mode 100644 index 0000000000..10fab55fb2 --- /dev/null +++ b/modules/AppearanceAPI/src/test/java/org.gephi.appearance/EdgeWeightRankingTest.java @@ -0,0 +1,31 @@ +package org.gephi.appearance; + +import org.gephi.graph.GraphGenerator; +import org.gephi.graph.api.Edge; +import org.gephi.graph.api.Graph; +import org.junit.Assert; +import org.junit.Test; + +public class EdgeWeightRankingTest { + + @Test + public void testEmpty() { + Graph graph = GraphGenerator.build().getGraph(); + EdgeWeightRankingImpl weightRanking = new EdgeWeightRankingImpl(); + + Assert.assertNull(weightRanking.getMinValue(graph)); + Assert.assertNull(weightRanking.getMaxValue(graph)); + } + + @Test + public void testOneEdge() { + Graph graph = GraphGenerator.build().generateTinyGraph().getGraph(); + EdgeWeightRankingImpl weightRanking = new EdgeWeightRankingImpl(); + + Assert.assertEquals(1.0, weightRanking.getMinValue(graph).doubleValue(), 0); + Assert.assertEquals(1.0, weightRanking.getMaxValue(graph).doubleValue(), 0); + + Edge edge = graph.getEdge(GraphGenerator.FIRST_EDGE); + Assert.assertEquals(1.0, weightRanking.getValue(edge, graph).doubleValue(), 0); + } +} diff --git a/modules/AppearanceAPI/src/test/java/org.gephi.appearance/InterpolatorTest.java b/modules/AppearanceAPI/src/test/java/org.gephi.appearance/InterpolatorTest.java new file mode 100644 index 0000000000..a62a658e60 --- /dev/null +++ b/modules/AppearanceAPI/src/test/java/org.gephi.appearance/InterpolatorTest.java @@ -0,0 +1,93 @@ +package org.gephi.appearance; + +import org.gephi.appearance.api.Interpolator; +import org.junit.Assert; +import org.junit.Test; + +public class InterpolatorTest { + + // ---- toString ---- + + @Test + public void testLinearToString() { + Assert.assertEquals("LINEAR", Interpolator.LINEAR.toString()); + } + + @Test + public void testLog2ToString() { + Assert.assertEquals("LOG2", Interpolator.LOG2.toString()); + } + + @Test + public void testBezierToString() { + Interpolator.BezierInterpolator bi = new Interpolator.BezierInterpolator(0.1f, 0.2f, 0.8f, 0.9f); + Assert.assertEquals("BEZIER:0.1,0.2,0.8,0.9", bi.toString()); + } + + // ---- fromString ---- + + @Test + public void testFromStringLinear() { + Assert.assertSame(Interpolator.LINEAR, Interpolator.fromString("LINEAR")); + } + + @Test + public void testFromStringLog2() { + Assert.assertSame(Interpolator.LOG2, Interpolator.fromString("LOG2")); + } + + @Test + public void testFromStringNull() { + Assert.assertSame(Interpolator.LINEAR, Interpolator.fromString(null)); + } + + @Test + public void testFromStringEmpty() { + Assert.assertSame(Interpolator.LINEAR, Interpolator.fromString("")); + } + + @Test + public void testFromStringUnknown() { + Assert.assertSame(Interpolator.LINEAR, Interpolator.fromString("UNKNOWN")); + } + + @Test + public void testFromStringMalformedBezier() { + Assert.assertSame(Interpolator.LINEAR, Interpolator.fromString("BEZIER:not,valid")); + } + + @Test + public void testFromStringBezier() { + Interpolator result = Interpolator.fromString("BEZIER:0.1,0.2,0.8,0.9"); + Assert.assertTrue(result instanceof Interpolator.BezierInterpolator); + Interpolator.BezierInterpolator bi = (Interpolator.BezierInterpolator) result; + Assert.assertEquals(new java.awt.geom.Point2D.Float(0.1f, 0.2f), bi.getControl1()); + Assert.assertEquals(new java.awt.geom.Point2D.Float(0.8f, 0.9f), bi.getControl2()); + } + + // ---- Round-trip ---- + + @Test + public void testLinearRoundTrip() { + Assert.assertSame(Interpolator.LINEAR, Interpolator.fromString(Interpolator.LINEAR.toString())); + } + + @Test + public void testLog2RoundTrip() { + Assert.assertSame(Interpolator.LOG2, Interpolator.fromString(Interpolator.LOG2.toString())); + } + + @Test + public void testBezierRoundTrip() { + Interpolator.BezierInterpolator original = new Interpolator.BezierInterpolator(0.25f, 0.1f, 0.75f, 0.9f); + Interpolator restored = Interpolator.fromString(original.toString()); + Assert.assertEquals(original, restored); + } + + @Test + public void testBezierRoundTripInterpolation() { + Interpolator.BezierInterpolator original = new Interpolator.BezierInterpolator(0.25f, 0.1f, 0.75f, 0.9f); + Interpolator restored = Interpolator.fromString(original.toString()); + Assert.assertEquals(original.interpolate(0.5f), restored.interpolate(0.5f), 1e-6f); + } +} diff --git a/modules/AppearanceAPI/src/test/java/org.gephi.appearance/PersistenceProvideTest.java b/modules/AppearanceAPI/src/test/java/org.gephi.appearance/PersistenceProvideTest.java new file mode 100644 index 0000000000..1f776fc78b --- /dev/null +++ b/modules/AppearanceAPI/src/test/java/org.gephi.appearance/PersistenceProvideTest.java @@ -0,0 +1,64 @@ +package org.gephi.appearance; + +import java.awt.Color; +import org.gephi.appearance.api.Interpolator; +import org.gephi.appearance.utils.Utils; +import org.gephi.graph.GraphGenerator; +import org.gephi.project.api.Workspace; +import org.gephi.project.io.utils.GephiFormat; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mockito; +import org.mockito.Spy; +import org.mockito.junit.MockitoJUnitRunner; + +@RunWith(MockitoJUnitRunner.class) +public class PersistenceProvideTest { + + AppearanceModelImpl model; + + @Before + public void setUp() { + model = Utils.newAppearanceModel(); + } + + @Test + public void testEmpty() throws Exception { + GephiFormat + .testXMLPersistenceProvider(new AppearanceModelPersistenceProvider(), model.getWorkspace()); + } + + @Test + public void testInterpolatorLog2() throws Exception { + model.getDegreeRanking().setInterpolator(Interpolator.LOG2); + + Workspace workspace = GephiFormat + .testXMLPersistenceProvider(new AppearanceModelPersistenceProvider(), model.getWorkspace()); + AppearanceModelImpl readModel = workspace.getLookup().lookup(AppearanceModelImpl.class); + Assert.assertSame(Interpolator.LOG2, readModel.getDegreeRanking().interpolator); + } + + @Test + public void testInterpolatorBezier() throws Exception { + model.getDegreeRanking() + .setInterpolator(Interpolator.newBezierInterpolator(0.23f, 0.45f, 0.67f, 0.12f)); + + Workspace workspace = GephiFormat + .testXMLPersistenceProvider(new AppearanceModelPersistenceProvider(), model.getWorkspace()); + AppearanceModelImpl readModel = workspace.getLookup().lookup(AppearanceModelImpl.class); + Assert.assertEquals(model.getDegreeRanking().interpolator, + readModel.getDegreeRanking().interpolator); + } + + @Test + public void testPartitionColor() throws Exception { + model.getEdgeTypePartition().setColor("foo", Color.RED); + + Workspace workspace = GephiFormat + .testXMLPersistenceProvider(new AppearanceModelPersistenceProvider(), model.getWorkspace()); + AppearanceModelImpl readModel = workspace.getLookup().lookup(AppearanceModelImpl.class); + Assert.assertEquals(Color.RED, readModel.getEdgeTypePartition().getColor("foo")); + } +} diff --git a/modules/AppearanceAPI/src/test/java/org.gephi.appearance/TimesetRankingTest.java b/modules/AppearanceAPI/src/test/java/org.gephi.appearance/TimesetRankingTest.java new file mode 100644 index 0000000000..f262231cbe --- /dev/null +++ b/modules/AppearanceAPI/src/test/java/org.gephi.appearance/TimesetRankingTest.java @@ -0,0 +1,67 @@ +package org.gephi.appearance; + +import org.gephi.graph.GraphGenerator; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Configuration; +import org.gephi.graph.api.Graph; +import org.gephi.graph.api.TimeRepresentation; +import org.junit.Assert; +import org.junit.Test; + +public class TimesetRankingTest { + + private final Configuration intervalConfiguration = Configuration.builder().timeRepresentation( + TimeRepresentation.INTERVAL).build(); + private final Configuration timestampConfiguration = Configuration.builder().timeRepresentation( + TimeRepresentation.TIMESTAMP).build(); + + @Test + public void testEmpty() { + Graph graph = GraphGenerator.build(timestampConfiguration).getGraph(); + Column column = graph.getModel().defaultColumns().nodeTimeSet(); + TimesetRankingImpl timesetRanking = new TimesetRankingImpl(column); + + Assert.assertEquals(Double.NEGATIVE_INFINITY, timesetRanking.getMinValue(graph)); + Assert.assertEquals(Double.POSITIVE_INFINITY, timesetRanking.getMaxValue(graph)); + } + + @Test + public void testMinMax() { + Graph graph = GraphGenerator.build(timestampConfiguration).generateTinyGraph().setTimestampSet().getGraph(); + Column column = graph.getModel().defaultColumns().nodeTimeSet(); + TimesetRankingImpl timesetRanking = new TimesetRankingImpl(column); + + Assert.assertEquals(GraphGenerator.TIMESTAMP_SET_VALUES[0], timesetRanking.getMinValue(graph)); + Assert.assertEquals(GraphGenerator.TIMESTAMP_SET_VALUES[1], timesetRanking.getMaxValue(graph)); + } + + @Test + public void testGetValue() { + Graph graph = GraphGenerator.build(timestampConfiguration).generateTinyGraph().setTimestampSet().getGraph(); + Column column = graph.getModel().defaultColumns().nodeTimeSet(); + TimesetRankingImpl timesetRanking = new TimesetRankingImpl(column); + + Assert.assertEquals(GraphGenerator.TIMESTAMP_SET_VALUES[0], + timesetRanking.getValue(graph.getNode(GraphGenerator.FIRST_NODE), graph)); + } + + @Test + public void testMinMaxInterval() { + Graph graph = GraphGenerator.build(intervalConfiguration).generateTinyGraph().setIntervalSet().getGraph(); + Column column = graph.getModel().defaultColumns().nodeTimeSet(); + TimesetRankingImpl timesetRanking = new TimesetRankingImpl(column); + + Assert.assertEquals(GraphGenerator.INTERVAL_SET_VALUES[0][0], timesetRanking.getMinValue(graph)); + Assert.assertEquals(GraphGenerator.INTERVAL_SET_VALUES[1][1], timesetRanking.getMaxValue(graph)); + } + + @Test + public void testMinMaxOtherColumn() { + Graph graph = GraphGenerator.build(timestampConfiguration).generateTinyGraph().addTimestampSetColumn().getGraph(); + Column column = graph.getModel().getNodeTable().getColumn(GraphGenerator.TIMESTAMP_SET_COLUMN); + TimesetRankingImpl timesetRanking = new TimesetRankingImpl(column); + + Assert.assertEquals(GraphGenerator.TIMESTAMP_SET_VALUES[0], timesetRanking.getMinValue(graph)); + Assert.assertEquals(GraphGenerator.TIMESTAMP_SET_VALUES[1], timesetRanking.getMaxValue(graph)); + } +} diff --git a/modules/AppearanceAPI/src/test/java/org/gephi/appearance/utils/Utils.java b/modules/AppearanceAPI/src/test/java/org/gephi/appearance/utils/Utils.java new file mode 100644 index 0000000000..336311f9e5 --- /dev/null +++ b/modules/AppearanceAPI/src/test/java/org/gephi/appearance/utils/Utils.java @@ -0,0 +1,13 @@ +package org.gephi.appearance.utils; + +import org.gephi.appearance.AppearanceModelImpl; +import org.gephi.graph.GraphGenerator; + +public class Utils { + + public static AppearanceModelImpl newAppearanceModel() { + GraphGenerator generator = + GraphGenerator.build().generateTinyGraph(); + return generator.getWorkspace().getLookup().lookup(AppearanceModelImpl.class); + } +} diff --git a/modules/AppearancePlugin/pom.xml b/modules/AppearancePlugin/pom.xml new file mode 100644 index 0000000000..72d6a6a5ca --- /dev/null +++ b/modules/AppearancePlugin/pom.xml @@ -0,0 +1,55 @@ + + + 4.0.0 + + gephi-parent + org.gephi + 0.11.3-SNAPSHOT + ../.. + + + org.gephi + appearance-plugin + 0.11.3-SNAPSHOT + nbm + + AppearancePlugin + + + + ${project.groupId} + appearance-api + + + ${project.groupId} + graph-api + + + ${project.groupId} + utils + + + org.netbeans.api + org-openide-util-lookup + + + org.netbeans.api + org-openide-util + + + + + + + org.apache.netbeans.utilities + nbm-maven-plugin + + + org.gephi.appearance.plugin + org.gephi.appearance.plugin.palette + + + + + + diff --git a/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/AbstractUniqueColorTransformer.java b/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/AbstractUniqueColorTransformer.java new file mode 100644 index 0000000000..24c8000050 --- /dev/null +++ b/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/AbstractUniqueColorTransformer.java @@ -0,0 +1,58 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance.plugin; + +import java.awt.Color; + +public class AbstractUniqueColorTransformer { + + protected Color color = Color.LIGHT_GRAY; + + public Color getColor() { + return color; + } + + public void setColor(Color color) { + this.color = color; + } +} diff --git a/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/AbstractUniqueSizeTransformer.java b/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/AbstractUniqueSizeTransformer.java new file mode 100644 index 0000000000..41c16615ab --- /dev/null +++ b/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/AbstractUniqueSizeTransformer.java @@ -0,0 +1,56 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance.plugin; + +public class AbstractUniqueSizeTransformer { + + protected float size = 1f; + + public float getSize() { + return size; + } + + public void setSize(float size) { + this.size = size; + } +} diff --git a/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/PartitionElementColorTransformer.java b/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/PartitionElementColorTransformer.java new file mode 100644 index 0000000000..d8e41c191e --- /dev/null +++ b/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/PartitionElementColorTransformer.java @@ -0,0 +1,78 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance.plugin; + +import java.awt.Color; +import org.gephi.appearance.api.Partition; +import org.gephi.appearance.plugin.palette.PaletteManager; +import org.gephi.appearance.spi.PartitionTransformer; +import org.gephi.appearance.spi.Transformer; +import org.gephi.graph.api.Element; +import org.openide.util.lookup.ServiceProvider; + +/** + * @author mbastian + */ +@ServiceProvider(service = Transformer.class) +public class PartitionElementColorTransformer implements PartitionTransformer { + + @Override + public void transform(Element element, Partition partition, Object value) { + Color color = partition.getColor(value); + element.setColor(color); + } + + @Override + public boolean isNode() { + return true; + } + + @Override + public boolean isEdge() { + return true; + } + + public PaletteManager getPaletteManager() { + return PaletteManager.getInstance(); + } +} diff --git a/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/PartitionLabelColorTransformer.java b/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/PartitionLabelColorTransformer.java new file mode 100644 index 0000000000..a057667a71 --- /dev/null +++ b/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/PartitionLabelColorTransformer.java @@ -0,0 +1,81 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance.plugin; + +import java.awt.Color; +import org.gephi.appearance.api.Partition; +import org.gephi.appearance.plugin.palette.PaletteManager; +import org.gephi.appearance.spi.PartitionTransformer; +import org.gephi.appearance.spi.Transformer; +import org.gephi.graph.api.Element; +import org.openide.util.lookup.ServiceProvider; + +/** + * @author mbastian + */ +@ServiceProvider(service = Transformer.class) +public class PartitionLabelColorTransformer implements PartitionTransformer { + + @Override + public void transform(Element element, Partition partition, Object value) { + Color color = partition.getColor(value); + if (color == null) { + color = Partition.DEFAULT_COLOR; + } + element.getTextProperties().setColor(color); + } + + @Override + public boolean isNode() { + return true; + } + + @Override + public boolean isEdge() { + return true; + } + + public PaletteManager getPaletteManager() { + return PaletteManager.getInstance(); + } +} diff --git a/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/RankingElementColorTransformer.java b/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/RankingElementColorTransformer.java new file mode 100644 index 0000000000..9ce571799e --- /dev/null +++ b/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/RankingElementColorTransformer.java @@ -0,0 +1,204 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance.plugin; + +import java.awt.Color; +import java.io.Serializable; +import java.util.Arrays; +import org.gephi.appearance.api.Ranking; +import org.gephi.appearance.spi.RankingTransformer; +import org.gephi.appearance.spi.Transformer; +import org.gephi.graph.api.Element; +import org.openide.util.lookup.ServiceProvider; + +/** + * @author mbastian + */ +@ServiceProvider(service = Transformer.class) +public class RankingElementColorTransformer implements RankingTransformer { + + protected final LinearGradient linearGradient = + new LinearGradient(new Color[] {new Color(0xEDF8FB), new Color(0x66C2A4), new Color(0x006D2C)}, + new float[] {0f, 0.5f, 1f}); + + @Override + public void transform(Element element, Ranking ranking, Number value, float normalisedValue) { + Color color = linearGradient.getValue(normalisedValue); + element.setColor(color); + } + + @Override + public boolean isNode() { + return true; + } + + @Override + public boolean isEdge() { + return true; + } + + public float[] getColorPositions() { + return linearGradient.getPositions(); + } + + public void setColorPositions(float[] positions) { + linearGradient.setPositions(positions); + } + + public Color[] getColors() { + return linearGradient.getColors(); + } + + public void setColors(Color[] colors) { + linearGradient.setColors(colors); + } + + public int[] getColorsAsRgba() { + return linearGradient.getColorsAsRgba(); + } + + public void setColorsAsRgba(int[] colors) { + linearGradient.setColorsAsRgba(colors); + } + + public LinearGradient getLinearGradient() { + return linearGradient; + } + + public static class LinearGradient implements Serializable, Cloneable { + + private Color[] colors; + private float[] positions; + + public LinearGradient(Color[] colors, float[] positions) { + if (colors == null || positions == null) { + throw new NullPointerException(); + } + if (colors.length != positions.length) { + throw new IllegalArgumentException(); + } + this.colors = colors; + this.positions = positions; + } + + public Color getValue(float pos) { + for (int a = 0; a < positions.length - 1; a++) { + if (positions[a] == pos) { + return colors[a]; + } + if (positions[a] < pos && pos < positions[a + 1]) { + float v = (pos - positions[a]) / (positions[a + 1] - positions[a]); + return tween(colors[a], colors[a + 1], v); + } + } + if (pos <= positions[0]) { + return colors[0]; + } + if (pos >= positions[positions.length - 1]) { + return colors[colors.length - 1]; + } + return null; + } + + private Color tween(Color c1, Color c2, float p) { + return new Color( + (int) (c1.getRed() * (1 - p) + c2.getRed() * (p)), + (int) (c1.getGreen() * (1 - p) + c2.getGreen() * (p)), + (int) (c1.getBlue() * (1 - p) + c2.getBlue() * (p)), + (int) (c1.getAlpha() * (1 - p) + c2.getAlpha() * (p))); + } + + public Color[] getColors() { + return colors; + } + + public void setColors(Color[] colors) { + this.colors = colors; + } + + public int[] getColorsAsRgba() { + return Arrays.stream(colors).mapToInt(c -> (c.getAlpha() << 24) | c.getRGB()).toArray(); + } + + public void setColorsAsRgba(int[] colors) { + this.colors = Arrays.stream(colors).mapToObj(rgba -> new Color(rgba, true)).toArray(Color[]::new); + } + + public float[] getPositions() { + return positions; + } + + public void setPositions(float[] positions) { + this.positions = positions; + } + + @Override + public boolean equals(Object obj) { + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final LinearGradient other = (LinearGradient) obj; + if (!Arrays.deepEquals(this.colors, other.colors)) { + return false; + } + return Arrays.equals(this.positions, other.positions); + } + + @Override + public int hashCode() { + int hash = 3; + hash = 17 * hash + Arrays.deepHashCode(this.colors); + hash = 17 * hash + Arrays.hashCode(this.positions); + return hash; + } + + @Override + protected Object clone() throws CloneNotSupportedException { + LinearGradient cl = new LinearGradient(colors, positions); + return cl; + } + } +} diff --git a/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/RankingLabelColorTransformer.java b/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/RankingLabelColorTransformer.java new file mode 100644 index 0000000000..c29b32522c --- /dev/null +++ b/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/RankingLabelColorTransformer.java @@ -0,0 +1,73 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance.plugin; + +import java.awt.Color; +import org.gephi.appearance.api.Interpolator; +import org.gephi.appearance.api.Ranking; +import org.gephi.appearance.spi.Transformer; +import org.gephi.graph.api.Element; +import org.openide.util.lookup.ServiceProvider; + +/** + * @author mbastian + */ +@ServiceProvider(service = Transformer.class) +public class RankingLabelColorTransformer extends RankingElementColorTransformer { + + @Override + public void transform(Element element, Ranking ranking, Number value, float normalisedValue) { + Color color = linearGradient.getValue(normalisedValue); + element.getTextProperties().setColor(color); + } + + @Override + public boolean isNode() { + return true; + } + + @Override + public boolean isEdge() { + return true; + } +} diff --git a/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/RankingLabelSizeTransformer.java b/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/RankingLabelSizeTransformer.java new file mode 100644 index 0000000000..4eaf86de82 --- /dev/null +++ b/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/RankingLabelSizeTransformer.java @@ -0,0 +1,74 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance.plugin; + +import org.gephi.appearance.api.Interpolator; +import org.gephi.appearance.api.Ranking; +import org.gephi.appearance.spi.RankingTransformer; +import org.gephi.appearance.spi.Transformer; +import org.gephi.graph.api.Element; +import org.gephi.graph.api.Node; +import org.openide.util.lookup.ServiceProvider; + +/** + * @author mbastian + */ +@ServiceProvider(service = Transformer.class) +public class RankingLabelSizeTransformer extends RankingSizeTransformer { + + @Override + public void transform(Element element, Ranking ranking, Number value, float normalisedValue) { + float size = normalisedValue * (maxSize - minSize) + minSize; + element.getTextProperties().setSize(size); + } + + @Override + public boolean isNode() { + return true; + } + + @Override + public boolean isEdge() { + return true; + } +} diff --git a/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/RankingNodeSizeTransformer.java b/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/RankingNodeSizeTransformer.java new file mode 100644 index 0000000000..16f8300245 --- /dev/null +++ b/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/RankingNodeSizeTransformer.java @@ -0,0 +1,71 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance.plugin; + +import org.gephi.appearance.api.Ranking; +import org.gephi.appearance.spi.Transformer; +import org.gephi.graph.api.Node; +import org.openide.util.lookup.ServiceProvider; + +/** + * @author mbastian + */ +@ServiceProvider(service = Transformer.class) +public class RankingNodeSizeTransformer extends RankingSizeTransformer { + + @Override + public void transform(Node node, Ranking ranking, Number value, float normalisedValue) { + float size = normalisedValue * (maxSize - minSize) + minSize; + node.setSize(size); + } + + @Override + public boolean isNode() { + return true; + } + + @Override + public boolean isEdge() { + return false; + } +} diff --git a/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/RankingSizeTransformer.java b/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/RankingSizeTransformer.java new file mode 100644 index 0000000000..04aa140edb --- /dev/null +++ b/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/RankingSizeTransformer.java @@ -0,0 +1,26 @@ +package org.gephi.appearance.plugin; + +import org.gephi.appearance.spi.RankingTransformer; +import org.gephi.graph.api.Element; + +public abstract class RankingSizeTransformer implements RankingTransformer { + + protected float minSize = 1f; + protected float maxSize = 4f; + + public float getMaxSize() { + return maxSize; + } + + public void setMaxSize(float maxSize) { + this.maxSize = maxSize; + } + + public float getMinSize() { + return minSize; + } + + public void setMinSize(float minSize) { + this.minSize = minSize; + } +} diff --git a/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/UniqueElementColorTransformer.java b/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/UniqueElementColorTransformer.java new file mode 100644 index 0000000000..12a1748659 --- /dev/null +++ b/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/UniqueElementColorTransformer.java @@ -0,0 +1,71 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance.plugin; + +import org.gephi.appearance.spi.SimpleTransformer; +import org.gephi.appearance.spi.Transformer; +import org.gephi.graph.api.Element; +import org.openide.util.lookup.ServiceProvider; + +/** + * @author mbastian + */ +@ServiceProvider(service = Transformer.class) +public class UniqueElementColorTransformer extends AbstractUniqueColorTransformer + implements SimpleTransformer { + + @Override + public void transform(Element element) { + element.setColor(color); + } + + @Override + public boolean isNode() { + return true; + } + + @Override + public boolean isEdge() { + return true; + } +} diff --git a/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/UniqueLabelColorTransformer.java b/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/UniqueLabelColorTransformer.java new file mode 100644 index 0000000000..3765545e60 --- /dev/null +++ b/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/UniqueLabelColorTransformer.java @@ -0,0 +1,70 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance.plugin; + +import org.gephi.appearance.spi.SimpleTransformer; +import org.gephi.appearance.spi.Transformer; +import org.gephi.graph.api.Element; +import org.openide.util.lookup.ServiceProvider; + +/** + * @author mbastian + */ +@ServiceProvider(service = Transformer.class) +public class UniqueLabelColorTransformer extends AbstractUniqueColorTransformer implements SimpleTransformer { + + @Override + public void transform(Element element) { + element.getTextProperties().setColor(color); + } + + @Override + public boolean isNode() { + return true; + } + + @Override + public boolean isEdge() { + return true; + } +} diff --git a/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/UniqueLabelSizeTransformer.java b/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/UniqueLabelSizeTransformer.java new file mode 100644 index 0000000000..0e93dbb9fc --- /dev/null +++ b/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/UniqueLabelSizeTransformer.java @@ -0,0 +1,70 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance.plugin; + +import org.gephi.appearance.spi.SimpleTransformer; +import org.gephi.appearance.spi.Transformer; +import org.gephi.graph.api.Element; +import org.openide.util.lookup.ServiceProvider; + +/** + * @author mbastian + */ +@ServiceProvider(service = Transformer.class) +public class UniqueLabelSizeTransformer extends AbstractUniqueSizeTransformer implements SimpleTransformer { + + @Override + public void transform(Element element) { + element.getTextProperties().setSize(size); + } + + @Override + public boolean isNode() { + return true; + } + + @Override + public boolean isEdge() { + return true; + } +} diff --git a/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/UniqueNodeSizeTransformer.java b/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/UniqueNodeSizeTransformer.java new file mode 100644 index 0000000000..074de682ae --- /dev/null +++ b/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/UniqueNodeSizeTransformer.java @@ -0,0 +1,75 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance.plugin; + +import org.gephi.appearance.spi.SimpleTransformer; +import org.gephi.appearance.spi.Transformer; +import org.gephi.graph.api.Node; +import org.openide.util.lookup.ServiceProvider; + +/** + * @author mbastian + */ +@ServiceProvider(service = Transformer.class) +public class UniqueNodeSizeTransformer extends AbstractUniqueSizeTransformer implements SimpleTransformer { + + public UniqueNodeSizeTransformer() { + super(); + size = 10f; + } + + @Override + public void transform(Node node) { + node.setSize(size); + } + + @Override + public boolean isNode() { + return true; + } + + @Override + public boolean isEdge() { + return false; + } +} diff --git a/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/palette/Palette.java b/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/palette/Palette.java new file mode 100644 index 0000000000..fff226214a --- /dev/null +++ b/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/palette/Palette.java @@ -0,0 +1,103 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance.plugin.palette; + +import java.awt.Color; +import java.util.Arrays; + +/** + * @author mbastian + */ +public class Palette { + + private final String name; + private final Color[] colors; + + public Palette(Color[] colors) { + this(null, colors); + } + + public Palette(String name, Color[] colors) { + this.colors = colors; + this.name = name; + } + + public Color[] getColors() { + return colors; + } + + public String getName() { + return name; + } + + public int size() { + return colors.length; + } + + @Override + public int hashCode() { + int hash = 7; + hash = 29 * hash + (this.name != null ? this.name.hashCode() : 0); + hash = 29 * hash + Arrays.deepHashCode(this.colors); + return hash; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final Palette other = (Palette) obj; + if ((this.name == null) ? (other.name != null) : !this.name.equals(other.name)) { + return false; + } + return Arrays.deepEquals(this.colors, other.colors); + } + +} diff --git a/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/palette/PaletteGenerator.java b/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/palette/PaletteGenerator.java new file mode 100644 index 0000000000..c8e9b72917 --- /dev/null +++ b/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/palette/PaletteGenerator.java @@ -0,0 +1,360 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance.plugin.palette; + +import java.awt.Color; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.LinkedList; +import java.util.List; +import java.util.Random; + +/** + * @author mbastian + */ +public class PaletteGenerator { + + private static final float[] DEFAULT_FILTER = new float[] {0, 360, 0, 3, 0, 1.5f}; + + public static Color[] generatePalette(int colorsCount, int quality) { + return generatePalette(colorsCount, quality, false, null, null); + } + + public static Color[] generatePalette(int colorsCount, int quality, Random random) { + return generatePalette(colorsCount, quality, false, random, null); + } + + public static Color[] generatePalette(int colorsCount, int quality, float[] filter) { + return generatePalette(colorsCount, quality, false, null, filter); + } + + public static Color[] generatePalette(int colorsCount, int quality, boolean ultraPrecision, Random random, + float[] filter) { + if (filter == null) { + filter = DEFAULT_FILTER; + } + if (random == null) { + random = new Random(); + } + + double[][] kMeans = generateRandomKmeans(colorsCount, random, filter); + + List colorSamples = new ArrayList<>(); + if (ultraPrecision) { + for (double l = 0; l <= 1; l += 0.01) { + for (double a = -1; a <= 1; a += 0.05) { + for (double b = -1; b <= 1; b += 0.05) { + if (checkColor2(l, a, b, filter)) { + colorSamples.add(new double[] {l, a, b}); + } + } + } + } + } else { + for (double l = 0; l <= 1; l += 0.05) { + for (double a = -1; a <= 1; a += 0.1) { + for (double b = -1; b <= 1; b += 0.1) { + if (checkColor2(l, a, b, filter)) { + colorSamples.add(new double[] {l, a, b}); + } + } + } + } + } + + // Steps + int[] samplesClosest = new int[colorSamples.size()]; + int steps = quality; + while (steps-- > 0) { + // kMeans -> Samples Closest + for (int i = 0; i < colorSamples.size(); i++) { + double[] lab = colorSamples.get(i); + double minDistance = 1000000; + for (int j = 0; j < kMeans.length; j++) { + double[] kMean = kMeans[j]; + double distance = Math.sqrt(Math.pow(lab[0] - kMean[0], 2) + Math.pow(lab[1] - kMean[1], 2) + + Math.pow(lab[2] - kMean[2], 2)); + if (distance < minDistance) { + minDistance = distance; + samplesClosest[i] = j; + } + } + } + + // Samples -> kMeans + List freeColorSamples = colorSamples; + for (int j = 0; j < kMeans.length; j++) { + int count = 0; + double[] candidateKMean = new double[] {0, 0, 0}; + for (int i = 0; i < colorSamples.size(); i++) { + if (samplesClosest[i] == j) { + count++; + double[] colorSample = colorSamples.get(i); + candidateKMean[0] += colorSample[0]; + candidateKMean[1] += colorSample[1]; + candidateKMean[2] += colorSample[2]; + } + } + if (count != 0) { + candidateKMean[0] /= count; + candidateKMean[1] /= count; + candidateKMean[2] /= count; + } + + if (count != 0 && checkColor2(candidateKMean[0], candidateKMean[1], candidateKMean[2], filter)) { + kMeans[j] = candidateKMean; + } else // The candidate kMean is out of the boundaries of the color space, or unfound. + if (freeColorSamples.size() > 0) { + // We just search for the closest FREE color of the candidate kMean + double minDistance = 10000000000.0; + int closest = -1; + for (int i = 0; i < freeColorSamples.size(); i++) { + double distance = Math.sqrt(Math.pow(freeColorSamples.get(i)[0] - candidateKMean[0], 2) + + Math.pow(freeColorSamples.get(i)[1] - candidateKMean[1], 2) + + Math.pow(freeColorSamples.get(i)[2] - candidateKMean[2], 2)); + if (distance < minDistance) { + minDistance = distance; + closest = i; + } + } + kMeans[j] = colorSamples.get(closest); + + } else { + // Then we just search for the closest color of the candidate kMean + double minDistance = 10000000000.0; + int closest = -1; + for (int i = 0; i < colorSamples.size(); i++) { + double distance = Math.sqrt(Math.pow(colorSamples.get(i)[0] - candidateKMean[0], 2) + + Math.pow(colorSamples.get(i)[1] - candidateKMean[1], 2) + + Math.pow(colorSamples.get(i)[2] - candidateKMean[2], 2)); + if (distance < minDistance) { + minDistance = distance; + closest = i; + } + } + kMeans[j] = colorSamples.get(closest); + } + List newFreeColorSamples = new ArrayList<>(); + for (double[] color : freeColorSamples) { + double[] kMean = kMeans[j]; + if (color[0] != kMean[0] + || color[1] != kMean[1] + || color[2] != kMean[2]) { + newFreeColorSamples.add(color); + } + } + freeColorSamples = newFreeColorSamples; + } + } + kMeans = sortColors(kMeans); + Color[] res = new Color[kMeans.length]; + for (int i = 0; i < kMeans.length; i++) { + double[] kmean = kMeans[i]; + int[] rgb = lab2rgb(kmean[0], kmean[1], kmean[2]); + res[i] = new Color(rgb[0], rgb[1], rgb[2]); + } + return res; + } + + private static double[][] generateRandomKmeans(int colorsCount, Random random, float[] filter) { + double[][] kMeans = new double[colorsCount][]; + for (int i = 0; i < colorsCount; i++) { + double[] lab = new double[] {random.nextDouble(), 2 * random.nextDouble() - 1, 2 * random.nextDouble() - 1}; + while (!checkColor2(lab, filter)) { + lab = new double[] {random.nextDouble(), 2 * random.nextDouble() - 1, 2 * random.nextDouble() - 1}; + } + kMeans[i] = lab; + } + return kMeans; + } + + private static double[][] sortColors(double[][] colors) { + LinkedList colorsToSort = new LinkedList<>(Arrays.asList(colors)); + List diffColors = new ArrayList<>(); + diffColors.add(colorsToSort.pop()); + while (colorsToSort.size() > 0) { + int index = -1; + double maxDistance = -1; + for (int candidate_index = 0; candidate_index < colorsToSort.size(); candidate_index++) { + double d = 1000000000; + for (int i = 0; i < diffColors.size(); i++) { + double[] colorA = colorsToSort.get(candidate_index); + double[] colorB = diffColors.get(i); + double dl = colorA[0] - colorB[0]; + double da = colorA[1] - colorB[1]; + double db = colorA[2] - colorB[2]; + d = Math.min(d, Math.sqrt(Math.pow(dl, 2) + Math.pow(da, 2) + Math.pow(db, 2))); + } + if (d > maxDistance) { + maxDistance = d; + index = candidate_index; + } + } + double[] color = colorsToSort.get(index); + diffColors.add(color); + colorsToSort.remove(index); + } + double[][] res = new double[diffColors.size()][]; + for (int i = 0; i < diffColors.size(); i++) { + res[i] = diffColors.get(i); + } + return res; + } + + private static boolean checkColor2(double[] lab, float[] filter) { + return checkColor2(lab[0], lab[1], lab[2], filter); + } + + private static boolean checkColor2(double l, double a, double b, float[] filter) { + int[] rgb = lab2rgb(l, a, b); + double[] hcl = lab2hcl(l, a, b); + // Check that a color is valid: it must verify our checkColor condition, but also be in the color space + return !Double.isNaN(rgb[0]) && rgb[0] >= 0 && rgb[1] >= 0 + && rgb[2] >= 0 && rgb[0] < 256 && rgb[1] < 256 && rgb[2] < 256 + && (filter[0] < filter[1] ? (hcl[0] >= filter[0] && hcl[0] <= filter[1]) : + (hcl[0] >= filter[0] || hcl[0] <= filter[1])) + && hcl[1] >= filter[2] && hcl[1] <= filter[3] + && hcl[2] >= filter[4] && hcl[2] <= filter[5]; + } + + private static int[] lab2rgb(double l, double a, double b) { + double[] xyz = lab2xyz(l, a, b); + return xyz2rgb(xyz[0], xyz[1], xyz[2]); + } + + private static double[] lab2xyz(double l, double a, double b) { + double sl = (l + 0.16) / 1.16; + double[] ill = new double[] {0.96421, 1.00000, 0.82519}; + double y = ill[1] * finv(sl); + double x = ill[0] * finv(sl + (a / 5.0)); + double z = ill[2] * finv(sl - (b / 2.0)); + return new double[] {x, y, z}; + } + + private static int[] xyz2rgb(double x, double y, double z) { + double rl = 3.2406 * x - 1.5372 * y - 0.4986 * z; + double gl = -0.9689 * x + 1.8758 * y + 0.0415 * z; + double bl = 0.0557 * x - 0.2040 * y + 1.0570 * z; + boolean clip = Math.min(rl, Math.min(gl, bl)) < -0.001 || Math.max(rl, Math.max(gl, bl)) > 1.001; + if (clip) { + rl = rl < 0.0 ? 0.0 : rl > 1.0 ? 1.0 : rl; + gl = gl < 0.0 ? 0.0 : gl > 1.0 ? 1.0 : gl; + bl = bl < 0.0 ? 0.0 : bl > 1.0 ? 1.0 : bl; + } + int r = (int) Math.round(255.0 * correct1(rl)); + int g = (int) Math.round(255.0 * correct1(gl)); + int b = (int) Math.round(255.0 * correct1(bl)); + return new int[] {r, g, b}; + } + + private static double[] rgb2lab(int r, int g, int b) { + double[] xyz = rgb2xyz(r, g, b); + return xyz2lab(xyz[0], xyz[1], xyz[2]); + } + + private static double[] rgb2xyz(int r, int g, int b) { + double rl = correct2(r / 255.0); + double gl = correct2(g / 255.0); + double bl = correct2(b / 255.0); + double x = 0.4124 * rl + 0.3576 * gl + 0.1805 * bl; + double y = 0.2126 * rl + 0.7152 * gl + 0.0722 * bl; + double z = 0.0193 * rl + 0.1192 * gl + 0.9505 * bl; + return new double[] {x, y, z}; + } + + private static double[] xyz2lab(double x, double y, double z) { + double[] ill = new double[] {0.96421, 1.00000, 0.82519}; + double l = 1.16 * flab(y / ill[1]) - 0.16; + double a = 5 * (flab(x / ill[0]) - flab(y / ill[1])); + double b = 2 * (flab(y / ill[1]) - flab(z / ill[2])); + return new double[] {l, a, b}; + } + + private static double[] lab2hcl(double l, double a, double b) { + l = (l - 0.09) / 0.61; + double r = Math.sqrt(a * a + b * b); + double s = r / (l * 0.311 + 0.125); + double TAU = 6.283185307179586476925287; + double angle = Math.atan2(a, b); + double c = (TAU / 6.0 - angle) / TAU; + c *= 360; + if (c < 0) { + c += 360; + } + return new double[] {c, s, l}; + } + + private static double finv(double t) { + if (t > (6.0 / 29.0)) { + return t * t * t; + } else { + return 3 * (6.0 / 29.0) * (6.0 / 29.0) * (t - 4.0 / 29.0); + } + } + + private static double flab(double t) { + if (t > Math.pow(6.0 / 29.0, 3)) { + return Math.pow(t, 1.0 / 3.0); + } else { + return (1.0 / 3.0) * (29.0 / 6.0) * (29.0 / 6.0) * t + 4.0 / 29.0; + } + } + + private static double correct1(double cl) { + double a = 0.055; + if (cl <= 0.0031308) { + return 12.92 * cl; + } else { + return (1 + a) * Math.pow(cl, 1.0 / 2.4) - a; + } + } + + private static double correct2(double c) { + double a = 0.055; + if (c <= 0.04045) { + return c / 12.92; + } else { + return Math.pow((c + a) / (1.0 + a), 2.4); + } + } +} diff --git a/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/palette/PaletteManager.java b/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/palette/PaletteManager.java new file mode 100644 index 0000000000..4c2d39ed6a --- /dev/null +++ b/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/palette/PaletteManager.java @@ -0,0 +1,307 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance.plugin.palette; + +import java.awt.Color; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.LineNumberReader; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.LinkedList; +import java.util.List; +import java.util.Random; +import java.util.prefs.BackingStoreException; +import java.util.prefs.Preferences; +import org.openide.util.Exceptions; +import org.openide.util.NbPreferences; + +/** + * @author mbastian + */ +public class PaletteManager { + + public static final String COLORS = "PaletteColors"; + private final static int RECENT_PALETTE_SIZE = 5; + private static final String NODE_NAME = "recentpartitionpalettes"; + private static PaletteManager instance; + private final List presets; + private final Collection defaultPalettes; + private final LinkedList recentPalette; + private final Color DEFAULT_COLOR = Color.LIGHT_GRAY; + + private PaletteManager() { + presets = loadPresets(); + defaultPalettes = loadDefaultPalettes(); + recentPalette = new LinkedList<>(); + retrieve(); + } + + public synchronized static PaletteManager getInstance() { + if (instance == null) { + instance = new PaletteManager(); + } + return instance; + } + + private static Collection loadDefaultPalettes() { + try { + return loadPalettes("palette_default.csv"); + } catch (IOException ex) { + Exceptions.printStackTrace(ex); + } + return Collections.emptyList(); + } + + private static Collection loadPalettes(String fileName) throws IOException { + List> palettes = new ArrayList<>(); + try (LineNumberReader reader = + new LineNumberReader(new InputStreamReader(PaletteManager.class.getResourceAsStream(fileName)))) { + String line; + while ((line = reader.readLine()) != null) { + List palette = new ArrayList<>(); + String[] split = line.split(","); + for (String colorStr : split) { + if (!colorStr.isEmpty()) { + palette.add(parseHexColor(colorStr.trim())); + } + } + if (!palette.isEmpty()) { + palettes.add(palette); + } + } + } + List result = new ArrayList<>(); + for (List cls : palettes) { + Palette plt = new Palette(cls.toArray(new Color[0])); + result.add(plt); + } + return result; + } + + private static Color parseHexColor(String hexColor) { + int rgb = Integer.parseInt(hexColor.replaceFirst("#", ""), 16); + return new Color(rgb); + } + + public Palette randomPalette(int colorCount) { + List colors = new ArrayList<>(); + + Random random = new Random(); + float B = random.nextFloat() * 2 / 5f + 0.6f; + float S = random.nextFloat() * 2 / 5f + 0.6f; + + for (int i = 1; i <= colorCount; i++) { + float H = i / (float) colorCount; + Color c = Color.getHSBColor(H, S, B); + colors.add(c); + } + + Collections.shuffle(colors); + + return new Palette(colors.toArray(new Color[0])); + } + + public Palette generatePalette(int colorCount) { + return generatePalette(colorCount, null); + } + + public int getGeneratePaletteQuality(int colorCount) { + var quality = 50; + if (colorCount > 300) { + quality = 2; + } else if (colorCount > 200) { + quality = 5; + } else if (colorCount > 100) { + quality = 10; + } else if (colorCount > 50) { + quality = 25; + } + return quality; + } + + public Palette generatePalette(int colorCount, Preset preset) { + int quality = getGeneratePaletteQuality(colorCount); + Color[] cls = PaletteGenerator.generatePalette(colorCount, quality, preset != null ? preset.toArray() : null); + return new Palette(cls); + } + + public Collection getPresets() { + return presets; + } + + public Preset getPreset(String name) { + return presets.stream().filter(p -> p.getName().equals(name)).findFirst().orElse(null); + } + + public Collection getDefaultPalette(int colorCount) { + List palettes = new ArrayList<>(); + for (Palette p : defaultPalettes) { + if (p.size() == colorCount) { + palettes.add(p); + } else if (p.size() < colorCount) { + Color[] cols = Arrays.copyOf(p.getColors(), colorCount); + for (int i = p.size(); i < cols.length; i++) { + cols[i] = DEFAULT_COLOR; + } + palettes.add(new Palette(cols)); + } else { + // p.size() > colorCount: truncate to the requested size + Color[] cols = Arrays.copyOf(p.getColors(), colorCount); + palettes.add(new Palette(cols)); + } + } + Collections.reverse(palettes); + return palettes; + } + + public void addRecentPalette(Palette palette) { + if (!recentPalette.isEmpty() && recentPalette.getFirst().equals(palette)) { + return; + } + recentPalette.remove(palette); + if (recentPalette.size() >= RECENT_PALETTE_SIZE) { + recentPalette.removeLast(); + } + recentPalette.addFirst(palette); + store(); + } + + public Collection getRecentPalettes() { + return recentPalette; + } + + private List loadPresets() { + List presetList = new ArrayList<>(); + try (LineNumberReader reader = new LineNumberReader( + new InputStreamReader(PaletteManager.class.getResourceAsStream("palette_presets.csv")))) { + reader.readLine(); + String line; + while ((line = reader.readLine()) != null) { + String[] split = line.split(","); + //name,dark,hmin,hmax,cmin,cmax,lmin,lmax + String name = split[0]; + boolean dark = Boolean.parseBoolean(split[1]); + int hMin = Integer.parseInt(split[2]); + int hMax = Integer.parseInt(split[3]); + float cMin = Float.parseFloat(split[4]); + float cMax = Float.parseFloat(split[5]); + float lMin = Float.parseFloat(split[6]); + float lMax = Float.parseFloat(split[7]); + presetList.add(new Preset(name, dark, hMin, hMax, cMin, cMax, lMin, lMax)); + } + } catch (IOException ex) { + Exceptions.printStackTrace(ex); + } + return presetList; + } + + private void retrieve() { + recentPalette.clear(); + Preferences prefs = getPreferences(); + + for (int i = 0; i < RECENT_PALETTE_SIZE; i++) { + byte[] cols = prefs.getByteArray(COLORS + i, null); + if (cols != null) { + try { + Color[] colors = deserializeColors(cols); + recentPalette.addLast(new Palette(colors)); + } catch (Exception e) { + Exceptions.printStackTrace(e); + } + } + } + } + + private void store() { + Preferences prefs = getPreferences(); + + // clear the backing store + try { + prefs.clear(); + } catch (BackingStoreException ex) { + } + + int i = 0; + for (Palette palette : recentPalette) { + try { + prefs.putByteArray(COLORS + i, serializeColors(palette.getColors())); + } catch (Exception e) { + Exceptions.printStackTrace(e); + } + i++; + } + } + + private byte[] serializeColors(Color[] colors) throws Exception { + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + try (ObjectOutputStream out = new ObjectOutputStream(bos)) { + out.writeObject(colors); + } + return bos.toByteArray(); + } + + private Color[] deserializeColors(byte[] colors) throws Exception { + ByteArrayInputStream bis = new ByteArrayInputStream(colors); + Color[] array; + try (ObjectInputStream in = new ObjectInputStream(bis)) { + array = (Color[]) in.readObject(); + } + return array; + } + + /** + * Return the backing store Preferences + * + * @return Preferences + */ + protected final Preferences getPreferences() { + return NbPreferences.forModule(this.getClass()).node("options").node(NODE_NAME); + } +} diff --git a/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/palette/Preset.java b/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/palette/Preset.java new file mode 100644 index 0000000000..5d05d9984b --- /dev/null +++ b/modules/AppearancePlugin/src/main/java/org/gephi/appearance/plugin/palette/Preset.java @@ -0,0 +1,110 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.appearance.plugin.palette; + +/** + * @author mbastian + */ +public class Preset { + + private final String name; + private final boolean dark; + private final int hMin; + private final int hMax; + private final float cMin; + private final float cMax; + private final float lMin; + private final float lMax; + + public Preset(String name, boolean dark, int hMin, int hMax, float cMin, float cMax, float lMin, float lMax) { + this.name = name; + this.dark = dark; + this.hMin = hMin; + this.hMax = hMax; + this.cMin = cMin; + this.cMax = cMax; + this.lMin = lMin; + this.lMax = lMax; + } + + public String getName() { + return name; + } + + public boolean isDark() { + return dark; + } + + public int gethMin() { + return hMin; + } + + public int gethMax() { + return hMax; + } + + public float getcMin() { + return cMin; + } + + public float getcMax() { + return cMax; + } + + public float getlMin() { + return lMin; + } + + public float getlMax() { + return lMax; + } + + public float[] toArray() { + return new float[] {hMin, hMax, cMin, cMax, lMin, lMax}; + } + + @Override + public String toString() { + return name; + } +} diff --git a/modules/AppearancePlugin/src/main/nbm/manifest.mf b/modules/AppearancePlugin/src/main/nbm/manifest.mf new file mode 100644 index 0000000000..d303b95330 --- /dev/null +++ b/modules/AppearancePlugin/src/main/nbm/manifest.mf @@ -0,0 +1,6 @@ +Manifest-Version: 1.0 +AutoUpdate-Essential-Module: true +OpenIDE-Module-Localizing-Bundle: org/gephi/appearance/plugin/Bundle.properties +OpenIDE-Module-Specification-Version: ${gephi.modules.specification.version} +OpenIDE-Module-Display-Category: Plugin +OpenIDE-Module-Name: Appearance Plugin \ No newline at end of file diff --git a/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle.properties b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle.properties new file mode 100644 index 0000000000..c80cc7994b --- /dev/null +++ b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle.properties @@ -0,0 +1 @@ +OpenIDE-Module-Short-Description=Partition transformers implementations with UI \ No newline at end of file diff --git a/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_ar.properties b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_ar.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_ar.properties @@ -0,0 +1 @@ + diff --git a/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_ca.properties b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_ca.properties new file mode 100644 index 0000000000..0d650029fa --- /dev/null +++ b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_ca.properties @@ -0,0 +1 @@ +OpenIDE-Module-Short-Description=Partition transformers implementations with UI diff --git a/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_cs.properties b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_cs.properties new file mode 100644 index 0000000000..f5a9223f97 --- /dev/null +++ b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_cs.properties @@ -0,0 +1 @@ +OpenIDE-Module-Short-Description=Zavedenν transformαtor\u016f oddνlu s rozhranνm diff --git a/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_de.properties b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_de.properties new file mode 100644 index 0000000000..96a554d8fc --- /dev/null +++ b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_de.properties @@ -0,0 +1 @@ +OpenIDE-Module-Short-Description=Partitionierungs-Transformatoren Implementierungen inkl. UI diff --git a/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_es.properties b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_es.properties new file mode 100644 index 0000000000..245c672524 --- /dev/null +++ b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_es.properties @@ -0,0 +1 @@ +OpenIDE-Module-Short-Description=Implementaciσn de los transformadores de particiσn con interfaz de usuario diff --git a/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_fr.properties b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_fr.properties new file mode 100644 index 0000000000..62fce624c0 --- /dev/null +++ b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_fr.properties @@ -0,0 +1 @@ +OpenIDE-Module-Short-Description=Impl\u00E9mentation et interface utilisateur des transformeurs de partition diff --git a/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_he.properties b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_he.properties new file mode 100644 index 0000000000..b77d62a9c0 --- /dev/null +++ b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_he.properties @@ -0,0 +1 @@ +OpenIDE-Module-Short-Description=\u05de\u05d9\u05de\u05d5\u05e9\u05d9 \u05de\u05de\u05e8\u05d9 \u05d7\u05dc\u05d5\u05e7\u05d4 \u05e2\u05dd \u05de\u05e0\u05e9\u05e7 \u05de\u05e9\u05ea\u05de\u05e9 diff --git a/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_hu.properties b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_hu.properties new file mode 100644 index 0000000000..75c42b294a --- /dev/null +++ b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_hu.properties @@ -0,0 +1,3 @@ + + +OpenIDE-Module-Short-Description=Part\u00EDci\u00F3 transzform\u00E1torok megval\u00F3s\u00EDt\u00E1sa felhaszn\u00E1l\u00F3i fel\u00FClettel diff --git a/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_it.properties b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_it.properties new file mode 100644 index 0000000000..0d650029fa --- /dev/null +++ b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_it.properties @@ -0,0 +1 @@ +OpenIDE-Module-Short-Description=Partition transformers implementations with UI diff --git a/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_ja.properties b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_ja.properties new file mode 100644 index 0000000000..1f5fed43c7 --- /dev/null +++ b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_ja.properties @@ -0,0 +1 @@ +OpenIDE-Module-Short-Description=UI\u3092\u6301\u3064\u30d1\u30fc\u30c6\u30a3\u30b7\u30e7\u30f3\u30c8\u30e9\u30f3\u30b9\u30d5\u30a9\u30fc\u30de\u306e\u5b9f\u88c5 diff --git a/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_ko.properties b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_ko.properties new file mode 100644 index 0000000000..3377323960 --- /dev/null +++ b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_ko.properties @@ -0,0 +1,3 @@ + + +OpenIDE-Module-Short-Description=UI\uB97C \uC0AC\uC6A9\uD55C \uD30C\uD2F0\uC158 \uBCC0\uD658\uAE30 \uAD6C\uD604 diff --git a/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_nl.properties b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_nl.properties new file mode 100644 index 0000000000..0d650029fa --- /dev/null +++ b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_nl.properties @@ -0,0 +1 @@ +OpenIDE-Module-Short-Description=Partition transformers implementations with UI diff --git a/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_pt.properties b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_pt.properties new file mode 100644 index 0000000000..40fc143d9b --- /dev/null +++ b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_pt.properties @@ -0,0 +1 @@ +OpenIDE-Module-Short-Description=Implementa\u00E7\u00F5es de transformadores de parti\u00E7\u00E3o com interfaces de utilizador diff --git a/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_pt_BR.properties b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_pt_BR.properties new file mode 100644 index 0000000000..67e108a3e9 --- /dev/null +++ b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_pt_BR.properties @@ -0,0 +1 @@ +OpenIDE-Module-Short-Description=Implementaηυes de transformadores de partiηγo com interfaces de usuαrio diff --git a/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_ro.properties b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_ro.properties new file mode 100644 index 0000000000..64bf1fc342 --- /dev/null +++ b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_ro.properties @@ -0,0 +1,3 @@ + + +OpenIDE-Module-Short-Description=Implement\u0103ri de transformatoare de parti\u021Bii cu interfa\u021B\u0103 diff --git a/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_ru.properties b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_ru.properties new file mode 100644 index 0000000000..0d650029fa --- /dev/null +++ b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_ru.properties @@ -0,0 +1 @@ +OpenIDE-Module-Short-Description=Partition transformers implementations with UI diff --git a/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_th.properties b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_th.properties new file mode 100644 index 0000000000..f7273cb6fb --- /dev/null +++ b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_th.properties @@ -0,0 +1 @@ +OpenIDE-Module-Short-Description=\u0E2A\u0E48\u0E27\u0E19\u0E01\u0E32\u0E23\u0E41\u0E1B\u0E25\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E1E\u0E32\u0E23\u0E4C\u0E17\u0E34\u0E0A\u0E31\u0E19\u0E1E\u0E23\u0E49\u0E2D\u0E21\u0E2A\u0E48\u0E27\u0E19\u0E15\u0E48\u0E2D\u0E1B\u0E23\u0E30\u0E2A\u0E32\u0E19\u0E01\u0E31\u0E1A\u0E1C\u0E39\u0E49\u0E43\u0E0A\u0E49 diff --git a/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_tr.properties b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_tr.properties new file mode 100644 index 0000000000..f1e21b5abc --- /dev/null +++ b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_tr.properties @@ -0,0 +1 @@ +OpenIDE-Module-Short-Description=Arayόz ile partisyon ηevirim uygulamalar\u0131 diff --git a/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_uk.properties b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_uk.properties new file mode 100644 index 0000000000..8f7c9e2b82 --- /dev/null +++ b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_uk.properties @@ -0,0 +1 @@ +OpenIDE-Module-Short-Description=\u0420\u0435\u0430\u043B\u0456\u0437\u0430\u0446\u0456\u0457 \u0442\u0440\u0430\u043D\u0441\u0444\u043E\u0440\u043C\u0430\u0442\u043E\u0440\u0456\u0432 \u0440\u043E\u0437\u0434\u0456\u043B\u0456\u0432 \u0437 \u0456\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043E\u043C \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 diff --git a/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_zh_CN.properties b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_zh_CN.properties new file mode 100644 index 0000000000..991cca1387 --- /dev/null +++ b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_zh_CN.properties @@ -0,0 +1 @@ +OpenIDE-Module-Short-Description=\u5206\u533a\u8f6c\u6362\u5668\u5b9e\u73b0\u754c\u9762 diff --git a/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_zh_TW.properties b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_zh_TW.properties new file mode 100644 index 0000000000..5e1a6d54d8 --- /dev/null +++ b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/Bundle_zh_TW.properties @@ -0,0 +1 @@ +OpenIDE-Module-Short-Description=\u5340\u6bb5\u8f49\u63db\u5668\u4ecb\u9762 diff --git a/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/palette/palette_default.csv b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/palette/palette_default.csv new file mode 100644 index 0000000000..fc85b893ab --- /dev/null +++ b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/palette/palette_default.csv @@ -0,0 +1,7 @@ +#F1087B,#5FA5FD +#06BB1B,#E72094,#D3A207 +#9183E2,#E7663B,#67A030,#E558B2 +#F05252,#62A131,#8985E1,#E25BBD,#D87823 +#C9821C,#7D77CE,#69C73F,#D44443,#CE51A9,#5D8D2B +#D06D20,#C364D7,#59BF42,#D4404A,#6E7ACA,#CA4B93,#7E9321 +#6E7ACA,#5BC344,#D64E2B,#C94992,#C78A1C,#C465D6,#D14058,#699025 \ No newline at end of file diff --git a/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/palette/palette_presets.csv b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/palette/palette_presets.csv new file mode 100644 index 0000000000..c885bed161 --- /dev/null +++ b/modules/AppearancePlugin/src/main/resources/org/gephi/appearance/plugin/palette/palette_presets.csv @@ -0,0 +1,18 @@ +name,dark,hmin,hmax,cmin,cmax,lmin,lmax +Default,FALSE,0,360,0,3,0,1.5 +Fancy (light background),FALSE,0,360,0.4,1.2,1,1.5 +Fancy (dark background),TRUE,0,360,0.2,1.2,0.1,0.6 +Shades,FALSE,0,240,0,0.4,0,1.5 +Tarnish,FALSE,0,360,0,0.4,0.4,1.1 +Pastel,FALSE,0,360,0,0.9,1,1.5 +Pimp,FALSE,0,360,0.9,3,0.4,1 +Intense,FALSE,0,360,0.6,3,0.2,1.1 +Fluo,TRUE,0,300,1,3,1.1,1.5 +Red Roses,TRUE,330,20,0.3,3,0.5,1.5 +Ochre Sand,TRUE,20,60,0.3,1.6,0.5,1.5 +Yellow Lime,TRUE,60,90,0.3,3,0.5,1.5 +Green Mint,TRUE,90,150,0.3,3,0.5,1.5 +Ice Cube,TRUE,150,200,0,3,0.5,1.5 +Blue Ocean,TRUE,220,260,0.2,2.5,0,0.8 +Indigo Night,TRUE,260,290,1.2,3,0.5,1.5 +Purple Wine,TRUE,290,330,0,3,0,0.6 \ No newline at end of file diff --git a/modules/AppearancePlugin/src/test/java/PaletteTest.java b/modules/AppearancePlugin/src/test/java/PaletteTest.java new file mode 100644 index 0000000000..b9ccac7660 --- /dev/null +++ b/modules/AppearancePlugin/src/test/java/PaletteTest.java @@ -0,0 +1,29 @@ +import java.util.HashMap; +import java.util.Map; +import org.gephi.appearance.plugin.palette.PaletteManager; +import org.junit.Assert; +import org.junit.Test; + +public class PaletteTest { + @Test + public void testPalette() { + PaletteManager paletteManager = PaletteManager.getInstance(); + + // input parameter, expected result + Map testCases = new HashMap<>(); + testCases.put(400, 2); + testCases.put(300, 5); + testCases.put(250, 5); + testCases.put(200, 10); + testCases.put(150, 10); + testCases.put(100, 25); + testCases.put(75, 25); + testCases.put(50, 50); + testCases.put(10, 50); + + for (Map.Entry test : testCases.entrySet()) { + Integer result = paletteManager.getGeneratePaletteQuality(test.getKey()); + Assert.assertEquals(test.getValue(), result); + } + } +} diff --git a/modules/AppearancePluginUI/pom.xml b/modules/AppearancePluginUI/pom.xml new file mode 100644 index 0000000000..c1a1d0541a --- /dev/null +++ b/modules/AppearancePluginUI/pom.xml @@ -0,0 +1,83 @@ + + + 4.0.0 + + gephi-parent + org.gephi + 0.11.3-SNAPSHOT + ../.. + + + org.gephi + appearance-plugin-ui + 0.11.3-SNAPSHOT + nbm + + AppearancePluginUI + + + + org.netbeans.api + org-openide-util-lookup + + + org.netbeans.api + org-openide-util + + + org-openide-dialogs + org.netbeans.api + + + ${project.groupId} + graph-api + + + ${project.groupId} + appearance-api + + + ${project.groupId} + desktop-icons + + + ${project.groupId} + appearance-plugin + + + ${project.groupId} + utils + + + ${project.groupId} + ui-utils + + + ${project.groupId} + ui-components + + + ${project.groupId} + ui-library-wrapper + + + org.netbeans.api + org-openide-util-ui + + + + + + + org.apache.netbeans.utilities + nbm-maven-plugin + + + org.gephi.ui.appearance.plugin.category + org.gephi.ui.appearance.plugin + + + + + + diff --git a/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/PartitionColorTransformerPanel.form b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/PartitionColorTransformerPanel.form new file mode 100644 index 0000000000..983b23fb4a --- /dev/null +++ b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/PartitionColorTransformerPanel.form @@ -0,0 +1,69 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/PartitionColorTransformerPanel.java b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/PartitionColorTransformerPanel.java new file mode 100644 index 0000000000..06249dc04a --- /dev/null +++ b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/PartitionColorTransformerPanel.java @@ -0,0 +1,501 @@ +/* + Copyright 2008-2010 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2011 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2011 Gephi Consortium. + */ + +package org.gephi.ui.appearance.plugin; + +import java.awt.Color; +import java.awt.Component; +import java.awt.Graphics; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; +import java.text.NumberFormat; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.Random; +import javax.swing.AbstractCellEditor; +import javax.swing.Icon; +import javax.swing.JButton; +import javax.swing.JLabel; +import javax.swing.JMenu; +import javax.swing.JMenuItem; +import javax.swing.JPopupMenu; +import javax.swing.JTable; +import javax.swing.table.DefaultTableModel; +import javax.swing.table.TableCellEditor; +import javax.swing.table.TableCellRenderer; +import javax.swing.table.TableColumn; +import net.java.dev.colorchooser.ColorChooser; +import org.gephi.appearance.api.Partition; +import org.gephi.appearance.api.PartitionFunction; +import org.gephi.appearance.plugin.palette.Palette; +import org.gephi.appearance.plugin.palette.PaletteGenerator; +import org.gephi.appearance.plugin.palette.PaletteManager; +import org.gephi.graph.api.AttributeUtils; +import org.gephi.graph.api.Graph; +import org.gephi.ui.appearance.plugin.palette.PaletteGeneratorPanel; +import org.gephi.ui.components.PaletteIcon; +import org.jdesktop.swingx.JXHyperlink; +import org.jdesktop.swingx.JXTitledSeparator; +import org.openide.DialogDisplayer; +import org.openide.NotifyDescriptor; +import org.openide.util.NbBundle; + +/** + * @author Mathieu Bastian + */ +public class PartitionColorTransformerPanel extends javax.swing.JPanel { + + private static final int PALETTE_DISPLAY_LIMIT = 15; + private final PalettePopupButton palettePopupButton; + private PartitionFunction function; + private Collection values; + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JPanel backPanel; + private javax.swing.JScrollPane centerScrollPane; + private javax.swing.JTable table; + // End of variables declaration//GEN-END:variables + + public PartitionColorTransformerPanel() { + initComponents(); + palettePopupButton = new PalettePopupButton(); + } + + public JButton getPaletteButton() { + return palettePopupButton; + } + + public void setup(PartitionFunction function) { + this.function = function; + NumberFormat formatter = NumberFormat.getPercentInstance(); + formatter.setMaximumFractionDigits(2); + Partition partition = function.getPartition(); + Graph graph = function.getGraph(); + + try { + graph.readLock(); + + boolean ignoreNull = !function.getModel().isTransformNullValues(); + values = function.isValid() ? partition.getSortedValues(function.getGraph()) : Collections.EMPTY_LIST; + + int valuesSize = 0; + int nullElements = 0; + List nullColors = new ArrayList<>(); + for (Object val : values) { + if (!ignoreNull || val != null) { + Color c = partition.getColor(val); + if (c.equals(Partition.DEFAULT_COLOR)) { + nullColors.add(val); + } + valuesSize++; + } else { + // Will be used firther for the percentage calculation + nullElements = function.getPartition().count(null, function.getGraph()); + } + } + + int valuesWithColors = valuesSize - nullColors.size(); + if (!nullColors.isEmpty() && valuesWithColors < 8) { + Color[] cls = PaletteGenerator.generatePalette(Math.min(8, valuesSize), 5, new Random(42L)); + int i = 0; + for (Object val : nullColors) { + int index = valuesWithColors + i++; + if (index < cls.length) { + partition.setColor(val, cls[index]); + } + } + } + + //Model + String[] columnNames = new String[] {"Color", "Partition", "Percentage"}; + DefaultTableModel model = new DefaultTableModel(columnNames, valuesSize) { + @Override + public boolean isCellEditable(int row, int column) { + return column == 0; + } + }; + table.setModel(model); + + String countMsg = NbBundle + .getMessage(PartitionColorTransformerPanel.class, + "PartitionColorTransformerPanel.tooltip.elementsCount"); + + TableColumn partCol = table.getColumnModel().getColumn(1); + partCol.setCellRenderer(new TextRenderer(null)); + + TableColumn percCol = table.getColumnModel().getColumn(2); + percCol.setCellRenderer(new TextRenderer(countMsg)); + percCol.setPreferredWidth(60); + percCol.setMaxWidth(60); + + TableColumn colorCol = table.getColumnModel().getColumn(0); + colorCol.setCellEditor(new ColorChooserEditor()); + colorCol.setCellRenderer(new ColorChooserRenderer()); + colorCol.setPreferredWidth(16); + colorCol.setMaxWidth(16); + + int j = 0; + for (Object value : values) { + if (!ignoreNull || value != null) { + String displayName = value == null ? "null" : + value.getClass().isArray() ? AttributeUtils.printArray(value) : value.toString(); + int count = partition.count(value, graph); + float percentage = (float) count / (partition.getElementCount(graph) - nullElements); + model.setValueAt(value, j, 0); + model.setValueAt(displayName, j, 1); + String percCount = count + "_(" + formatter.format(percentage) + ")"; + model.setValueAt(percCount, j, 2); + j++; + } + } + } finally { + graph.readUnlock(); + } + } + + private void applyPalette(Palette palette) { + Color[] colors = palette.getColors(); + int i = 0; + boolean ignoreNull = !function.getModel().isTransformNullValues(); + for (Object value : values) { + if (!ignoreNull || value != null) { + Color col = colors[i++]; + function.getPartition().setColor(value, col); + } + } + table.revalidate(); + table.repaint(); + } + + void saveCurrentPaletteAsRecent() { + List colors = new ArrayList<>(); + boolean ignoreNull = !function.getModel().isTransformNullValues(); + for (Object value : values) { + if (!ignoreNull || value != null) { + Color c = function.getPartition().getColor(value); + colors.add(c != null ? c : Partition.DEFAULT_COLOR); + } + } + if (!colors.isEmpty()) { + PaletteManager.getInstance().addRecentPalette(new Palette(colors.toArray(new Color[0]))); + } + } + + private void applyColor(Color col) { + for (Object value : values) { + function.getPartition().setColor(value, col); + } + table.revalidate(); + table.repaint(); + } + + /** + * This method is called from within the constructor to initialize the form. + * WARNING: Do NOT modify this code. The content of this method is always + * regenerated by the Form Editor. + */ + @SuppressWarnings("unchecked") + // //GEN-BEGIN:initComponents + private void initComponents() { + java.awt.GridBagConstraints gridBagConstraints; + + centerScrollPane = new javax.swing.JScrollPane(); + backPanel = new javax.swing.JPanel(); + table = new javax.swing.JTable(); + + setOpaque(false); + setLayout(new java.awt.GridBagLayout()); + + centerScrollPane.setBorder(null); + centerScrollPane.setOpaque(false); + + backPanel.setLayout(new java.awt.GridBagLayout()); + + table.setModel(new javax.swing.table.DefaultTableModel( + new Object[][] { + + }, + new String[] { + + } + )); + table.setOpaque(false); + table.setRowHeight(18); + table.setRowMargin(4); + table.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); + table.setShowHorizontalLines(false); + table.setShowVerticalLines(false); + table.setTableHeader(null); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridx = 0; + gridBagConstraints.gridy = 0; + gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; + gridBagConstraints.weightx = 1.0; + gridBagConstraints.weighty = 1.0; + backPanel.add(table, gridBagConstraints); + + centerScrollPane.setViewportView(backPanel); + + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridx = 0; + gridBagConstraints.gridy = 0; + gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; + gridBagConstraints.weightx = 1.0; + gridBagConstraints.weighty = 1.0; + gridBagConstraints.insets = new java.awt.Insets(4, 10, 0, 0); + add(centerScrollPane, gridBagConstraints); + }// //GEN-END:initComponents + + class ColorChooserRenderer extends JLabel implements TableCellRenderer { + + public ColorChooserRenderer() { + setOpaque(true); + } + + @Override + public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, + int row, int column) { + Color color = function.getPartition().getColor(value); + if (color == null) { + color = Partition.DEFAULT_COLOR; + } + setBackground(color); + return this; + } + } + + class TextRenderer extends JLabel implements TableCellRenderer { + + private final EmptyIcon emptyIcon; + private final String elementsMessage; + + public TextRenderer(String countMessage) { + setFont(table.getFont()); + emptyIcon = new EmptyIcon(); + elementsMessage = countMessage; + } + + @Override + public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, + int row, int column) { + String valTxt = (String) value; + if (column == 1) { + setText(valTxt); + setToolTipText(valTxt); + setIcon(emptyIcon); + } else if (column == 2) { + String[] spl = valTxt.split("_"); + setText(spl[1]); + setToolTipText(spl[0] + " " + elementsMessage); + setIcon(null); + } + + return this; + } + } + + class EmptyIcon implements Icon { + + @Override + public void paintIcon(Component c, Graphics g, int x, int y) { + } + + @Override + public int getIconWidth() { + return 6; + } + + @Override + public int getIconHeight() { + return 6; + } + } + + class ColorChooserEditor extends AbstractCellEditor implements TableCellEditor { + + private final ColorChooser delegate; + Object currentValue; + + public ColorChooserEditor() { + delegate = new ColorChooser(); + delegate.addPropertyChangeListener(new PropertyChangeListener() { + @Override + public void propertyChange(PropertyChangeEvent evt) { + if (evt.getPropertyName().equals(ColorChooser.PROP_COLOR)) { + Color color = (Color) evt.getNewValue(); + Partition partition = function.getPartition(); + if (partition.getColor(currentValue) == null || + !partition.getColor(currentValue).equals(color)) { + function.getPartition().setColor(currentValue, (Color) evt.getNewValue()); + } + PartitionColorTransformerPanel.this.requestFocusInWindow(); + } + } + }); + } + + @Override + public Object getCellEditorValue() { + return currentValue; + } + + @Override + public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, + int row, int column) { + currentValue = value; + return delegate; + } + } + + class PalettePopupButton extends JXHyperlink { + + private final PaletteManager paletteManager; + + public PalettePopupButton() { + setText(NbBundle + .getMessage(PartitionColorTransformerPanel.class, "PartitionColorTransformerPanel.paletteButton")); + setFocusPainted(false); + setFocusable(false); + paletteManager = PaletteManager.getInstance(); + + addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + int size = function.getPartition().size(function.getGraph()); + JPopupMenu menu = createPopup(size); + menu.show(PalettePopupButton.this, 0, getHeight()); + } + }); + } + + private JPopupMenu createPopup(final int colorsCount) { + JPopupMenu menu = new JPopupMenu(); + menu.add(new JXTitledSeparator( + NbBundle.getMessage(PartitionColorTransformerPanel.class, "PalettePopup.recent"))); + Collection recentPalettes = paletteManager.getRecentPalettes(); + if (recentPalettes.isEmpty()) { + menu.add( + "" + NbBundle.getMessage(PartitionColorTransformerPanel.class, "PalettePopup.norecent") + + ""); + } else { + for (Palette pl : recentPalettes) { + if (pl.size() >= colorsCount) { + menu.add(new PaletteMenuItem(pl, Math.min(PALETTE_DISPLAY_LIMIT, colorsCount))); + } + } + } + + menu.add(new JXTitledSeparator( + NbBundle.getMessage(PartitionColorTransformerPanel.class, "PalettePopup.standard"))); + JMenu lightPalette = + new JMenu(NbBundle.getMessage(PartitionColorTransformerPanel.class, "PalettePopup.palette")); + for (Palette pl : paletteManager.getDefaultPalette(colorsCount)) { + lightPalette.add(new PaletteMenuItem(pl, Math.min(PALETTE_DISPLAY_LIMIT, colorsCount))); + } + menu.add(lightPalette); + + JMenuItem allGrey = + new JMenuItem(NbBundle.getMessage(PartitionColorTransformerPanel.class, "PalettePopup.allgrey")); + allGrey.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + applyColor(Color.LIGHT_GRAY); + } + }); + menu.add(allGrey); + + JMenuItem allWhite = + new JMenuItem(NbBundle.getMessage(PartitionColorTransformerPanel.class, "PalettePopup.allwhite")); + allWhite.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + applyColor(Color.WHITE); + } + }); + menu.add(allWhite); + + JMenuItem generate = + new JMenuItem(NbBundle.getMessage(PartitionColorTransformerPanel.class, "PalettePopup.generate")); + generate.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + PaletteGeneratorPanel pgn = new PaletteGeneratorPanel(); + pgn.setup(colorsCount); + NotifyDescriptor nd = new NotifyDescriptor(pgn, + NbBundle.getMessage(PartitionColorTransformerPanel.class, + "PartitionColorTransformerPanel.generatePalettePanel.title"), + NotifyDescriptor.OK_CANCEL_OPTION, + NotifyDescriptor.DEFAULT_OPTION, null, null); + + if (DialogDisplayer.getDefault().notify(nd) == NotifyDescriptor.OK_OPTION) { + Palette pl = pgn.getSelectedPalette(); + if (pl != null) { + applyPalette(pl); + } + } + } + }); + menu.add(generate); + + return menu; + } + } + + class PaletteMenuItem extends JMenuItem implements ActionListener { + + private final Palette palette; + + public PaletteMenuItem(Palette palette, int max) { + super(new PaletteIcon(palette.getColors(), max)); + this.palette = palette; + addActionListener(this); + } + + @Override + public void actionPerformed(ActionEvent e) { + applyPalette(palette); + } + } +} diff --git a/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/PartitionElementColorTransformerUI.java b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/PartitionElementColorTransformerUI.java new file mode 100644 index 0000000000..2f5188e882 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/PartitionElementColorTransformerUI.java @@ -0,0 +1,114 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.ui.appearance.plugin; + +import javax.swing.AbstractButton; +import javax.swing.Icon; +import javax.swing.JPanel; +import org.gephi.appearance.api.Function; +import org.gephi.appearance.api.PartitionFunction; +import org.gephi.appearance.plugin.PartitionElementColorTransformer; +import org.gephi.appearance.spi.PartitionTransformer; +import org.gephi.appearance.spi.TransformerCategory; +import org.gephi.appearance.spi.TransformerUI; +import org.gephi.ui.appearance.plugin.category.DefaultCategory; +import org.openide.util.NbBundle; +import org.openide.util.lookup.ServiceProvider; + +/** + * @author mbastian + */ +@ServiceProvider(service = TransformerUI.class, position = 200) +public class PartitionElementColorTransformerUI implements TransformerUI { + + private PartitionColorTransformerPanel panel; + + @Override + public TransformerCategory getCategory() { + return DefaultCategory.COLOR; + } + + @Override + public String getDisplayName() { + return NbBundle.getMessage(PartitionElementColorTransformerUI.class, "Attribute.partition.name"); + } + + @Override + public Icon getIcon() { + return null; + } + + @Override + public String getDescription() { + return null; + } + + @Override + public synchronized JPanel getPanel(Function function) { + if (panel == null) { + panel = new PartitionColorTransformerPanel(); + } + panel.setup((PartitionFunction) function); + return panel; + } + + @Override + public synchronized AbstractButton[] getControlButton() { + if (panel == null) { + panel = new PartitionColorTransformerPanel(); + } + return new AbstractButton[] {panel.getPaletteButton()}; + } + + @Override + public synchronized void onApply(Function function) { + if (panel != null) { + panel.saveCurrentPaletteAsRecent(); + } + } + + @Override + public Class getTransformerClass() { + return PartitionElementColorTransformer.class; + } +} diff --git a/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/PartitionLabelColorTransformerUI.java b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/PartitionLabelColorTransformerUI.java new file mode 100644 index 0000000000..226c814542 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/PartitionLabelColorTransformerUI.java @@ -0,0 +1,114 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.ui.appearance.plugin; + +import javax.swing.AbstractButton; +import javax.swing.Icon; +import javax.swing.JPanel; +import org.gephi.appearance.api.Function; +import org.gephi.appearance.api.PartitionFunction; +import org.gephi.appearance.plugin.PartitionLabelColorTransformer; +import org.gephi.appearance.spi.PartitionTransformer; +import org.gephi.appearance.spi.TransformerCategory; +import org.gephi.appearance.spi.TransformerUI; +import org.gephi.ui.appearance.plugin.category.DefaultCategory; +import org.openide.util.NbBundle; +import org.openide.util.lookup.ServiceProvider; + +/** + * @author mbastian + */ +@ServiceProvider(service = TransformerUI.class, position = 600) +public class PartitionLabelColorTransformerUI implements TransformerUI { + + private PartitionColorTransformerPanel panel; + + @Override + public TransformerCategory getCategory() { + return DefaultCategory.LABEL_COLOR; + } + + @Override + public String getDisplayName() { + return NbBundle.getMessage(PartitionLabelColorTransformerUI.class, "Attribute.partition.name"); + } + + @Override + public Icon getIcon() { + return null; + } + + @Override + public String getDescription() { + return null; + } + + @Override + public synchronized JPanel getPanel(Function function) { + if (panel == null) { + panel = new PartitionColorTransformerPanel(); + } + panel.setup((PartitionFunction) function); + return panel; + } + + @Override + public synchronized AbstractButton[] getControlButton() { + if (panel == null) { + panel = new PartitionColorTransformerPanel(); + } + return new AbstractButton[] {panel.getPaletteButton()}; + } + + @Override + public synchronized void onApply(Function function) { + if (panel != null) { + panel.saveCurrentPaletteAsRecent(); + } + } + + @Override + public Class getTransformerClass() { + return PartitionLabelColorTransformer.class; + } +} diff --git a/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/RankingColorTransformerPanel.form b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/RankingColorTransformerPanel.form new file mode 100644 index 0000000000..61375dcc37 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/RankingColorTransformerPanel.form @@ -0,0 +1,93 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/RankingColorTransformerPanel.java b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/RankingColorTransformerPanel.java new file mode 100644 index 0000000000..79fded54e2 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/RankingColorTransformerPanel.java @@ -0,0 +1,296 @@ +/* + Copyright 2008-2010 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2011 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2011 Gephi Consortium. + */ + +package org.gephi.ui.appearance.plugin; + +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.beans.PropertyChangeListener; +import java.util.Arrays; +import javax.swing.JMenu; +import javax.swing.JMenuItem; +import javax.swing.JPopupMenu; +import org.gephi.appearance.api.RankingFunction; +import org.gephi.appearance.plugin.RankingElementColorTransformer; +import org.gephi.ui.components.PaletteIcon; +import org.gephi.ui.components.gradientslider.GradientSlider; +import org.gephi.ui.components.gradientslider.MultiThumbSlider; +import org.gephi.utils.PaletteUtils; +import org.gephi.utils.PaletteUtils.Palette; +import org.openide.util.ImageUtilities; +import org.openide.util.NbBundle; + +/** + * @author Mathieu Bastian + */ +public class RankingColorTransformerPanel extends javax.swing.JPanel { + + private final RecentPalettes recentPalettes; + private RankingElementColorTransformer colorTransformer; + private final GradientSlider gradientSlider; + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JButton colorSwatchButton; + private javax.swing.JToolBar colorSwatchToolbar; + private javax.swing.JPanel gradientPanel; + private javax.swing.JLabel labelColor; + + // End of variables declaration//GEN-END:variables + private PropertyChangeListener listener = null; + + public RankingColorTransformerPanel() { + initComponents(); + this.recentPalettes = new RecentPalettes(); + + //Init slider + gradientSlider = new GradientSlider(GradientSlider.HORIZONTAL); + gradientPanel.add(gradientSlider, BorderLayout.CENTER); + + //Color Swatch + colorSwatchButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent ae) { + JPopupMenu popupMenu = getPalettePopupMenu(); + popupMenu.show(colorSwatchToolbar, -popupMenu.getPreferredSize().width, 0); + } + }); + } + + + public void setup(RankingFunction function) { + colorTransformer = function.getTransformer(); + if (listener != null) { + gradientSlider.removePropertyChangeListener(listener); + } + + float[] positionsStart = colorTransformer.getColorPositions(); + Color[] colorsStart = colorTransformer.getColors(); + + //Gradient + gradientSlider.setValues(positionsStart, colorsStart); + + listener = (evt) -> { + if (colorTransformer != null + && ((!gradientSlider.isValueAdjusting() && + evt.getPropertyName().equals(MultiThumbSlider.VALUES_PROPERTY)) + || (evt.getPropertyName().equals(MultiThumbSlider.ADJUST_PROPERTY) && + evt.getNewValue().equals(Boolean.FALSE)))) { + Color[] colors = gradientSlider.getColors(); + float[] positions = gradientSlider.getThumbPositions(); + + if (!Arrays.equals(positions, colorTransformer.getColorPositions()) || + !Arrays.deepEquals(colors, colorTransformer.getColors())) { + colorTransformer.setColors(Arrays.copyOf(colors, colors.length)); + colorTransformer.setColorPositions(Arrays.copyOf(positions, positions.length)); + } +// prepareGradientTooltip(); + } + }; + gradientSlider.addPropertyChangeListener(listener); + +// prepareGradientTooltip(); + //Context +// setComponentPopupMenu(getPalettePopupMenu()); + } + + // private void prepareGradientTooltip() { +// StringBuilder sb = new StringBuilder(); +// final double min = ((Number) ranking.unNormalize(colorTransformer.getLowerBound())).doubleValue(); +// final double max = ((Number) ranking.unNormalize(colorTransformer.getUpperBound())).doubleValue(); +// final double range = max - min; +// float[] positions = gradientSlider.getThumbPositions(); +// for (int i = 0; i < positions.length - 1; i++) { +// sb.append(min + range * positions[i]); +// sb.append(", "); +// } +// sb.append(min + range * positions[positions.length - 1]); +// gradientSlider.setToolTipText(sb.toString()); +// } + private JPopupMenu getPalettePopupMenu() { + JPopupMenu popupMenu = new JPopupMenu(); + JMenu defaultMenu = new JMenu(NbBundle.getMessage(RankingColorTransformerPanel.class, "PalettePopup.default")); + for (Palette p : PaletteUtils.getSequencialPalettes()) { + final Palette p3 = PaletteUtils.get3ClassPalette(p); + JMenuItem item = new JMenuItem(new PaletteIcon(p3.getColors())); + item.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + gradientSlider.setValues(p3.getPositions(), p3.getColors()); + } + }); + defaultMenu.add(item); + } + for (Palette p : PaletteUtils.getDivergingPalettes()) { + final Palette p3 = PaletteUtils.get3ClassPalette(p); + JMenuItem item = new JMenuItem(new PaletteIcon(p3.getColors())); + item.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + gradientSlider.setValues(p3.getPositions(), p3.getColors()); + } + }); + defaultMenu.add(item); + } + popupMenu.add(defaultMenu); + + //Invert + JMenuItem invertItem = + new JMenuItem(NbBundle.getMessage(RankingColorTransformerPanel.class, "PalettePopup.invert")); + invertItem.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + gradientSlider + .setValues(invert(gradientSlider.getThumbPositions()), invert(gradientSlider.getColors())); + } + }); + popupMenu.add(invertItem); + + //Recent + JMenu recentMenu = new JMenu(NbBundle.getMessage(RankingColorTransformerPanel.class, "PalettePopup.recent")); + for (final RankingElementColorTransformer.LinearGradient gradient : recentPalettes.getPalettes()) { + JMenuItem item = new JMenuItem(new PaletteIcon(gradient.getColors())); + item.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + gradientSlider.setValues(gradient.getPositions(), gradient.getColors()); + } + }); + recentMenu.add(item); + } + popupMenu.add(recentMenu); + + return popupMenu; + } + + void saveCurrentGradientAsRecent() { + if (colorTransformer != null) { + recentPalettes.add(colorTransformer.getLinearGradient()); + } + } + + private Color[] invert(Color[] source) { + int len = source.length; + Color[] res = new Color[len]; + for (int i = 0; i < len; i++) { + res[i] = source[len - 1 - i]; + } + return res; + } + + private float[] invert(float[] source) { + int len = source.length; + float[] res = new float[len]; + for (int i = 0; i < len; i++) { + res[i] = 1 - source[len - 1 - i]; + } + + return res; + } + + /** + * This method is called from within the constructor to initialize the form. + * WARNING: Do NOT modify this code. The content of this method is always + * regenerated by the Form Editor. + */ + @SuppressWarnings("unchecked") + // //GEN-BEGIN:initComponents + private void initComponents() { + + labelColor = new javax.swing.JLabel(); + gradientPanel = new javax.swing.JPanel(); + colorSwatchToolbar = new javax.swing.JToolBar(); + colorSwatchButton = new javax.swing.JButton(); + + setPreferredSize(new java.awt.Dimension(225, 114)); + + labelColor.setText(org.openide.util.NbBundle + .getMessage(RankingColorTransformerPanel.class, "RankingColorTransformerPanel.labelColor.text")); // NOI18N + + gradientPanel.setOpaque(false); + gradientPanel.setLayout(new java.awt.BorderLayout()); + + colorSwatchToolbar.setFloatable(false); + colorSwatchToolbar.setRollover(true); + colorSwatchToolbar.setOpaque(false); + + colorSwatchButton.setIcon( + ImageUtilities.loadImageIcon("AppearancePluginUI/color-swatch.svg", false)); // NOI18N + colorSwatchButton.setFocusable(false); + colorSwatchButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + colorSwatchButton.setIconTextGap(0); + colorSwatchButton.setMargin(new java.awt.Insets(0, 0, 0, 0)); + colorSwatchButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); + colorSwatchToolbar.add(colorSwatchButton); + + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); + this.setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addContainerGap() + .addComponent(labelColor) + .addGap(18, 18, 18) + .addComponent(gradientPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 160, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, + javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(colorSwatchToolbar, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + ); + layout.setVerticalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(colorSwatchToolbar, javax.swing.GroupLayout.PREFERRED_SIZE, 22, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(labelColor, javax.swing.GroupLayout.PREFERRED_SIZE, 20, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(gradientPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 17, + javax.swing.GroupLayout.PREFERRED_SIZE)))) + .addContainerGap(88, Short.MAX_VALUE)) + ); + }// //GEN-END:initComponents +} diff --git a/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/RankingElementColorTransformerUI.java b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/RankingElementColorTransformerUI.java new file mode 100644 index 0000000000..7d2ef80492 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/RankingElementColorTransformerUI.java @@ -0,0 +1,111 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.ui.appearance.plugin; + +import javax.swing.AbstractButton; +import javax.swing.Icon; +import javax.swing.JPanel; +import org.gephi.appearance.api.Function; +import org.gephi.appearance.api.RankingFunction; +import org.gephi.appearance.plugin.RankingElementColorTransformer; +import org.gephi.appearance.spi.RankingTransformer; +import org.gephi.appearance.spi.TransformerCategory; +import org.gephi.appearance.spi.TransformerUI; +import org.gephi.ui.appearance.plugin.category.DefaultCategory; +import org.openide.util.NbBundle; +import org.openide.util.lookup.ServiceProvider; + +/** + * @author mbastian + */ +@ServiceProvider(service = TransformerUI.class, position = 200) +public class RankingElementColorTransformerUI implements TransformerUI { + + private RankingColorTransformerPanel panel; + + @Override + public TransformerCategory getCategory() { + return DefaultCategory.COLOR; + } + + @Override + public Icon getIcon() { + return null; + } + + @Override + public String getDisplayName() { + return NbBundle.getMessage(RankingElementColorTransformerUI.class, "Attribute.ranking.name"); + } + + @Override + public String getDescription() { + return null; + } + + @Override + public synchronized JPanel getPanel(Function function) { + if (panel == null) { + panel = new RankingColorTransformerPanel(); + } + panel.setup((RankingFunction) function); + return panel; + } + + @Override + public synchronized AbstractButton[] getControlButton() { + return null; + } + + @Override + public synchronized void onApply(Function function) { + if (panel != null) { + panel.saveCurrentGradientAsRecent(); + } + } + + @Override + public Class getTransformerClass() { + return RankingElementColorTransformer.class; + } +} diff --git a/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/RankingElementSizeTransformerUI.java b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/RankingElementSizeTransformerUI.java new file mode 100644 index 0000000000..dfc39f6819 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/RankingElementSizeTransformerUI.java @@ -0,0 +1,104 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.ui.appearance.plugin; + +import javax.swing.AbstractButton; +import javax.swing.Icon; +import javax.swing.JPanel; +import org.gephi.appearance.api.Function; +import org.gephi.appearance.api.RankingFunction; +import org.gephi.appearance.plugin.RankingNodeSizeTransformer; +import org.gephi.appearance.spi.RankingTransformer; +import org.gephi.appearance.spi.TransformerCategory; +import org.gephi.appearance.spi.TransformerUI; +import org.gephi.ui.appearance.plugin.category.DefaultCategory; +import org.openide.util.NbBundle; +import org.openide.util.lookup.ServiceProvider; + +/** + * @author mbastian + */ +@ServiceProvider(service = TransformerUI.class, position = 400) +public class RankingElementSizeTransformerUI implements TransformerUI { + + private RankingSizeTransformerPanel panel; + + @Override + public TransformerCategory getCategory() { + return DefaultCategory.SIZE; + } + + @Override + public Icon getIcon() { + return null; + } + + @Override + public String getDisplayName() { + return NbBundle.getMessage(RankingElementSizeTransformerUI.class, "Attribute.ranking.name"); + } + + @Override + public String getDescription() { + return null; + } + + @Override + public synchronized JPanel getPanel(Function function) { + if (panel == null) { + panel = new RankingSizeTransformerPanel(); + } + panel.setup((RankingFunction) function); + return panel; + } + + @Override + public synchronized AbstractButton[] getControlButton() { + return null; + } + + @Override + public Class getTransformerClass() { + return RankingNodeSizeTransformer.class; + } +} diff --git a/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/RankingLabelColorTransformerUI.java b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/RankingLabelColorTransformerUI.java new file mode 100644 index 0000000000..244f9b4cb2 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/RankingLabelColorTransformerUI.java @@ -0,0 +1,111 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.ui.appearance.plugin; + +import javax.swing.AbstractButton; +import javax.swing.Icon; +import javax.swing.JPanel; +import org.gephi.appearance.api.Function; +import org.gephi.appearance.api.RankingFunction; +import org.gephi.appearance.plugin.RankingLabelColorTransformer; +import org.gephi.appearance.spi.RankingTransformer; +import org.gephi.appearance.spi.TransformerCategory; +import org.gephi.appearance.spi.TransformerUI; +import org.gephi.ui.appearance.plugin.category.DefaultCategory; +import org.openide.util.NbBundle; +import org.openide.util.lookup.ServiceProvider; + +/** + * @author mbastian + */ +@ServiceProvider(service = TransformerUI.class, position = 600) +public class RankingLabelColorTransformerUI implements TransformerUI { + + private RankingColorTransformerPanel panel; + + @Override + public TransformerCategory getCategory() { + return DefaultCategory.LABEL_COLOR; + } + + @Override + public Icon getIcon() { + return null; + } + + @Override + public String getDisplayName() { + return NbBundle.getMessage(RankingLabelColorTransformerUI.class, "Attribute.ranking.name"); + } + + @Override + public String getDescription() { + return null; + } + + @Override + public synchronized JPanel getPanel(Function function) { + if (panel == null) { + panel = new RankingColorTransformerPanel(); + } + panel.setup((RankingFunction) function); + return panel; + } + + @Override + public synchronized AbstractButton[] getControlButton() { + return null; + } + + @Override + public synchronized void onApply(Function function) { + if (panel != null) { + panel.saveCurrentGradientAsRecent(); + } + } + + @Override + public Class getTransformerClass() { + return RankingLabelColorTransformer.class; + } +} diff --git a/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/RankingLabelSizeTransformerUI.java b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/RankingLabelSizeTransformerUI.java new file mode 100644 index 0000000000..7ae3c2efb9 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/RankingLabelSizeTransformerUI.java @@ -0,0 +1,104 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.ui.appearance.plugin; + +import javax.swing.AbstractButton; +import javax.swing.Icon; +import javax.swing.JPanel; +import org.gephi.appearance.api.Function; +import org.gephi.appearance.api.RankingFunction; +import org.gephi.appearance.plugin.RankingLabelSizeTransformer; +import org.gephi.appearance.spi.RankingTransformer; +import org.gephi.appearance.spi.TransformerCategory; +import org.gephi.appearance.spi.TransformerUI; +import org.gephi.ui.appearance.plugin.category.DefaultCategory; +import org.openide.util.NbBundle; +import org.openide.util.lookup.ServiceProvider; + +/** + * @author mbastian + */ +@ServiceProvider(service = TransformerUI.class, position = 800) +public class RankingLabelSizeTransformerUI implements TransformerUI { + + private RankingSizeTransformerPanel panel; + + @Override + public TransformerCategory getCategory() { + return DefaultCategory.LABEL_SIZE; + } + + @Override + public Icon getIcon() { + return null; + } + + @Override + public String getDisplayName() { + return NbBundle.getMessage(RankingLabelSizeTransformerUI.class, "Attribute.ranking.name"); + } + + @Override + public String getDescription() { + return null; + } + + @Override + public synchronized JPanel getPanel(Function function) { + if (panel == null) { + panel = new RankingSizeTransformerPanel(); + } + panel.setup((RankingFunction) function); + return panel; + } + + @Override + public synchronized AbstractButton[] getControlButton() { + return null; + } + + @Override + public Class getTransformerClass() { + return RankingLabelSizeTransformer.class; + } +} diff --git a/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/RankingSizeTransformerPanel.form b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/RankingSizeTransformerPanel.form new file mode 100644 index 0000000000..5e710c5b6d --- /dev/null +++ b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/RankingSizeTransformerPanel.form @@ -0,0 +1,82 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/RankingSizeTransformerPanel.java b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/RankingSizeTransformerPanel.java new file mode 100644 index 0000000000..d6b7c802db --- /dev/null +++ b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/RankingSizeTransformerPanel.java @@ -0,0 +1,148 @@ +/* + Copyright 2008-2010 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2011 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2011 Gephi Consortium. + */ + +package org.gephi.ui.appearance.plugin; + +import javax.swing.event.ChangeListener; +import org.gephi.appearance.api.RankingFunction; +import org.gephi.appearance.plugin.RankingSizeTransformer; + +/** + * @author Mathieu Bastian + */ +public class RankingSizeTransformerPanel extends javax.swing.JPanel { + + // Variables declaration - do not modify//GEN-BEGIN:variables + private RankingSizeTransformer sizeTransformer; + private javax.swing.JSpinner maxSize; + private javax.swing.JSpinner minSize; + + private ChangeListener maxSizeChangeEvent = null; + private ChangeListener minSizeChangeEvent = null; + // End of variables declaration//GEN-END:variables + + public RankingSizeTransformerPanel() { + initComponents(); + } + + public void setup(RankingFunction function) { + sizeTransformer = function.getTransformer(); + + // setup is called at each change of function, so we need to clean the minSize and maxSize changeEvent + if (minSizeChangeEvent != null) { + minSize.removeChangeListener(minSizeChangeEvent); + } + if (maxSizeChangeEvent != null) { + maxSize.removeChangeListener(maxSizeChangeEvent); + } + + minSize.setValue(sizeTransformer.getMinSize()); + maxSize.setValue(sizeTransformer.getMaxSize()); + + // Regenerate the event function. Used also to delete it later + minSizeChangeEvent = (e -> sizeTransformer.setMinSize((Float) minSize.getValue())); + maxSizeChangeEvent = (e -> sizeTransformer.setMaxSize((Float) maxSize.getValue())); + + // Add the change event listener + minSize.addChangeListener(minSizeChangeEvent); + maxSize.addChangeListener(maxSizeChangeEvent); + } + + /** + * This method is called from within the constructor to initialize the form. + * WARNING: Do NOT modify this code. The content of this method is always + * regenerated by the Form Editor. + */ + @SuppressWarnings("unchecked") + // //GEN-BEGIN:initComponents + private void initComponents() { + + javax.swing.JLabel labelMinSize = new javax.swing.JLabel(); + minSize = new javax.swing.JSpinner(); + // Variables declaration - do not modify//GEN-BEGIN:variables + javax.swing.JLabel labelMaxSize = new javax.swing.JLabel(); + maxSize = new javax.swing.JSpinner(); + + setPreferredSize(new java.awt.Dimension(225, 114)); + + labelMinSize.setText(org.openide.util.NbBundle + .getMessage(RankingSizeTransformerPanel.class, "RankingSizeTransformerPanel.labelMinSize.text")); // NOI18N + + minSize.setModel(new javax.swing.SpinnerNumberModel(1.0f, 0.01f, null, 0.5f)); + + labelMaxSize.setText(org.openide.util.NbBundle + .getMessage(RankingSizeTransformerPanel.class, "RankingSizeTransformerPanel.labelMaxSize.text")); // NOI18N + + maxSize.setModel(new javax.swing.SpinnerNumberModel(4.0f, 0.5f, null, 0.5f)); + + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); + this.setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(labelMinSize) + .addGap(8, 8, 8) + .addComponent(minSize, javax.swing.GroupLayout.PREFERRED_SIZE, 60, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(18, 18, 18) + .addComponent(labelMaxSize) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(maxSize, javax.swing.GroupLayout.PREFERRED_SIZE, 60, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + ); + layout.setVerticalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(minSize, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(maxSize, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(labelMaxSize) + .addComponent(labelMinSize)) + .addContainerGap(80, Short.MAX_VALUE)) + ); + }// //GEN-END:initComponents +} diff --git a/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/RecentPalettes.java b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/RecentPalettes.java new file mode 100644 index 0000000000..d3e3e6c236 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/RecentPalettes.java @@ -0,0 +1,134 @@ +/* + Copyright 2008-2010 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2011 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2011 Gephi Consortium. + */ + +package org.gephi.ui.appearance.plugin; + +import java.awt.Color; +import java.util.Arrays; +import java.util.LinkedList; +import java.util.prefs.Preferences; +import org.gephi.appearance.plugin.RankingElementColorTransformer.LinearGradient; +import org.gephi.utils.ColorUtils; +import org.openide.util.NbPreferences; + +/** + * @author Mathieu Bastian + */ +public class RecentPalettes { + + public static final String COLORS = "PaletteColors"; + public static final String POSITIONS = "PalettePositions"; + private static final int MAX_SIZE = 14; + protected static final String NODE_NAME = "recentrankingpalettes"; + private final LinkedList gradients; + + public RecentPalettes() { + gradients = new LinkedList<>(); + retrieve(); + } + + public void add(LinearGradient gradient) { + if (!gradients.isEmpty() && gradients.getFirst().equals(gradient)) { + return; + } + //Remove the old + gradients.remove(gradient); + + // add to the top + gradients.push(new LinearGradient( + Arrays.copyOf(gradient.getColors(), gradient.getColors().length), + Arrays.copyOf(gradient.getPositions(), gradient.getPositions().length))); + while (gradients.size() > MAX_SIZE) { + gradients.removeLast(); + } + + store(); + } + + public LinearGradient[] getPalettes() { + return gradients.toArray(new LinearGradient[0]); + } + + private void store() { + Preferences prefs = getPreferences(); + + int i = 0; + for (LinearGradient gradient : gradients) { + prefs.putByteArray(COLORS + i, ColorUtils.serializeColors(gradient.getColors())); + prefs.putByteArray(POSITIONS + i, ColorUtils.serializeFloats(gradient.getPositions())); + i++; + } + // Remove stale entries beyond the current list size + for (; i < MAX_SIZE; i++) { + prefs.remove(COLORS + i); + prefs.remove(POSITIONS + i); + } + } + + private void retrieve() { + gradients.clear(); + Preferences prefs = getPreferences(); + + for (int i = 0; i < MAX_SIZE; i++) { + byte[] cols = prefs.getByteArray(COLORS + i, null); + byte[] poss = prefs.getByteArray(POSITIONS + i, null); + if (cols != null && poss != null) { + Color[] colors = ColorUtils.deserializeColors(cols); + float[] positions = ColorUtils.deserializeFloats(poss); + if (colors != null && positions != null) { + gradients.addLast(new LinearGradient(colors, positions)); + } + } else { + break; + } + } + } + + /** + * Return the backing store Preferences + * + * @return Preferences + */ + protected final Preferences getPreferences() { + return NbPreferences.forModule(this.getClass()).node("options").node(NODE_NAME); + } +} diff --git a/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/UniqueColorTransformerPanel.form b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/UniqueColorTransformerPanel.form new file mode 100644 index 0000000000..005c90c259 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/UniqueColorTransformerPanel.form @@ -0,0 +1,71 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/UniqueColorTransformerPanel.java b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/UniqueColorTransformerPanel.java new file mode 100644 index 0000000000..b64b79350d --- /dev/null +++ b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/UniqueColorTransformerPanel.java @@ -0,0 +1,147 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.ui.appearance.plugin; + +import java.awt.Color; +import java.beans.PropertyChangeListener; +import net.java.dev.colorchooser.ColorChooser; +import org.gephi.appearance.api.SimpleFunction; +import org.gephi.appearance.plugin.AbstractUniqueColorTransformer; + +/** + * @author mbastian + */ +public class UniqueColorTransformerPanel extends javax.swing.JPanel { + + private AbstractUniqueColorTransformer transformer; + // Variables declaration - do not modify//GEN-BEGIN:variables + private net.java.dev.colorchooser.ColorChooser colorChooser; + private javax.swing.JLabel colorLabel; + + // End of variables declaration//GEN-END:variables + private PropertyChangeListener colorPropertyChangeListener = null; + + public UniqueColorTransformerPanel() { + initComponents(); + + + } + + public void setup(SimpleFunction function) { + transformer = function.getTransformer(); + + if (colorPropertyChangeListener != null) { + colorChooser.removePropertyChangeListener(colorPropertyChangeListener); + } + + colorChooser.setColor(transformer.getColor()); + colorLabel.setText(getHex(transformer.getColor())); + colorPropertyChangeListener = (evt -> { + if (evt.getPropertyName().equals(ColorChooser.PROP_COLOR)) { + Color newColor = colorChooser.getColor(); + if (!transformer.getColor().equals(newColor)) { + transformer.setColor(newColor); + colorLabel.setText(getHex(newColor)); + } + } + }); + colorChooser.addPropertyChangeListener(colorPropertyChangeListener); + } + + private String getHex(Color color) { + return "#" + String.format("%06x", color.getRGB() & 0x00FFFFFF); + } + + /** + * This method is called from within the constructor to initialize the form. + * WARNING: Do NOT modify this code. The content of this method is always + * regenerated by the Form Editor. + */ + @SuppressWarnings("unchecked") + // //GEN-BEGIN:initComponents + private void initComponents() { + + colorChooser = new net.java.dev.colorchooser.ColorChooser(); + colorLabel = new javax.swing.JLabel(); + + colorChooser.setMinimumSize(new java.awt.Dimension(14, 14)); + colorChooser.setPreferredSize(new java.awt.Dimension(14, 14)); + colorChooser.setToolTipText(org.openide.util.NbBundle.getMessage(UniqueColorTransformerPanel.class, + "UniqueColorTransformerPanel.colorChooser.toolTipText")); // NOI18N + + javax.swing.GroupLayout colorChooserLayout = new javax.swing.GroupLayout(colorChooser); + colorChooser.setLayout(colorChooserLayout); + colorChooserLayout.setHorizontalGroup( + colorChooserLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 12, Short.MAX_VALUE) + ); + colorChooserLayout.setVerticalGroup( + colorChooserLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 12, Short.MAX_VALUE) + ); + + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); + this.setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(colorChooser, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(colorLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 380, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap()) + ); + layout.setVerticalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(colorLabel) + .addComponent(colorChooser, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(278, 278, 278)) + ); + }// //GEN-END:initComponents +} diff --git a/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/UniqueElementColorTransformerUI.java b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/UniqueElementColorTransformerUI.java new file mode 100644 index 0000000000..1c8bf06950 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/UniqueElementColorTransformerUI.java @@ -0,0 +1,104 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.ui.appearance.plugin; + +import javax.swing.AbstractButton; +import javax.swing.Icon; +import javax.swing.JPanel; +import org.gephi.appearance.api.Function; +import org.gephi.appearance.api.SimpleFunction; +import org.gephi.appearance.plugin.UniqueElementColorTransformer; +import org.gephi.appearance.spi.SimpleTransformer; +import org.gephi.appearance.spi.TransformerCategory; +import org.gephi.appearance.spi.TransformerUI; +import org.gephi.ui.appearance.plugin.category.DefaultCategory; +import org.openide.util.NbBundle; +import org.openide.util.lookup.ServiceProvider; + +/** + * @author mbastian + */ +@ServiceProvider(service = TransformerUI.class, position = 100) +public class UniqueElementColorTransformerUI implements TransformerUI { + + private UniqueColorTransformerPanel panel; + + @Override + public String getDisplayName() { + return NbBundle.getMessage(UniqueElementColorTransformerUI.class, "Unique.name"); + } + + @Override + public TransformerCategory getCategory() { + return DefaultCategory.COLOR; + } + + @Override + public String getDescription() { + return null; + } + + @Override + public Icon getIcon() { + return null; + } + + @Override + public synchronized JPanel getPanel(Function function) { + if (panel == null) { + panel = new UniqueColorTransformerPanel(); + } + panel.setup((SimpleFunction) function); + return panel; + } + + @Override + public synchronized AbstractButton[] getControlButton() { + return null; + } + + @Override + public Class getTransformerClass() { + return UniqueElementColorTransformer.class; + } +} diff --git a/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/UniqueLabelColorTransformerUI.java b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/UniqueLabelColorTransformerUI.java new file mode 100644 index 0000000000..6f62437d71 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/UniqueLabelColorTransformerUI.java @@ -0,0 +1,104 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.ui.appearance.plugin; + +import javax.swing.AbstractButton; +import javax.swing.Icon; +import javax.swing.JPanel; +import org.gephi.appearance.api.Function; +import org.gephi.appearance.api.SimpleFunction; +import org.gephi.appearance.plugin.UniqueLabelColorTransformer; +import org.gephi.appearance.spi.SimpleTransformer; +import org.gephi.appearance.spi.TransformerCategory; +import org.gephi.appearance.spi.TransformerUI; +import org.gephi.ui.appearance.plugin.category.DefaultCategory; +import org.openide.util.NbBundle; +import org.openide.util.lookup.ServiceProvider; + +/** + * @author mbastian + */ +@ServiceProvider(service = TransformerUI.class, position = 500) +public class UniqueLabelColorTransformerUI implements TransformerUI { + + private UniqueColorTransformerPanel panel; + + @Override + public String getDisplayName() { + return NbBundle.getMessage(UniqueLabelColorTransformerUI.class, "Unique.name"); + } + + @Override + public TransformerCategory getCategory() { + return DefaultCategory.LABEL_COLOR; + } + + @Override + public String getDescription() { + return null; + } + + @Override + public Icon getIcon() { + return null; + } + + @Override + public synchronized JPanel getPanel(Function function) { + if (panel == null) { + panel = new UniqueColorTransformerPanel(); + } + panel.setup((SimpleFunction) function); + return panel; + } + + @Override + public synchronized AbstractButton[] getControlButton() { + return null; + } + + @Override + public Class getTransformerClass() { + return UniqueLabelColorTransformer.class; + } +} diff --git a/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/UniqueLabelSizeTransformerUI.java b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/UniqueLabelSizeTransformerUI.java new file mode 100644 index 0000000000..f965166b72 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/UniqueLabelSizeTransformerUI.java @@ -0,0 +1,104 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.ui.appearance.plugin; + +import javax.swing.AbstractButton; +import javax.swing.Icon; +import javax.swing.JPanel; +import org.gephi.appearance.api.Function; +import org.gephi.appearance.api.SimpleFunction; +import org.gephi.appearance.plugin.UniqueLabelSizeTransformer; +import org.gephi.appearance.spi.SimpleTransformer; +import org.gephi.appearance.spi.TransformerCategory; +import org.gephi.appearance.spi.TransformerUI; +import org.gephi.ui.appearance.plugin.category.DefaultCategory; +import org.openide.util.NbBundle; +import org.openide.util.lookup.ServiceProvider; + +/** + * @author mbastian + */ +@ServiceProvider(service = TransformerUI.class, position = 700) +public class UniqueLabelSizeTransformerUI implements TransformerUI { + + private UniqueSizeTransformerPanel panel; + + @Override + public String getDisplayName() { + return NbBundle.getMessage(UniqueLabelSizeTransformerUI.class, "Unique.name"); + } + + @Override + public TransformerCategory getCategory() { + return DefaultCategory.LABEL_SIZE; + } + + @Override + public String getDescription() { + return null; + } + + @Override + public Icon getIcon() { + return null; + } + + @Override + public synchronized JPanel getPanel(Function function) { + if (panel == null) { + panel = new UniqueSizeTransformerPanel(); + } + panel.setup((SimpleFunction) function); + return panel; + } + + @Override + public synchronized AbstractButton[] getControlButton() { + return null; + } + + @Override + public Class getTransformerClass() { + return UniqueLabelSizeTransformer.class; + } +} diff --git a/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/UniqueNodeSizeTransformerUI.java b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/UniqueNodeSizeTransformerUI.java new file mode 100644 index 0000000000..e7c85dc2a1 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/UniqueNodeSizeTransformerUI.java @@ -0,0 +1,104 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.ui.appearance.plugin; + +import javax.swing.AbstractButton; +import javax.swing.Icon; +import javax.swing.JPanel; +import org.gephi.appearance.api.Function; +import org.gephi.appearance.api.SimpleFunction; +import org.gephi.appearance.plugin.UniqueNodeSizeTransformer; +import org.gephi.appearance.spi.SimpleTransformer; +import org.gephi.appearance.spi.TransformerCategory; +import org.gephi.appearance.spi.TransformerUI; +import org.gephi.ui.appearance.plugin.category.DefaultCategory; +import org.openide.util.NbBundle; +import org.openide.util.lookup.ServiceProvider; + +/** + * @author mbastian + */ +@ServiceProvider(service = TransformerUI.class, position = 300) +public class UniqueNodeSizeTransformerUI implements TransformerUI { + + private UniqueSizeTransformerPanel panel; + + @Override + public String getDisplayName() { + return NbBundle.getMessage(UniqueNodeSizeTransformerUI.class, "Unique.name"); + } + + @Override + public TransformerCategory getCategory() { + return DefaultCategory.SIZE; + } + + @Override + public String getDescription() { + return null; + } + + @Override + public Icon getIcon() { + return null; + } + + @Override + public synchronized JPanel getPanel(Function function) { + if (panel == null) { + panel = new UniqueSizeTransformerPanel(); + } + panel.setup((SimpleFunction) function); + return panel; + } + + @Override + public synchronized AbstractButton[] getControlButton() { + return null; + } + + @Override + public Class getTransformerClass() { + return UniqueNodeSizeTransformer.class; + } +} diff --git a/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/UniqueSizeTransformerPanel.form b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/UniqueSizeTransformerPanel.form new file mode 100644 index 0000000000..ae89039394 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/UniqueSizeTransformerPanel.form @@ -0,0 +1,57 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/UniqueSizeTransformerPanel.java b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/UniqueSizeTransformerPanel.java new file mode 100644 index 0000000000..418049342e --- /dev/null +++ b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/UniqueSizeTransformerPanel.java @@ -0,0 +1,118 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.ui.appearance.plugin; + +import javax.swing.event.ChangeListener; +import org.gephi.appearance.api.SimpleFunction; +import org.gephi.appearance.plugin.AbstractUniqueSizeTransformer; + +/** + * @author mbastian + */ +public class UniqueSizeTransformerPanel extends javax.swing.JPanel { + + private AbstractUniqueSizeTransformer transformer; + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JLabel jLabel1; + private javax.swing.JSpinner sizeSpinner; + // End of variables declaration//GEN-END:variables + + private ChangeListener sizeChangeListener = null; + + public UniqueSizeTransformerPanel() { + initComponents(); + } + + public void setup(SimpleFunction function) { + transformer = function.getTransformer(); + + if (sizeChangeListener != null) { + sizeSpinner.removeChangeListener(sizeChangeListener); + } + sizeSpinner.setValue(transformer.getSize()); + sizeChangeListener = (e -> transformer.setSize((Float) sizeSpinner.getValue())); + sizeSpinner.addChangeListener(sizeChangeListener); + } + + /** + * This method is called from within the constructor to initialize the form. + * WARNING: Do NOT modify this code. The content of this method is always + * regenerated by the Form Editor. + */ + @SuppressWarnings("unchecked") + // //GEN-BEGIN:initComponents + private void initComponents() { + + jLabel1 = new javax.swing.JLabel(); + sizeSpinner = new javax.swing.JSpinner(); + + jLabel1.setText(org.openide.util.NbBundle + .getMessage(UniqueSizeTransformerPanel.class, "UniqueSizeTransformerPanel.jLabel1.text")); // NOI18N + + sizeSpinner.setModel( + new javax.swing.SpinnerNumberModel(1.0f, 0.01f, null, 0.5f)); + + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); + this.setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(jLabel1) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(sizeSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap(294, Short.MAX_VALUE)) + ); + layout.setVerticalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jLabel1) + .addComponent(sizeSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addContainerGap(266, Short.MAX_VALUE)) + ); + }// //GEN-END:initComponents +} diff --git a/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/category/DefaultCategory.java b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/category/DefaultCategory.java new file mode 100644 index 0000000000..95ea540b44 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/category/DefaultCategory.java @@ -0,0 +1,139 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.ui.appearance.plugin.category; + +import javax.swing.Icon; +import org.gephi.appearance.spi.TransformerCategory; +import org.openide.util.ImageUtilities; +import org.openide.util.NbBundle; + +/** + * @author mbastian + */ +public class DefaultCategory { + + public static TransformerCategory SIZE = new TransformerCategory() { + @Override + public String getDisplayName() { + return NbBundle.getMessage(DefaultCategory.class, "Category.Size.name"); + } + + @Override + public Icon getIcon() { + return ImageUtilities.loadImageIcon("AppearancePluginUI/size.svg", false); + } + + @Override + public String getId() { + return "SIZE"; + } + + @Override + public String toString() { + return getId(); + } + }; + public static TransformerCategory COLOR = new TransformerCategory() { + @Override + public String getDisplayName() { + return NbBundle.getMessage(DefaultCategory.class, "Category.Color.name"); + } + + @Override + public Icon getIcon() { + return ImageUtilities.loadImageIcon("AppearancePluginUI/color.svg", false); + } + + @Override + public String getId() { + return "COLOR"; + } + + @Override + public String toString() { + return getId(); + } + }; + public static TransformerCategory LABEL_COLOR = new TransformerCategory() { + @Override + public String getDisplayName() { + return NbBundle.getMessage(DefaultCategory.class, "Category.LabelColor.name"); + } + + @Override + public Icon getIcon() { + return ImageUtilities.loadImageIcon("AppearancePluginUI/labelcolor.svg", false); + } + + @Override + public String getId() { + return "LABEL_COLOR"; + } + + @Override + public String toString() { + return getId(); + } + }; + public static TransformerCategory LABEL_SIZE = new TransformerCategory() { + @Override + public String getDisplayName() { + return NbBundle.getMessage(DefaultCategory.class, "Category.LabelSize.name"); + } + + @Override + public Icon getIcon() { + return ImageUtilities.loadImageIcon("AppearancePluginUI/labelsize.svg", false); + } + + @Override + public String getId() { + return "LABEL_SIZE"; + } + + @Override + public String toString() { + return getId(); + } + }; +} diff --git a/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/palette/PaletteGeneratorPanel.form b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/palette/PaletteGeneratorPanel.form new file mode 100644 index 0000000000..b431a66fcd --- /dev/null +++ b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/palette/PaletteGeneratorPanel.form @@ -0,0 +1,166 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/palette/PaletteGeneratorPanel.java b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/palette/PaletteGeneratorPanel.java new file mode 100644 index 0000000000..6fb9db71ac --- /dev/null +++ b/modules/AppearancePluginUI/src/main/java/org/gephi/ui/appearance/plugin/palette/PaletteGeneratorPanel.java @@ -0,0 +1,296 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.ui.appearance.plugin.palette; + +import java.awt.Color; +import java.awt.Component; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; +import java.util.Arrays; +import javax.swing.DefaultComboBoxModel; +import javax.swing.JLabel; +import javax.swing.JTable; +import javax.swing.table.DefaultTableModel; +import javax.swing.table.TableCellRenderer; +import javax.swing.table.TableColumn; +import org.gephi.appearance.plugin.palette.Palette; +import org.gephi.appearance.plugin.palette.PaletteManager; +import org.gephi.appearance.plugin.palette.Preset; + +/** + * @author mbastian + */ +public class PaletteGeneratorPanel extends javax.swing.JPanel { + + private Preset selectedPreset; + private Palette selectedPalette; + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JPanel centerPanel; + private javax.swing.JScrollPane centerScrollPanel; + private javax.swing.JLabel colorCountLabel; + private javax.swing.JTable colorTable; + private javax.swing.JButton generateButton; + private javax.swing.JLabel labelColorCount; + private javax.swing.JLabel labelPreset; + private javax.swing.JSpinner limitColorSpinner; + private javax.swing.JCheckBox limitColorsCheckbox; + private javax.swing.JComboBox presetCombo; + // End of variables declaration//GEN-END:variables + + public PaletteGeneratorPanel() { + initComponents(); + + //Preset Model + DefaultComboBoxModel model = new DefaultComboBoxModel(); + for (Preset preset : PaletteManager.getInstance().getPresets()) { + model.addElement(preset); + } + selectedPreset = (Preset) model.getElementAt(0); + presetCombo.setModel(model); + + limitColorsCheckbox.addItemListener(new ItemListener() { + @Override + public void itemStateChanged(ItemEvent e) { + limitColorSpinner.setEnabled(e.getStateChange() == ItemEvent.SELECTED); + } + }); + + presetCombo.addItemListener(new ItemListener() { + @Override + public void itemStateChanged(ItemEvent e) { + if (presetCombo.getSelectedItem() != selectedPreset) { + selectedPreset = (Preset) presetCombo.getSelectedItem(); + } + } + }); + + //Generate + generateButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + generate(); + } + }); + } + + private void generate() { + int colorCount = Integer.parseInt(colorCountLabel.getText()); + int paletteCount = colorCount; + if (limitColorsCheckbox.isSelected()) { + paletteCount = ((Number) limitColorSpinner.getValue()).intValue(); + } + selectedPalette = PaletteManager.getInstance().generatePalette(paletteCount, selectedPreset); + if (paletteCount < colorCount) { + Color[] cols = Arrays.copyOf(selectedPalette.getColors(), colorCount); + for (int i = paletteCount; i < cols.length; i++) { + cols[i] = Color.LIGHT_GRAY; + } + selectedPalette = new Palette(cols); + } + + String[] columnNames = new String[] {"Color"}; + DefaultTableModel model = new DefaultTableModel(columnNames, colorCount) { + @Override + public boolean isCellEditable(int row, int column) { + return false; + } + }; + colorTable.setModel(model); + + TableColumn colorCol = colorTable.getColumnModel().getColumn(0); + colorCol.setCellRenderer(new ColorCellRenderer()); + + int row = 0; + for (Color c : selectedPalette.getColors()) { + model.setValueAt(c, row++, 0); + } + } + + public void setup(int colorsCount) { + colorCountLabel.setText(String.valueOf(colorsCount)); + limitColorSpinner.setModel(new javax.swing.SpinnerNumberModel(Math.min(colorsCount, 8), 1, colorsCount, 1)); + } + + public Palette getSelectedPalette() { + return selectedPalette; + } + + /** + * This method is called from within the constructor to initialize the form. + * WARNING: Do NOT modify this code. The content of this method is always + * regenerated by the Form Editor. + */ + @SuppressWarnings("unchecked") + // //GEN-BEGIN:initComponents + private void initComponents() { + java.awt.GridBagConstraints gridBagConstraints; + + labelColorCount = new javax.swing.JLabel(); + colorCountLabel = new javax.swing.JLabel(); + labelPreset = new javax.swing.JLabel(); + presetCombo = new javax.swing.JComboBox(); + generateButton = new javax.swing.JButton(); + centerScrollPanel = new javax.swing.JScrollPane(); + centerPanel = new javax.swing.JPanel(); + colorTable = new javax.swing.JTable(); + limitColorsCheckbox = new javax.swing.JCheckBox(); + limitColorSpinner = new javax.swing.JSpinner(); + + labelColorCount.setText(org.openide.util.NbBundle + .getMessage(PaletteGeneratorPanel.class, "PaletteGeneratorPanel.labelColorCount.text")); // NOI18N + + labelPreset.setText(org.openide.util.NbBundle + .getMessage(PaletteGeneratorPanel.class, "PaletteGeneratorPanel.labelPreset.text")); // NOI18N + + generateButton.setText(org.openide.util.NbBundle + .getMessage(PaletteGeneratorPanel.class, "PaletteGeneratorPanel.generateButton.text")); // NOI18N + + centerScrollPanel.setBorder(null); + centerScrollPanel.setOpaque(false); + + centerPanel.setLayout(new java.awt.GridBagLayout()); + + colorTable.setModel(new javax.swing.table.DefaultTableModel( + new Object[][] { + + }, + new String[] { + + } + )); + colorTable.setOpaque(false); + colorTable.setRowHeight(22); + colorTable.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); + colorTable.setShowHorizontalLines(false); + colorTable.setShowVerticalLines(false); + colorTable.setTableHeader(null); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridx = 0; + gridBagConstraints.gridy = 0; + gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; + gridBagConstraints.weightx = 1.0; + gridBagConstraints.weighty = 1.0; + centerPanel.add(colorTable, gridBagConstraints); + + centerScrollPanel.setViewportView(centerPanel); + + limitColorsCheckbox.setSelected(true); + limitColorsCheckbox.setText(org.openide.util.NbBundle + .getMessage(PaletteGeneratorPanel.class, "PaletteGeneratorPanel.limitColorsCheckbox.text")); // NOI18N + limitColorsCheckbox.setHorizontalTextPosition(javax.swing.SwingConstants.LEFT); + + limitColorSpinner.setModel(new javax.swing.SpinnerNumberModel(8, 1, null, 1)); + + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); + this.setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(centerScrollPanel) + .addGroup(layout.createSequentialGroup() + .addComponent(presetCombo, javax.swing.GroupLayout.PREFERRED_SIZE, 216, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 73, Short.MAX_VALUE) + .addComponent(generateButton)) + .addGroup(layout.createSequentialGroup() + .addComponent(labelPreset) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, + javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(limitColorSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, 60, + javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(layout.createSequentialGroup() + .addComponent(labelColorCount) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(colorCountLabel) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, + javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(limitColorsCheckbox))) + .addContainerGap()) + ); + layout.setVerticalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(labelColorCount) + .addComponent(colorCountLabel)) + .addComponent(limitColorsCheckbox)) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(28, 28, 28) + .addComponent(labelPreset)) + .addGroup(layout.createSequentialGroup() + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(limitColorSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(presetCombo, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(generateButton)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(centerScrollPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 191, Short.MAX_VALUE) + .addContainerGap()) + ); + }// //GEN-END:initComponents + + class ColorCellRenderer extends JLabel implements TableCellRenderer { + + public ColorCellRenderer() { + setOpaque(true); + } + + @Override + public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, + int row, int column) { + Color c = (Color) value; + setBackground(c); + return this; + } + } +} diff --git a/modules/AppearancePluginUI/src/main/nbm/manifest.mf b/modules/AppearancePluginUI/src/main/nbm/manifest.mf new file mode 100644 index 0000000000..9a39468cd6 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/nbm/manifest.mf @@ -0,0 +1,6 @@ +Manifest-Version: 1.0 +AutoUpdate-Essential-Module: true +OpenIDE-Module-Localizing-Bundle: org/gephi/ui/appearance/plugin/Bundle.properties +OpenIDE-Module-Specification-Version: ${gephi.modules.specification.version} +OpenIDE-Module-Display-Category: Plugin +OpenIDE-Module-Name: Partition Plugin UI \ No newline at end of file diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle.properties new file mode 100644 index 0000000000..5a3b096fdd --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle.properties @@ -0,0 +1,23 @@ +OpenIDE-Module-Short-Description=Partition transformers UI +Unique.name = Unique +Attribute.ranking.name = Ranking +Attribute.partition.name = Partition + +RankingColorTransformerPanel.labelColor.text=Color: +RankingSizeTransformerPanel.labelMaxSize.text=Max size: +RankingSizeTransformerPanel.labelMinSize.text=Min size: + +PalettePopup.palette=Palettes +PalettePopup.default=Default +PalettePopup.generate=Generate... +PalettePopup.invert=Invert +PalettePopup.standard=Standard +PalettePopup.recent=Recent +PalettePopup.norecent=No recent palette +PalettePopup.allgrey=All grey +PalettePopup.allwhite=All white +UniqueColorTransformerPanel.colorChooser.toolTipText=Set Color +UniqueSizeTransformerPanel.jLabel1.text=Size: +PartitionColorTransformerPanel.paletteButton=Palette... +PartitionColorTransformerPanel.generatePalettePanel.title=Generate Palette +PartitionColorTransformerPanel.tooltip.elementsCount = elements diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_ar.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_ar.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_ar.properties @@ -0,0 +1 @@ + diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_ca.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_ca.properties new file mode 100644 index 0000000000..97cca3fa50 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_ca.properties @@ -0,0 +1,23 @@ +OpenIDE-Module-Short-Description=Partition transformers UI +Unique.name=Unique +Attribute.ranking.name=Ranking +Attribute.partition.name=Partition + + +RankingColorTransformerPanel.labelColor.text=Color: +RankingSizeTransformerPanel.labelMaxSize.text=Mida mΰxima: +RankingSizeTransformerPanel.labelMinSize.text=Mida mνnima: +PalettePopup.palette=Palettes +PalettePopup.default=Per defecte +PalettePopup.generate=Genera... +PalettePopup.invert=Inverteix +PalettePopup.standard=Standard +PalettePopup.recent=Recent +PalettePopup.norecent=No recent palette +PalettePopup.allgrey=All grey +PalettePopup.allwhite=Tots blancs +UniqueColorTransformerPanel.colorChooser.toolTipText=Estableix el color +UniqueSizeTransformerPanel.jLabel1.text=Mida: +PartitionColorTransformerPanel.paletteButton=Paleta... +PartitionColorTransformerPanel.generatePalettePanel.title=Genera una paleta +PartitionColorTransformerPanel.tooltip.elementsCount=elements diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_cs.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_cs.properties new file mode 100644 index 0000000000..69a2eceb1b --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_cs.properties @@ -0,0 +1,25 @@ +OpenIDE-Module-Short-Description=Rozhranν transformαtor\u016f oddνlu +Unique.name = Jedine\u010dnι +# Attribute.ranking.name = Ranking +# Attribute.partition.name = Partition + + + +RankingColorTransformerPanel.labelColor.text=Barva: +RankingSizeTransformerPanel.labelMaxSize.text=Maximαlnν velikost: +RankingSizeTransformerPanel.labelMinSize.text=Minimαlnν velikost: + +PalettePopup.palette=Palety +PalettePopup.default=Vύchozν +PalettePopup.generate=Vytvo\u0159it... +PalettePopup.invert=P\u0159evrαtit +PalettePopup.standard=Standardnν +PalettePopup.recent=Nedαvnι +PalettePopup.norecent=\u017dαdnα nedαvnα paleta +PalettePopup.allgrey=V\u0161e \u0161edι +PalettePopup.allwhite=V\u0161e bνlι +UniqueColorTransformerPanel.colorChooser.toolTipText=Nastavit barvu +UniqueSizeTransformerPanel.jLabel1.text=Velikost: +PartitionColorTransformerPanel.paletteButton=Paleta... +PartitionColorTransformerPanel.generatePalettePanel.title=Vytvo\u0159it paletu +PartitionColorTransformerPanel.tooltip.elementsCount = prvky diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_de.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_de.properties new file mode 100644 index 0000000000..da10a9a33f --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_de.properties @@ -0,0 +1,22 @@ +OpenIDE-Module-Short-Description=Partition-Transformierer Bedienoberflδche +Unique.name=Eindeutig +# Attribute.ranking.name = Ranking +# Attribute.partition.name = Partition + +RankingColorTransformerPanel.labelColor.text=Farbe: +RankingSizeTransformerPanel.labelMaxSize.text=Maximalgrφίe: +RankingSizeTransformerPanel.labelMinSize.text=Minimalgrφίe: +PalettePopup.palette=Paletten +PalettePopup.default=Standard +PalettePopup.generate=Generiere... +PalettePopup.invert=Invertiere +PalettePopup.standard=Standard +PalettePopup.recent=Aktuell +PalettePopup.norecent=Keine aktuelle Palette +PalettePopup.allgrey=Alles grau +PalettePopup.allwhite=Komplett weiί +UniqueColorTransformerPanel.colorChooser.toolTipText=Setze Farbe +UniqueSizeTransformerPanel.jLabel1.text=Grφίe: +PartitionColorTransformerPanel.paletteButton=Palette... +PartitionColorTransformerPanel.generatePalettePanel.title=Generiere Palette +PartitionColorTransformerPanel.tooltip.elementsCount=Elemente diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_es.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_es.properties new file mode 100644 index 0000000000..193c894571 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_es.properties @@ -0,0 +1,23 @@ +OpenIDE-Module-Short-Description=UI para los transformadores de particionado +Unique.name=Ϊnico +Attribute.ranking.name=Clasificaci\u00F3n +Attribute.partition.name=Particiσn + + +RankingColorTransformerPanel.labelColor.text=Color: +RankingSizeTransformerPanel.labelMaxSize.text=Tamaρo mαx.: +RankingSizeTransformerPanel.labelMinSize.text=Tamaρo mνn.: +PalettePopup.palette=Paletas +PalettePopup.default=Por defecto +PalettePopup.generate=Generar... +PalettePopup.invert=Invertir +PalettePopup.standard=Estαndar +PalettePopup.recent=Recientes +PalettePopup.norecent=Sin paletas recientes +PalettePopup.allgrey=Todo grises +PalettePopup.allwhite=Todos blancos +UniqueColorTransformerPanel.colorChooser.toolTipText=Color de arista Entrante <- +UniqueSizeTransformerPanel.jLabel1.text=Tamaρo: +PartitionColorTransformerPanel.paletteButton=Paleta... +PartitionColorTransformerPanel.generatePalettePanel.title=Generar paleta +PartitionColorTransformerPanel.tooltip.elementsCount=elementos diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_fr.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_fr.properties new file mode 100644 index 0000000000..4bb8a4f5be --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_fr.properties @@ -0,0 +1,23 @@ +OpenIDE-Module-Short-Description=GUI transformeurs de partition +Unique.name=Unique +Attribute.ranking.name=Classement +Attribute.partition.name=Partition + + +RankingColorTransformerPanel.labelColor.text=Couleur : +RankingSizeTransformerPanel.labelMaxSize.text=Taille max : +RankingSizeTransformerPanel.labelMinSize.text=Taille min : +PalettePopup.palette=Palettes +PalettePopup.default=Dιfaut +PalettePopup.generate=Gιnιrer... +PalettePopup.invert=Inverser +PalettePopup.standard=Standard +PalettePopup.recent=Rιcent +PalettePopup.norecent=Pas de palette rιcente +PalettePopup.allgrey=Tout gris +PalettePopup.allwhite=Tout blanc +UniqueColorTransformerPanel.colorChooser.toolTipText=Couleur de lien ENTRANT<- +UniqueSizeTransformerPanel.jLabel1.text=Taille : +PartitionColorTransformerPanel.paletteButton=Palette... +PartitionColorTransformerPanel.generatePalettePanel.title=Gιnιrer la palette +PartitionColorTransformerPanel.tooltip.elementsCount=ιlιments diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_he.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_he.properties new file mode 100644 index 0000000000..5cbe0cc143 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_he.properties @@ -0,0 +1,23 @@ +OpenIDE-Module-Short-Description=Partition transformers UI +Unique.name=Unique +Attribute.ranking.name=Ranking +Attribute.partition.name=Partition + + +RankingColorTransformerPanel.labelColor.text=\u05e6\u05d1\u05e2: +RankingSizeTransformerPanel.labelMaxSize.text=Max size: +RankingSizeTransformerPanel.labelMinSize.text=Min size: +PalettePopup.palette=Palettes +PalettePopup.default=\u05d1\u05e8\u05d9\u05e8\u05ea \u05de\u05d7\u05d3\u05dc +PalettePopup.generate=Generate... +PalettePopup.invert=Invert +PalettePopup.standard=Standard +PalettePopup.recent=Recent +PalettePopup.norecent=No recent palette +PalettePopup.allgrey=All grey +PalettePopup.allwhite=All white +UniqueColorTransformerPanel.colorChooser.toolTipText=Set Color +UniqueSizeTransformerPanel.jLabel1.text=Size: +PartitionColorTransformerPanel.paletteButton=Palette... +PartitionColorTransformerPanel.generatePalettePanel.title=Generate Palette +PartitionColorTransformerPanel.tooltip.elementsCount=elements diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_hu.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_hu.properties new file mode 100644 index 0000000000..c1efca7613 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_hu.properties @@ -0,0 +1,23 @@ + + +PalettePopup.standard=Alap\u00E9rtelmezett +PartitionColorTransformerPanel.paletteButton=Paletta... +PalettePopup.invert=Ford\u00EDtott +Attribute.partition.name=Part\u00EDci\u00F3 +PartitionColorTransformerPanel.tooltip.elementsCount=elemeket +PalettePopup.norecent=Nem friss paletta +PalettePopup.recent=Friss +RankingSizeTransformerPanel.labelMaxSize.text=Max m\u00E9ret: +RankingColorTransformerPanel.labelColor.text=Sz\u00EDn: +Unique.name=Egyedi +PalettePopup.allwhite=Minden feh\u00E9r +PartitionColorTransformerPanel.generatePalettePanel.title=Paletta gener\u00E1l\u00E1sa +RankingSizeTransformerPanel.labelMinSize.text=Min m\u00E9ret: +UniqueColorTransformerPanel.colorChooser.toolTipText=Sz\u00EDn be\u00E1ll\u00EDt\u00E1sa +Attribute.ranking.name=Rangsorol\u00E1s +PalettePopup.allgrey=Minden sz\u00FCrke +PalettePopup.palette=Paletta +PalettePopup.generate=Gener\u00E1ci\u00F3... +OpenIDE-Module-Short-Description=Part\u00EDci\u00F3 transzform\u00E1torok UI +UniqueSizeTransformerPanel.jLabel1.text=M\u00E9ret: +PalettePopup.default=Alap\u00E9rtelmezett diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_it.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_it.properties new file mode 100644 index 0000000000..8f87ff41e0 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_it.properties @@ -0,0 +1,23 @@ +OpenIDE-Module-Short-Description=Partition transformers UI +Unique.name=Unique +Attribute.ranking.name=Ranking +Attribute.partition.name=Partition + + +RankingColorTransformerPanel.labelColor.text=Color: +RankingSizeTransformerPanel.labelMaxSize.text=Max size: +RankingSizeTransformerPanel.labelMinSize.text=Min size: +PalettePopup.palette=Palettes +PalettePopup.default=Default +PalettePopup.generate=Generate... +PalettePopup.invert=Invert +PalettePopup.standard=Standard +PalettePopup.recent=Recent +PalettePopup.norecent=No recent palette +PalettePopup.allgrey=All grey +PalettePopup.allwhite=All white +UniqueColorTransformerPanel.colorChooser.toolTipText=Set Color +UniqueSizeTransformerPanel.jLabel1.text=Size: +PartitionColorTransformerPanel.paletteButton=Palette... +PartitionColorTransformerPanel.generatePalettePanel.title=Generate Palette +PartitionColorTransformerPanel.tooltip.elementsCount=elements diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_ja.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_ja.properties new file mode 100644 index 0000000000..9e59af5e61 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_ja.properties @@ -0,0 +1,27 @@ +# OpenIDE-Module-Short-Description=Partition transformers UI +# Unique.name = Unique +# Attribute.ranking.name = Ranking +# Attribute.partition.name = Partition + + +# LabelColorTransformerUI.name = Label Color +# LabelSizeTransformerUI.name = Label Size + +# RankingColorTransformerPanel.labelColor.text=Color: +# RankingSizeTransformerPanel.labelMaxSize.text=Max size: +# RankingSizeTransformerPanel.labelMinSize.text=Min size: + +# PalettePopup.palette=Palettes +# PalettePopup.default=Default +# PalettePopup.generate=Generate... +# PalettePopup.invert=Invert +# PalettePopup.standard=Standard +# PalettePopup.recent=Recent +# PalettePopup.norecent=No recent palette +# PalettePopup.allgrey=All grey +# PalettePopup.allwhite=All white +UniqueColorTransformerPanel.colorChooser.toolTipText=\u6d41\u5165\u8fba<-\u8272 +# UniqueSizeTransformerPanel.jLabel1.text=Size: +# PartitionColorTransformerPanel.paletteButton=Palette... +# PartitionColorTransformerPanel.generatePalettePanel.title=Generate Palette +# PartitionColorTransformerPanel.tooltip.elementsCount = elements diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_ko.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_ko.properties new file mode 100644 index 0000000000..ff98b04817 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_ko.properties @@ -0,0 +1,23 @@ + + +PalettePopup.standard=\uD45C\uC900 +PartitionColorTransformerPanel.paletteButton=\uD314\uB808\uD2B8... +PalettePopup.invert=\uBC18\uC804 +Attribute.partition.name=\uD30C\uD2F0\uC158 +PartitionColorTransformerPanel.tooltip.elementsCount=\uADF8\uB798\uD504 \uC694\uC18C +PalettePopup.norecent=\uCD5C\uADFC \uD314\uB808\uD2B8 \uC5C6\uC74C +PalettePopup.recent=\uCD5C\uADFC +RankingSizeTransformerPanel.labelMaxSize.text=\uCD5C\uB300 \uD06C\uAE30: +RankingColorTransformerPanel.labelColor.text=\uC0C9\uC0C1: +Unique.name=\uC2DD\uBCC4\uBA85 +PalettePopup.allwhite=\uBAA8\uB450 \uD770\uC0C9 +PartitionColorTransformerPanel.generatePalettePanel.title=\uD314\uB808\uD2B8 \uC0DD\uC131 +RankingSizeTransformerPanel.labelMinSize.text=\uCD5C\uC18C \uD06C\uAE30: +UniqueColorTransformerPanel.colorChooser.toolTipText=\uC0C9\uC0C1 \uC9C0\uC815 +Attribute.ranking.name=\uC21C\uC704 +PalettePopup.allgrey=\uBAA8\uB450 \uD68C\uC0C9 +PalettePopup.palette=\uD314\uB808\uD2B8 +PalettePopup.generate=\uC0DD\uC131\uD558\uAE30... +OpenIDE-Module-Short-Description=\uD30C\uD2F0\uC158 \uBCC0\uD658 \uB3C4\uAD6C UI +UniqueSizeTransformerPanel.jLabel1.text=\uD06C\uAE30: +PalettePopup.default=\uAE30\uBCF8\uAC12 diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_nl.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_nl.properties new file mode 100644 index 0000000000..adc08433b4 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_nl.properties @@ -0,0 +1,23 @@ +OpenIDE-Module-Short-Description=Partition transformers UI +Unique.name=Uniek +Attribute.ranking.name=Ranking +Attribute.partition.name=Partition + + +RankingColorTransformerPanel.labelColor.text=Kleur: +RankingSizeTransformerPanel.labelMaxSize.text=Max. grootte: +RankingSizeTransformerPanel.labelMinSize.text=Min. grootte: +PalettePopup.palette=Paletten +PalettePopup.default=Standaard +PalettePopup.generate=Genereren... +PalettePopup.invert=Omkeren +PalettePopup.standard=Standaard +PalettePopup.recent=Recent +PalettePopup.norecent=Geen recent palet +PalettePopup.allgrey=All grey +PalettePopup.allwhite=All white +UniqueColorTransformerPanel.colorChooser.toolTipText=Kleur instellen +UniqueSizeTransformerPanel.jLabel1.text=Grootte: +PartitionColorTransformerPanel.paletteButton=Palet... +PartitionColorTransformerPanel.generatePalettePanel.title=Palet genereren +PartitionColorTransformerPanel.tooltip.elementsCount=elementen diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_pt_BR.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_pt_BR.properties new file mode 100644 index 0000000000..7bb1bc688e --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_pt_BR.properties @@ -0,0 +1,25 @@ +OpenIDE-Module-Short-Description=Interface de usuαrio de transformadores de partiηγo +Unique.name = Ϊnico +# Attribute.ranking.name = Ranking +# Attribute.partition.name = Partition + + + +RankingColorTransformerPanel.labelColor.text=Cor: +RankingSizeTransformerPanel.labelMaxSize.text=Tamanho mαx: +RankingSizeTransformerPanel.labelMinSize.text=Tamanho mνn: + +PalettePopup.palette=Paletas +PalettePopup.default=Padrγo +PalettePopup.generate=Gerar +PalettePopup.invert=Inverter +PalettePopup.standard=Padrγo +PalettePopup.recent=Recente +PalettePopup.norecent=Nenhuma paleta recente +PalettePopup.allgrey=Tudo Cinza +PalettePopup.allwhite=Tudo branco +UniqueColorTransformerPanel.colorChooser.toolTipText=Cor da aresta de entrada <- +UniqueSizeTransformerPanel.jLabel1.text=Tamanho: +PartitionColorTransformerPanel.paletteButton=Paleta... +PartitionColorTransformerPanel.generatePalettePanel.title=Gerar paleta +PartitionColorTransformerPanel.tooltip.elementsCount = elementos diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_ro.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_ro.properties new file mode 100644 index 0000000000..1ef1800593 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_ro.properties @@ -0,0 +1,23 @@ + + +Unique.name=Unice +Attribute.ranking.name=Clasament +Attribute.partition.name=Parti\u021Bie +PalettePopup.generate=Genereaz\u0103... +PalettePopup.invert=Inverseaz\u0103 +PalettePopup.standard=Standard +PalettePopup.recent=Recente +PalettePopup.norecent=Nicio palet\u0103 recent\u0103 +PalettePopup.allgrey=Toate gri +PalettePopup.allwhite=Toate albe +UniqueColorTransformerPanel.colorChooser.toolTipText=Seteaz\u0103 culoarea +UniqueSizeTransformerPanel.jLabel1.text=Dimensiune: +PartitionColorTransformerPanel.paletteButton=Palet\u0103... +PartitionColorTransformerPanel.generatePalettePanel.title=Genereaz\u0103 palet\u0103 +PartitionColorTransformerPanel.tooltip.elementsCount=elemente +OpenIDE-Module-Short-Description=Interfa\u021Ba transformatorilor de parti\u021Bii +PalettePopup.default=Implicit +RankingColorTransformerPanel.labelColor.text=Culoare: +RankingSizeTransformerPanel.labelMaxSize.text=Dimensiune maxim\u0103: +RankingSizeTransformerPanel.labelMinSize.text=Dimensiune minim\u0103: +PalettePopup.palette=Palete diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_ru.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_ru.properties new file mode 100644 index 0000000000..01e256279d --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_ru.properties @@ -0,0 +1,27 @@ +# OpenIDE-Module-Short-Description=Partition transformers UI +# Unique.name = Unique +# Attribute.ranking.name = Ranking +# Attribute.partition.name = Partition + + +# LabelColorTransformerUI.name = Label Color +# LabelSizeTransformerUI.name = Label Size + +# RankingColorTransformerPanel.labelColor.text=Color: +# RankingSizeTransformerPanel.labelMaxSize.text=Max size: +# RankingSizeTransformerPanel.labelMinSize.text=Min size: + +# PalettePopup.palette=Palettes +# PalettePopup.default=Default +# PalettePopup.generate=Generate... +# PalettePopup.invert=Invert +# PalettePopup.standard=Standard +# PalettePopup.recent=Recent +# PalettePopup.norecent=No recent palette +# PalettePopup.allgrey=All grey +# PalettePopup.allwhite=All white +UniqueColorTransformerPanel.colorChooser.toolTipText=\u0426\u0432\u0435\u0442 \u0432\u0445\u043e\u0434. \u0440\u0451\u0431\u0435\u0440 +# UniqueSizeTransformerPanel.jLabel1.text=Size: +# PartitionColorTransformerPanel.paletteButton=Palette... +# PartitionColorTransformerPanel.generatePalettePanel.title=Generate Palette +# PartitionColorTransformerPanel.tooltip.elementsCount = elements diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_th.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_th.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_th.properties @@ -0,0 +1 @@ + diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_tr.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_tr.properties new file mode 100644 index 0000000000..f8d749877d --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_tr.properties @@ -0,0 +1,23 @@ +OpenIDE-Module-Short-Description=Partition transformers UI +Unique.name=E\u015fsiz +Attribute.ranking.name=Ranking +Attribute.partition.name=Partition + + +RankingColorTransformerPanel.labelColor.text=Renk: +RankingSizeTransformerPanel.labelMaxSize.text=En bόyόk boyut: +RankingSizeTransformerPanel.labelMinSize.text=En kόηόk boyut: +PalettePopup.palette=Paletler +PalettePopup.default=Varsay\u0131lan +PalettePopup.generate=άret... +PalettePopup.invert=Tersini ηevir +PalettePopup.standard=Standart +PalettePopup.recent=En son +PalettePopup.norecent=En son palet yok +PalettePopup.allgrey=Tamamen gri +PalettePopup.allwhite=Tamam\u0131 beyaz +UniqueColorTransformerPanel.colorChooser.toolTipText=Renk Ver +UniqueSizeTransformerPanel.jLabel1.text=Boyut: +PartitionColorTransformerPanel.paletteButton=Palet... +PartitionColorTransformerPanel.generatePalettePanel.title=Palet άret +PartitionColorTransformerPanel.tooltip.elementsCount=φgeler diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_uk.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_uk.properties new file mode 100644 index 0000000000..c780e6ebe0 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_uk.properties @@ -0,0 +1,21 @@ +OpenIDE-Module-Short-Description=\u0406\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0442\u0440\u0430\u043D\u0441\u0444\u043E\u0440\u043C\u0430\u0442\u043E\u0440\u0456\u0432 \u043F\u0435\u0440\u0435\u0433\u043E\u0440\u043E\u0434\u043E\u043A +RankingSizeTransformerPanel.labelMaxSize.text=\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0438\u0439 \u0440\u043E\u0437\u043C\u0456\u0440: +Attribute.ranking.name=\u0420\u0435\u0439\u0442\u0438\u043D\u0433 +RankingSizeTransformerPanel.labelMinSize.text=\u041C\u0456\u043D\u0456\u043C\u0430\u043B\u044C\u043D\u0438\u0439 \u0440\u043E\u0437\u043C\u0456\u0440: +Unique.name=\u0423\u043D\u0456\u043A\u0430\u043B\u044C\u043D\u0438\u0439 +Attribute.partition.name=\u041F\u0435\u0440\u0435\u0433\u043E\u0440\u043E\u0434\u043A\u0430 +RankingColorTransformerPanel.labelColor.text=\u041A\u043E\u043B\u0456\u0440: +PalettePopup.palette=\u041F\u0430\u043B\u0456\u0442\u0440\u0438 +PalettePopup.default=\u0417\u0430 \u0437\u0430\u043C\u043E\u0432\u0447\u0443\u0432\u0430\u043D\u043D\u044F\u043C +PalettePopup.generate=\u0413\u0435\u043D\u0435\u0440\u0443\u0432\u0430\u0442\u0438... +PalettePopup.invert=\u0406\u043D\u0432\u0435\u0440\u0442\u0443\u0432\u0430\u0442\u0438 +PalettePopup.standard=\u0421\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u0438\u0439 +PalettePopup.recent=\u041E\u0441\u0442\u0430\u043D\u043D\u0456 +PalettePopup.norecent=\u041D\u0435\u043C\u0430\u0454 \u043E\u0441\u0442\u0430\u043D\u043D\u0456\u0445 \u043F\u0430\u043B\u0456\u0442\u0440 +PalettePopup.allgrey=\u0412\u0435\u0441\u044C \u0441\u0456\u0440\u0438\u0439 +PalettePopup.allwhite=\u0412\u0435\u0441\u044C \u0431\u0456\u043B\u0438\u0439 +UniqueColorTransformerPanel.colorChooser.toolTipText=\u0412\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0438 \u043A\u043E\u043B\u0456\u0440 +UniqueSizeTransformerPanel.jLabel1.text=\u0420\u043E\u0437\u043C\u0456\u0440: +PartitionColorTransformerPanel.paletteButton=\u041F\u0430\u043B\u0456\u0442\u0440\u0430... +PartitionColorTransformerPanel.generatePalettePanel.title=\u0421\u0442\u0432\u043E\u0440\u0438\u0442\u0438 \u043F\u0430\u043B\u0456\u0442\u0440\u0443 +PartitionColorTransformerPanel.tooltip.elementsCount=\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432 diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_zh_CN.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_zh_CN.properties new file mode 100644 index 0000000000..c4051abab8 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_zh_CN.properties @@ -0,0 +1,24 @@ +OpenIDE-Module-Short-Description=\u5206\u533a\u8f6c\u6362\u754c\u9762 +Unique.name=\u7edf\u4e00\u7684 +# Attribute.ranking.name = Ranking +# Attribute.partition.name = Partition + +RankingColorTransformerPanel.labelColor.text=\u989C\u8272\uFF1A +RankingSizeTransformerPanel.labelMaxSize.text=\u6700\u5927\u5c3a\u5bf8: +RankingSizeTransformerPanel.labelMinSize.text=\u6700\u5c0f\u5c3a\u5bf8: +PalettePopup.palette=\u8C03\u8272\u677F +PalettePopup.default=\u9ed8\u8ba4 +PalettePopup.generate=\u751F\u6210\u2026 +PalettePopup.invert=\u98a0\u5012 +PalettePopup.standard=\u6807\u51c6\u8f93\u51fa +PalettePopup.recent=\u6700\u8fd1 +PalettePopup.norecent=\u6ca1\u6709\u65b0\u7684\u9009\u53d6\u8272 +PalettePopup.allgrey=\u5168\u90e8\u7070\u8272 +PalettePopup.allwhite=\u5168\u90e8\u767d\u8272 +UniqueColorTransformerPanel.colorChooser.toolTipText=\u8fb9 IN<- \u989c\u8272 +UniqueSizeTransformerPanel.jLabel1.text=\u5927\u5c0f\uff1a +PartitionColorTransformerPanel.paletteButton=\u8C03\u8272\u677F\u2026 +PartitionColorTransformerPanel.generatePalettePanel.title=\u53cd\u8f6c\u8c03\u8272\u677f +PartitionColorTransformerPanel.tooltip.elementsCount=\u5206\u5b50 +Attribute.ranking.name=\u6392\u540D +Attribute.partition.name=\u5206\u5272 diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_zh_TW.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_zh_TW.properties new file mode 100644 index 0000000000..8f87ff41e0 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/Bundle_zh_TW.properties @@ -0,0 +1,23 @@ +OpenIDE-Module-Short-Description=Partition transformers UI +Unique.name=Unique +Attribute.ranking.name=Ranking +Attribute.partition.name=Partition + + +RankingColorTransformerPanel.labelColor.text=Color: +RankingSizeTransformerPanel.labelMaxSize.text=Max size: +RankingSizeTransformerPanel.labelMinSize.text=Min size: +PalettePopup.palette=Palettes +PalettePopup.default=Default +PalettePopup.generate=Generate... +PalettePopup.invert=Invert +PalettePopup.standard=Standard +PalettePopup.recent=Recent +PalettePopup.norecent=No recent palette +PalettePopup.allgrey=All grey +PalettePopup.allwhite=All white +UniqueColorTransformerPanel.colorChooser.toolTipText=Set Color +UniqueSizeTransformerPanel.jLabel1.text=Size: +PartitionColorTransformerPanel.paletteButton=Palette... +PartitionColorTransformerPanel.generatePalettePanel.title=Generate Palette +PartitionColorTransformerPanel.tooltip.elementsCount=elements diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle.properties new file mode 100644 index 0000000000..c7ed2d7a75 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle.properties @@ -0,0 +1,4 @@ +Category.Size.name = Size +Category.Color.name = Color +Category.LabelColor.name = Label Color +Category.LabelSize.name = Label Size \ No newline at end of file diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_ar.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_ar.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_ar.properties @@ -0,0 +1 @@ + diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_ca.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_ca.properties new file mode 100644 index 0000000000..3a71c04ced --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_ca.properties @@ -0,0 +1,4 @@ +Category.Size.name = Mida +Category.Color.name = Color +Category.LabelColor.name = Color de l'etiqueta +Category.LabelSize.name = Mida de l'etiqueta diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_cs.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_cs.properties new file mode 100644 index 0000000000..f137122208 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_cs.properties @@ -0,0 +1,4 @@ +Category.Size.name = Velikost +Category.Color.name = Barva +Category.LabelColor.name = barva jmenovky +Category.LabelSize.name = Velikost jmenovky diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_de.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_de.properties new file mode 100644 index 0000000000..c3b4341e9f --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_de.properties @@ -0,0 +1,4 @@ +Category.Size.name = Grφίe +Category.Color.name = Farbe +Category.LabelColor.name = Beschriftungsfarbe +Category.LabelSize.name = Beschriftungsgrφίe diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_es.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_es.properties new file mode 100644 index 0000000000..da15944680 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_es.properties @@ -0,0 +1,4 @@ +Category.Size.name = Tamaρo +Category.Color.name = Color +Category.LabelColor.name = Color de etiqueta +Category.LabelSize.name = Tamaρo de etiqueta diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_fr.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_fr.properties new file mode 100644 index 0000000000..7c85baecac --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_fr.properties @@ -0,0 +1,4 @@ +Category.Size.name = Taille +Category.Color.name = Couleur +Category.LabelColor.name = Couleur des labels +Category.LabelSize.name = Taille des labels diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_he.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_he.properties new file mode 100644 index 0000000000..2bbf467cab --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_he.properties @@ -0,0 +1,4 @@ +Category.Size.name=Size +Category.Color.name=\u05e6\u05d1\u05e2 +Category.LabelColor.name=Label Color +Category.LabelSize.name=Label Size diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_hu.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_hu.properties new file mode 100644 index 0000000000..bec67d6831 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_hu.properties @@ -0,0 +1,6 @@ + + +Category.LabelSize.name=C\u00EDmke m\u00E9rete +Category.LabelColor.name=C\u00EDmke sz\u00EDne +Category.Color.name=Sz\u00EDn +Category.Size.name=M\u00E9ret diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_it.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_it.properties new file mode 100644 index 0000000000..072d62e9f7 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_it.properties @@ -0,0 +1,4 @@ +Category.Size.name=Size +Category.Color.name=Color +Category.LabelColor.name=Label Color +Category.LabelSize.name=Label Size diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_ja.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_ja.properties new file mode 100644 index 0000000000..b3feb1b8d9 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_ja.properties @@ -0,0 +1,4 @@ +Category.Size.name = \u5927\u304d\u3055 +Category.Color.name = \u8272 +# Category.LabelColor.name = Label Color +# Category.LabelSize.name = Label Size diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_ko.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_ko.properties new file mode 100644 index 0000000000..2848335893 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_ko.properties @@ -0,0 +1,6 @@ + + +Category.Color.name=\uC0C9\uC0C1 +Category.LabelColor.name=\uB77C\uBCA8 \uC0C9\uC0C1 +Category.LabelSize.name=\uB77C\uBCA8 \uD06C\uAE30 +Category.Size.name=\uD06C\uAE30 diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_nl.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_nl.properties new file mode 100644 index 0000000000..5d5567f852 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_nl.properties @@ -0,0 +1,4 @@ +Category.Size.name = Grootte +Category.Color.name = Kleur +Category.LabelColor.name = Labelkleur +Category.LabelSize.name = Labelgrootte diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_pt_BR.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_pt_BR.properties new file mode 100644 index 0000000000..4e823b5f77 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_pt_BR.properties @@ -0,0 +1,4 @@ +Category.Size.name = Tamanho +Category.Color.name = Cor +Category.LabelColor.name = Cor do rσtulo +Category.LabelSize.name = Tamanho do rσtulo diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_ro.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_ro.properties new file mode 100644 index 0000000000..406acd6a0c --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_ro.properties @@ -0,0 +1,6 @@ + + +Category.Size.name=Dimensiune +Category.Color.name=Culoare +Category.LabelColor.name=Culoare etichet\u0103 +Category.LabelSize.name=Dimensiune etichet\u0103 diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_ru.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_ru.properties new file mode 100644 index 0000000000..afd48a551a --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_ru.properties @@ -0,0 +1,7 @@ +Category.Size.name=\u0420\u0430\u0437\u043c\u0435\u0440 +Category.Color.name=\u0426\u0432\u0435\u0442 +# Category.LabelColor.name = Label Color +# Category.LabelSize.name = Label Size + +Category.LabelColor.name=\u0426\u0432\u0435\u0442 \u043C\u0435\u0442\u043A\u0438 +Category.LabelSize.name=\u0420\u0430\u0437\u043C\u0435\u0440 \u043C\u0435\u0442\u043A\u0438 diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_th.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_th.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_th.properties @@ -0,0 +1 @@ + diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_tr.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_tr.properties new file mode 100644 index 0000000000..54eb8c84da --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_tr.properties @@ -0,0 +1,4 @@ +Category.Size.name = Boyut +Category.Color.name = Renk +Category.LabelColor.name = Etiket Rengi +Category.LabelSize.name = Etiket Boyutu diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_uk.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_uk.properties new file mode 100644 index 0000000000..853f9a731b --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_uk.properties @@ -0,0 +1,4 @@ +Category.Size.name=\u0420\u043E\u0437\u043C\u0456\u0440 +Category.Color.name=\u041A\u043E\u043B\u0456\u0440 +Category.LabelColor.name=\u041A\u043E\u043B\u0456\u0440 \u0435\u0442\u0438\u043A\u0435\u0442\u043A\u0438 +Category.LabelSize.name=\u0420\u043E\u0437\u043C\u0456\u0440 \u0435\u0442\u0438\u043A\u0435\u0442\u043A\u0438 diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_zh_CN.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_zh_CN.properties new file mode 100644 index 0000000000..962ae82254 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_zh_CN.properties @@ -0,0 +1,4 @@ +Category.Size.name=\u5927\u5C0F +Category.Color.name=\u989c\u8272 +Category.LabelColor.name=\u6807\u7b7e\u989c\u8272 +Category.LabelSize.name=\u6807\u7b7e\u5c3a\u5bf8 diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_zh_TW.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_zh_TW.properties new file mode 100644 index 0000000000..072d62e9f7 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/category/Bundle_zh_TW.properties @@ -0,0 +1,4 @@ +Category.Size.name=Size +Category.Color.name=Color +Category.LabelColor.name=Label Color +Category.LabelSize.name=Label Size diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle.properties new file mode 100644 index 0000000000..68e9163736 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle.properties @@ -0,0 +1,4 @@ +PaletteGeneratorPanel.labelColorCount.text=Values count: +PaletteGeneratorPanel.generateButton.text=Generate +PaletteGeneratorPanel.labelPreset.text=Presets +PaletteGeneratorPanel.limitColorsCheckbox.text=Limit number of colors diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_ar.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_ar.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_ar.properties @@ -0,0 +1 @@ + diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_ca.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_ca.properties new file mode 100644 index 0000000000..81ac6bb6b8 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_ca.properties @@ -0,0 +1,4 @@ +PaletteGeneratorPanel.labelColorCount.text=Values count: +PaletteGeneratorPanel.generateButton.text=Genera +PaletteGeneratorPanel.labelPreset.text=Presets +PaletteGeneratorPanel.limitColorsCheckbox.text=Limit number of colors diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_cs.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_cs.properties new file mode 100644 index 0000000000..b8875e2c77 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_cs.properties @@ -0,0 +1,4 @@ +PaletteGeneratorPanel.labelColorCount.text=Po\u010det hodnot: +PaletteGeneratorPanel.generateButton.text=Vytvo\u0159it +PaletteGeneratorPanel.labelPreset.text=P\u0159edvolby +PaletteGeneratorPanel.limitColorsCheckbox.text=Omezit po\u010det barev diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_de.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_de.properties new file mode 100644 index 0000000000..83c686bc1e --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_de.properties @@ -0,0 +1,4 @@ +PaletteGeneratorPanel.labelColorCount.text=Anzahl Werte: +PaletteGeneratorPanel.generateButton.text=Generieren +PaletteGeneratorPanel.labelPreset.text=Voreinstellungen +PaletteGeneratorPanel.limitColorsCheckbox.text=Beschrδnke Anzahl Farben diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_es.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_es.properties new file mode 100644 index 0000000000..9cd0ff284a --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_es.properties @@ -0,0 +1,4 @@ +PaletteGeneratorPanel.labelColorCount.text=Cantidad de valores: +PaletteGeneratorPanel.generateButton.text=Generar +PaletteGeneratorPanel.labelPreset.text=Configuraciones predefinidas +PaletteGeneratorPanel.limitColorsCheckbox.text=Limitar el nϊmero de colores diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_fr.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_fr.properties new file mode 100644 index 0000000000..5b6201c202 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_fr.properties @@ -0,0 +1,4 @@ +PaletteGeneratorPanel.labelColorCount.text=Nombre de valeurs: +PaletteGeneratorPanel.generateButton.text=Gιnιrer +PaletteGeneratorPanel.labelPreset.text=Rιglages +PaletteGeneratorPanel.limitColorsCheckbox.text=Limiter le nombre de couleurs diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_he.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_he.properties new file mode 100644 index 0000000000..68e9163736 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_he.properties @@ -0,0 +1,4 @@ +PaletteGeneratorPanel.labelColorCount.text=Values count: +PaletteGeneratorPanel.generateButton.text=Generate +PaletteGeneratorPanel.labelPreset.text=Presets +PaletteGeneratorPanel.limitColorsCheckbox.text=Limit number of colors diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_hu.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_hu.properties new file mode 100644 index 0000000000..57c51e0b5b --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_hu.properties @@ -0,0 +1,6 @@ + + +PaletteGeneratorPanel.limitColorsCheckbox.text=Korl\u00E1tozza a sz\u00EDnek sz\u00E1m\u00E1t +PaletteGeneratorPanel.labelPreset.text=El\u0151be\u00E1ll\u00EDt\u00E1sok +PaletteGeneratorPanel.generateButton.text=gener\u00E1l +PaletteGeneratorPanel.labelColorCount.text=Az \u00E9rt\u00E9kek sz\u00E1m\u00EDtanak: diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_it.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_it.properties new file mode 100644 index 0000000000..68e9163736 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_it.properties @@ -0,0 +1,4 @@ +PaletteGeneratorPanel.labelColorCount.text=Values count: +PaletteGeneratorPanel.generateButton.text=Generate +PaletteGeneratorPanel.labelPreset.text=Presets +PaletteGeneratorPanel.limitColorsCheckbox.text=Limit number of colors diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_ja.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_ja.properties new file mode 100644 index 0000000000..5e14b1822f --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_ja.properties @@ -0,0 +1,4 @@ +# PaletteGeneratorPanel.labelColorCount.text=Values count\: +# PaletteGeneratorPanel.generateButton.text=Generate +# PaletteGeneratorPanel.labelPreset.text=Presets +# PaletteGeneratorPanel.limitColorsCheckbox.text=Limit number of colors diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_ko.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_ko.properties new file mode 100644 index 0000000000..c26103d35a --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_ko.properties @@ -0,0 +1,6 @@ + + +PaletteGeneratorPanel.limitColorsCheckbox.text=\uC0C9\uC0C1 \uC218 \uC81C\uD55C +PaletteGeneratorPanel.labelPreset.text=\uC0AC\uC804 \uC124\uC815 +PaletteGeneratorPanel.generateButton.text=\uC0DD\uC131 +PaletteGeneratorPanel.labelColorCount.text=\uAC12 \uAC1C\uC218: diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_nl.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_nl.properties new file mode 100644 index 0000000000..4508665264 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_nl.properties @@ -0,0 +1,4 @@ +PaletteGeneratorPanel.labelColorCount.text=Values count: +PaletteGeneratorPanel.generateButton.text=Genereren +PaletteGeneratorPanel.labelPreset.text=Presets +PaletteGeneratorPanel.limitColorsCheckbox.text=Aantal kleuren beperken diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_pt_BR.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_pt_BR.properties new file mode 100644 index 0000000000..7cecef2676 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_pt_BR.properties @@ -0,0 +1,4 @@ +PaletteGeneratorPanel.labelColorCount.text=Contagem dos valores: +PaletteGeneratorPanel.generateButton.text=Gerar +PaletteGeneratorPanel.labelPreset.text=Configuraηγo prι-definida +PaletteGeneratorPanel.limitColorsCheckbox.text=Nϊmero limite de cores diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_ro.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_ro.properties new file mode 100644 index 0000000000..5fc844c15c --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_ro.properties @@ -0,0 +1,6 @@ + + +PaletteGeneratorPanel.labelColorCount.text=Num\u0103r de valori: +PaletteGeneratorPanel.labelPreset.text=Preset\u0103ri +PaletteGeneratorPanel.generateButton.text=Genereaz\u0103 +PaletteGeneratorPanel.limitColorsCheckbox.text=Limiteaz\u0103 num\u0103rul de culori diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_ru.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_ru.properties new file mode 100644 index 0000000000..5e14b1822f --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_ru.properties @@ -0,0 +1,4 @@ +# PaletteGeneratorPanel.labelColorCount.text=Values count\: +# PaletteGeneratorPanel.generateButton.text=Generate +# PaletteGeneratorPanel.labelPreset.text=Presets +# PaletteGeneratorPanel.limitColorsCheckbox.text=Limit number of colors diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_th.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_th.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_th.properties @@ -0,0 +1 @@ + diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_tr.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_tr.properties new file mode 100644 index 0000000000..2ad41fe903 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_tr.properties @@ -0,0 +1,4 @@ +PaletteGeneratorPanel.labelColorCount.text=Say\u0131lan de\u011ferler: +PaletteGeneratorPanel.generateButton.text=άret +PaletteGeneratorPanel.labelPreset.text=Φn ayarlar +PaletteGeneratorPanel.limitColorsCheckbox.text=Renk say\u0131s\u0131n\u0131 s\u0131n\u0131rla diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_uk.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_uk.properties new file mode 100644 index 0000000000..1515b6f9cf --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_uk.properties @@ -0,0 +1,4 @@ +PaletteGeneratorPanel.labelColorCount.text=\u0412\u0440\u0430\u0445\u043E\u0432\u0443\u044E\u0442\u044C\u0441\u044F \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F: +PaletteGeneratorPanel.generateButton.text=\u0413\u0435\u043D\u0435\u0440\u0443\u0432\u0430\u0442\u0438 +PaletteGeneratorPanel.labelPreset.text=\u041F\u0440\u0435\u0434\u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0438 +PaletteGeneratorPanel.limitColorsCheckbox.text=\u041E\u0431\u043C\u0435\u0436\u0435\u043D\u043D\u044F \u043A\u0456\u043B\u044C\u043A\u043E\u0441\u0442\u0456 \u043A\u043E\u043B\u044C\u043E\u0440\u0456\u0432 diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_zh_CN.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_zh_CN.properties new file mode 100644 index 0000000000..319459342e --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_zh_CN.properties @@ -0,0 +1,4 @@ +PaletteGeneratorPanel.labelColorCount.text=\u503C\u8BA1\u6570\uFF1A +PaletteGeneratorPanel.generateButton.text=\u751f\u6210 +PaletteGeneratorPanel.labelPreset.text=\u9884\u8bbe +PaletteGeneratorPanel.limitColorsCheckbox.text=\u9650\u5236\u989C\u8272\u6570\u76EE diff --git a/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_zh_TW.properties b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_zh_TW.properties new file mode 100644 index 0000000000..68e9163736 --- /dev/null +++ b/modules/AppearancePluginUI/src/main/resources/org/gephi/ui/appearance/plugin/palette/Bundle_zh_TW.properties @@ -0,0 +1,4 @@ +PaletteGeneratorPanel.labelColorCount.text=Values count: +PaletteGeneratorPanel.generateButton.text=Generate +PaletteGeneratorPanel.labelPreset.text=Presets +PaletteGeneratorPanel.limitColorsCheckbox.text=Limit number of colors diff --git a/modules/AttributeColumnPropertyEditor/pom.xml b/modules/AttributeColumnPropertyEditor/pom.xml deleted file mode 100644 index c6bfaeda16..0000000000 --- a/modules/AttributeColumnPropertyEditor/pom.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - 4.0.0 - - gephi-parent - org.gephi - 0.9-SNAPSHOT - ../.. - - - org.gephi - ui-propertyeditor - 0.9-SNAPSHOT - nbm - - AttributeColumnPropertyEditor - - - - org.netbeans.api - org-openide-util - - - org.netbeans.api - org-openide-util-lookup - - - ${project.groupId} - data-attributes-api - - - - - - - org.codehaus.mojo - nbm-maven-plugin - - - org.gephi.ui.propertyeditor - - - - - - diff --git a/modules/AttributeColumnPropertyEditor/src/main/java/org/gephi/ui/propertyeditor/AbstractAttributeColumnPropertyEditor.java b/modules/AttributeColumnPropertyEditor/src/main/java/org/gephi/ui/propertyeditor/AbstractAttributeColumnPropertyEditor.java deleted file mode 100644 index 487cba5bef..0000000000 --- a/modules/AttributeColumnPropertyEditor/src/main/java/org/gephi/ui/propertyeditor/AbstractAttributeColumnPropertyEditor.java +++ /dev/null @@ -1,175 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.ui.propertyeditor; - -import java.beans.PropertyEditorSupport; -import java.util.ArrayList; -import java.util.List; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeController; -import org.gephi.data.attributes.api.AttributeModel; -import org.gephi.data.attributes.api.AttributeType; -import org.gephi.data.attributes.api.AttributeUtils; -import org.openide.util.Lookup; - -/** - * - * @author Mathieu Bastian - */ -abstract class AbstractAttributeColumnPropertyEditor extends PropertyEditorSupport { - - public enum EditorClass { - - NODE, EDGE, NODEEDGE - }; - - public enum AttributeTypeClass { - - ALL, NUMBER, STRING, DYNAMIC_NUMBER, ALL_NUMBER - }; - private AttributeColumn[] columns; - private AttributeColumn selectedColumn; - private EditorClass editorClass = EditorClass.NODE; - private AttributeTypeClass attributeTypeClass = AttributeTypeClass.ALL; - - protected AbstractAttributeColumnPropertyEditor(EditorClass editorClass) { - this.editorClass = editorClass; - } - - protected AbstractAttributeColumnPropertyEditor(EditorClass editorClass, AttributeTypeClass attributeClass) { - this.editorClass = editorClass; - this.attributeTypeClass = attributeClass; - } - - protected AttributeColumn[] getColumns() { - List cols = new ArrayList(); - AttributeModel model = Lookup.getDefault().lookup(AttributeController.class).getModel(); - if (model != null) { - if (editorClass.equals(EditorClass.NODE) || editorClass.equals(EditorClass.NODEEDGE)) { - for (AttributeColumn column : model.getNodeTable().getColumns()) { - if (attributeTypeClass.equals(AttributeTypeClass.NUMBER) && isNumberColumn(column)) { - cols.add(column); - } else if (attributeTypeClass.equals(AttributeTypeClass.DYNAMIC_NUMBER) && isDynamicNumberColumn(column)) { - cols.add(column); - } else if (attributeTypeClass.equals(AttributeTypeClass.ALL_NUMBER) && (isDynamicNumberColumn(column) || isNumberColumn(column))) { - cols.add(column); - } else if (attributeTypeClass.equals(AttributeTypeClass.ALL)) { - cols.add(column); - } else if (attributeTypeClass.equals(attributeTypeClass.STRING) && isStringColumn(column)) { - cols.add(column); - } - } - } - if (editorClass.equals(EditorClass.EDGE) || editorClass.equals(EditorClass.NODEEDGE)) { - for (AttributeColumn column : model.getEdgeTable().getColumns()) { - if (attributeTypeClass.equals(AttributeTypeClass.NUMBER) && isNumberColumn(column)) { - cols.add(column); - } else if (attributeTypeClass.equals(AttributeTypeClass.DYNAMIC_NUMBER) && isDynamicNumberColumn(column)) { - cols.add(column); - } else if (attributeTypeClass.equals(AttributeTypeClass.ALL_NUMBER) && (isDynamicNumberColumn(column) || isNumberColumn(column))) { - cols.add(column); - } else if (attributeTypeClass.equals(AttributeTypeClass.ALL)) { - cols.add(column); - } else if (attributeTypeClass.equals(attributeTypeClass.STRING) && isStringColumn(column)) { - cols.add(column); - } - } - } - } - return cols.toArray(new AttributeColumn[0]); - } - - @Override - public String[] getTags() { - columns = getColumns(); - //selectedColumn = columns[0]; - String[] tags = new String[columns.length]; - for (int i = 0; i < columns.length; i++) { - tags[i] = columns[i].getTitle(); - } - return tags; - } - - @Override - public Object getValue() { - return selectedColumn; - } - - @Override - public void setValue(Object value) { - AttributeColumn column = (AttributeColumn) value; - this.selectedColumn = column; - } - - @Override - public String getAsText() { - if (selectedColumn == null) { - return "---"; - } - return selectedColumn.getTitle(); - } - - @Override - public void setAsText(String text) throws IllegalArgumentException { - for (AttributeColumn c : columns) { - if (c.getTitle().equals(text)) { - this.selectedColumn = c; - } - } - } - - public boolean isDynamicNumberColumn(AttributeColumn column) { - return AttributeUtils.getDefault().isDynamicNumberColumn(column); - } - - public boolean isNumberColumn(AttributeColumn column) { - return AttributeUtils.getDefault().isNumberColumn(column); - } - - public boolean isStringColumn(AttributeColumn column) { - AttributeType type = column.getType(); - if (type == AttributeType.STRING) { - return true; - } - return false; - } -} diff --git a/modules/AttributeColumnPropertyEditor/src/main/nbm/manifest.mf b/modules/AttributeColumnPropertyEditor/src/main/nbm/manifest.mf deleted file mode 100644 index 8226ef21b8..0000000000 --- a/modules/AttributeColumnPropertyEditor/src/main/nbm/manifest.mf +++ /dev/null @@ -1,4 +0,0 @@ -Manifest-Version: 1.0 -AutoUpdate-Essential-Module: true -OpenIDE-Module-Localizing-Bundle: org/gephi/ui/propertyeditor/Bundle.properties -OpenIDE-Module-Specification-Version: ${gephi.modules.specification.version} \ No newline at end of file diff --git a/modules/AttributeColumnPropertyEditor/src/main/nbm/module.xml b/modules/AttributeColumnPropertyEditor/src/main/nbm/module.xml deleted file mode 100644 index aae1e8ead1..0000000000 --- a/modules/AttributeColumnPropertyEditor/src/main/nbm/module.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - diff --git a/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/Bundle.properties b/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/Bundle.properties deleted file mode 100644 index 87803f303a..0000000000 --- a/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/Bundle.properties +++ /dev/null @@ -1,5 +0,0 @@ -OpenIDE-Module-Display-Category=Gephi UI -OpenIDE-Module-Long-Description=\ - These property editors can be used to display a combobox with current columns in a PropertySheet. -OpenIDE-Module-Name=AttributeColumn Property Editor -OpenIDE-Module-Short-Description=Provide PropertyEditor class for AttributeColumn properties diff --git a/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/Bundle_cs.properties b/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/Bundle_cs.properties deleted file mode 100644 index ffc591c4c1..0000000000 --- a/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/Bundle_cs.properties +++ /dev/null @@ -1,11 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Zbyn\u011bk Schwarz , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-02-29 19\:11+0000\nLast-Translator\: Zbyn\u011bk Schwarz \nLanguage-Team\: Czech (http\://www.transifex.com/projects/p/gephi/language/cs/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: cs\nPlural-Forms\: nplurals\=3; plural\=(n\=\=1) ? 0 \: (n>\=2 && n<\=4) ? 1 \: 2;\n - -OpenIDE-Module-Long-Description=Tyto edito\u0159i vlastnost\u00ed mohou b\u00fdt pou\u017eity pro zobrazen\u00ed rozbalovac\u00edho r\u00e1me\u010dku se sou\u010dasn\u00fdmi sloupci v PropertySheet. - -OpenIDE-Module-Short-Description=Poskytnout t\u0159\u00eddu PropertyEditor pro vlastnosti AttributeColumn diff --git a/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/Bundle_es.properties b/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/Bundle_es.properties deleted file mode 100644 index bc1a2b91b5..0000000000 --- a/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/Bundle_es.properties +++ /dev/null @@ -1,11 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 14\:30+0000\nLast-Translator\: gephi \nLanguage-Team\: Spanish (http\://www.transifex.com/projects/p/gephi/language/es/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: es\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n - -OpenIDE-Module-Long-Description=Estos editores de propiedades pueden ser utilizados para mostrar un combobox con las columnas actuales en un PropertySheet. - -OpenIDE-Module-Short-Description=Proporcionar la clase PropertyEditor para las propiedades de AttributeColumn diff --git a/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/Bundle_fr.properties b/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/Bundle_fr.properties deleted file mode 100644 index f27e1baaf1..0000000000 --- a/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/Bundle_fr.properties +++ /dev/null @@ -1,11 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 14\:30+0000\nLast-Translator\: gephi \nLanguage-Team\: French (http\://www.transifex.com/projects/p/gephi/language/fr/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fr\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -OpenIDE-Module-Long-Description=Ces \u00e9diteurs de propri\u00e9t\u00e9 sont utilisables pour afficher une combobox avec les colonnes courantes dans un PropertySheet. - -OpenIDE-Module-Short-Description=Fournit la classe PropertyEditor pour les propri\u00e9t\u00e9s de AttributeColumn diff --git a/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/Bundle_ja.properties b/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/Bundle_ja.properties deleted file mode 100644 index 0d59041975..0000000000 --- a/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/Bundle_ja.properties +++ /dev/null @@ -1,11 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-18 10\:40+0000\nLast-Translator\: Siro Kida \nLanguage-Team\: Japanese (http\://www.transifex.com/projects/p/gephi/language/ja/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ja\nPlural-Forms\: nplurals\=1; plural\=0;\n - -OpenIDE-Module-Long-Description=\u3053\u308c\u3089\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u30a8\u30c7\u30a3\u30bf\u306f\u3001\u30d7\u30ed\u30d1\u30c6\u30a3\u30b7\u30fc\u30c8\u3067\u3001\u73fe\u5728\u306e\u5217\u3092\u6301\u3064\u30b3\u30f3\u30dc\u30dc\u30c3\u30af\u30b9\u3092\u8868\u793a\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002 - -OpenIDE-Module-Short-Description=AttributeColumn\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u306ePropertyEditor\u30af\u30e9\u30b9\u3092\u63d0\u4f9b\u3059\u308b diff --git a/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/Bundle_pt_BR.properties b/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/Bundle_pt_BR.properties deleted file mode 100644 index 118c65a9d3..0000000000 --- a/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/Bundle_pt_BR.properties +++ /dev/null @@ -1,11 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# C\u00e9lio CJr , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 23\:31+0000\nLast-Translator\: C\u00e9lio Faria Jr. \nLanguage-Team\: Portuguese (Brazil) (http\://www.transifex.com/projects/p/gephi/language/pt_BR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt_BR\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -OpenIDE-Module-Long-Description=Estes editores de propriedades pode ser usados para exibir um combobox com as colunas atuais em uma PropertySheet. - -OpenIDE-Module-Short-Description=Fornece classe PropertyEditor para propriedades do tipo AttributeColumn diff --git a/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/Bundle_ru.properties b/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/Bundle_ru.properties deleted file mode 100644 index 6904c2cd42..0000000000 --- a/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/Bundle_ru.properties +++ /dev/null @@ -1,11 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-10-07 06\:10+0000\nLast-Translator\: Altsoph \nLanguage-Team\: Russian (http\://www.transifex.com/projects/p/gephi/language/ru/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ru\nPlural-Forms\: nplurals\=3; plural\=(n%10\=\=1 && n%100\!\=11 ? 0 \: n%10>\=2 && n%10<\=4 && (n%100<10 || n%100>\=20) ? 1 \: 2);\n - -OpenIDE-Module-Long-Description=\u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u044b \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u044b \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u0431\u043e-\u0431\u043e\u043a\u0441\u0430 \u0441 \u0442\u0435\u043a\u0443\u0449\u0438\u043c\u0438 \u043a\u043e\u043b\u043e\u043d\u043a\u0430\u043c\u0438 \u0432 PropertySheet - -OpenIDE-Module-Short-Description=\u041f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043a\u043b\u0430\u0441\u0441 PropertyEditor \u0434\u043b\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432 AttributeColumn diff --git a/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/Bundle_zh_CN.properties b/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/Bundle_zh_CN.properties deleted file mode 100644 index 35af7080c0..0000000000 --- a/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/Bundle_zh_CN.properties +++ /dev/null @@ -1,10 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-08 00\:21+0000\nLast-Translator\: gephi \nLanguage-Team\: Chinese (China) (http\://www.transifex.com/projects/p/gephi/language/zh_CN/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: zh_CN\nPlural-Forms\: nplurals\=1; plural\=0;\n - -OpenIDE-Module-Long-Description=\u8fd9\u4e9b\u5c5e\u6027\u7f16\u8f91\u5668\u53ef\u7528\u4e8e\u663e\u793a\u5f53\u524d\u5217\u5728PropertySheet\u4e2d\u7684\u4e00\u4e2aComboBox\u3002 - -OpenIDE-Module-Short-Description=\u63d0\u4f9bAttributeColumn\u5c5e\u6027\u7684PropertyEditor\u7c7b diff --git a/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/cs.po b/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/cs.po deleted file mode 100644 index 4fe048df62..0000000000 --- a/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/cs.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# ZbynΔ›k Schwarz , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-02-29 19:11+0000\n" -"Last-Translator: ZbynΔ›k Schwarz \n" -"Language-Team: Czech (http://www.transifex.com/projects/p/gephi/language/cs/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: cs\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "Tyto editoΕ™i vlastnostΓ­ mohou bΓ½t pouΕΎity pro zobrazenΓ­ rozbalovacΓ­ho rΓ‘mečku se současnΓ½mi sloupci v PropertySheet." - -msgid "OpenIDE-Module-Short-Description" -msgstr "Poskytnout tΕ™Γ­du PropertyEditor pro vlastnosti AttributeColumn" diff --git a/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/es.po b/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/es.po deleted file mode 100644 index cc40b89e45..0000000000 --- a/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/es.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 14:30+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/gephi/language/es/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "Estos editores de propiedades pueden ser utilizados para mostrar un combobox con las columnas actuales en un PropertySheet." - -msgid "OpenIDE-Module-Short-Description" -msgstr "Proporcionar la clase PropertyEditor para las propiedades de AttributeColumn" diff --git a/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/fr.po b/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/fr.po deleted file mode 100644 index edc0360f51..0000000000 --- a/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/fr.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 14:30+0000\n" -"Last-Translator: gephi \n" -"Language-Team: French (http://www.transifex.com/projects/p/gephi/language/fr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "Ces Γ©diteurs de propriΓ©tΓ© sont utilisables pour afficher une combobox avec les colonnes courantes dans un PropertySheet." - -msgid "OpenIDE-Module-Short-Description" -msgstr "Fournit la classe PropertyEditor pour les propriΓ©tΓ©s de AttributeColumn" diff --git a/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/ja.po b/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/ja.po deleted file mode 100644 index 256ef6e556..0000000000 --- a/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/ja.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-18 10:40+0000\n" -"Last-Translator: Siro Kida \n" -"Language-Team: Japanese (http://www.transifex.com/projects/p/gephi/language/ja/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ja\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "γ“γ‚Œγ‚‰γγƒ—γƒ­γƒ‘γƒ†γ‚£γ‚¨γƒ‡γ‚£γ‚Ώγ―γ€γƒ—γƒ­γƒ‘γƒ†γ‚£γ‚·γƒΌγƒˆγ§γ€ηΎεœ¨γεˆ—γ‚’ζŒγ€γ‚³γƒ³γƒœγƒœγƒƒγ‚―γ‚Ήγ‚’θ‘¨η€Ίγ™γ‚‹γŸγ‚γ«δ½Ώη”¨γ™γ‚‹γ“γ¨γŒγ§γγΎγ™γ€‚" - -msgid "OpenIDE-Module-Short-Description" -msgstr "AttributeColumnγγƒ—ロパティγPropertyEditorクラスを提供する" diff --git a/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/org-gephi-ui-propertyeditor.pot b/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/org-gephi-ui-propertyeditor.pot deleted file mode 100644 index 93c6daf8cb..0000000000 --- a/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/org-gephi-ui-propertyeditor.pot +++ /dev/null @@ -1,24 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# Gephi Team , 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: Gephi 0.8\n" -"Report-Msgid-Bugs-To: gephi.team@lists.launchpad.net\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-05 14:52+0200\n" -"Last-Translator: Mathieu Bastian \n" -"Language-Team: English \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "" -"These property editors can be used to display a combobox with current " -"columns in a PropertySheet." - -msgid "OpenIDE-Module-Short-Description" -msgstr "Provide PropertyEditor class for AttributeColumn properties" diff --git a/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/pt_BR.po b/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/pt_BR.po deleted file mode 100644 index eea7d8d781..0000000000 --- a/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/pt_BR.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# CΓ©lio CJr , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 23:31+0000\n" -"Last-Translator: CΓ©lio Faria Jr. \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/gephi/language/pt_BR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "Estes editores de propriedades pode ser usados para exibir um combobox com as colunas atuais em uma PropertySheet." - -msgid "OpenIDE-Module-Short-Description" -msgstr "Fornece classe PropertyEditor para propriedades do tipo AttributeColumn " diff --git a/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/ru.po b/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/ru.po deleted file mode 100644 index aec5570c77..0000000000 --- a/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/ru.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-10-07 06:10+0000\n" -"Last-Translator: Altsoph \n" -"Language-Team: Russian (http://www.transifex.com/projects/p/gephi/language/ru/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ свойств ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ для отобраТСния ΠΊΠΎΠΌΠ±ΠΎ-бокса с Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ Π² PropertySheet" - -msgid "OpenIDE-Module-Short-Description" -msgstr "ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΠ΅Ρ‚ класс PropertyEditor для свойств AttributeColumn " diff --git a/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/zh_CN.po b/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/zh_CN.po deleted file mode 100644 index eb063d59b2..0000000000 --- a/modules/AttributeColumnPropertyEditor/src/main/resources/org/gephi/ui/propertyeditor/zh_CN.po +++ /dev/null @@ -1,24 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-08 00:21+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/gephi/language/zh_CN/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "θΏ™δΊ›ε±žζ€§ηΌ–θΎ‘ε™¨ε―η”¨δΊŽζ˜Ύη€Ίε½“ε‰εˆ—εœ¨PropertySheetδΈ­ηš„δΈ€δΈͺComboBox。" - -msgid "OpenIDE-Module-Short-Description" -msgstr "提供AttributeColumnε±žζ€§ηš„PropertyEditorη±»" diff --git a/modules/AttributesAPI/pom.xml b/modules/AttributesAPI/pom.xml deleted file mode 100644 index 8acb30e8a9..0000000000 --- a/modules/AttributesAPI/pom.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - 4.0.0 - - gephi-parent - org.gephi - 0.9-SNAPSHOT - ../.. - - - org.gephi - data-attributes-api - 0.9-SNAPSHOT - nbm - - AttributesAPI - - - - ${project.groupId} - graph-api - - - ${project.groupId} - project-api - - - org.netbeans.api - org-openide-util-lookup - - - org.netbeans.api - org-openide-util - - - junit - junit - 4.10 - test - - - - - - - org.codehaus.mojo - nbm-maven-plugin - - - org.gephi.data.attributes.api - org.gephi.data.attributes.spi - org.gephi.data.attributes.type - org.gephi.data.properties - - - - - - diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeColumn.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeColumn.java deleted file mode 100644 index 8753662304..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeColumn.java +++ /dev/null @@ -1,136 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.api; - -import org.gephi.data.attributes.spi.AttributeValueDelegateProvider; - -/** - * Column is the header of a data column. It belongs to an AttributeTable - * and is the key to access data within AttributeRow. - *

- * It contains its index that may be used to get the appropriate value in the - * AttributeRow values array. - *

- * For Gephi internal implementation purposes, names of columns are restricted. They can have any name - * except these defined in {@link org.gephi.data.properties.PropertiesColumn PropertiesColumn} enum. - *

Iterate rows values

- *
- * Attribute row = ...;
- * for(AttributeColumn column : table.getColumns()) {
- *      Object value = row.getValue(column);
- * }
- * 
- * - * @author Mathieu Bastian - * @author Martin Ε kurla - * @see AttributeRow - * @see AttributeTable - */ -public interface AttributeColumn { - - /** - * Returns the type of this column content. - * - * @return the type of this column - */ - public AttributeType getType(); - - /** - * Returns the title of this column. The title is a human-readable text that - * describes the column data. When no title exists, returns the Id - * of this column. - * - * @return the title of this column, if exists, or the Id otherwise - */ - public String getTitle(); - - /** - * Returns the index of this column. The index is the fastest way to access a - * column from its AttributeTable or manipulate - * AttributeRow. - * - * @return the index of this column - * @see AttributeTable#getColumn(int) - * @see AttributeRow#getValue(int) - */ - public int getIndex(); - - /** - * Returns the origin of this column content, meta-data that describes where - * the column comes from. Default value is AttributeOrigin.DATA. - * - * @return the origin of this column content - */ - public AttributeOrigin getOrigin(); - - /** - * Returns the id of this column. The id is the unique identifier that describes - * the column data. - * - * @return the id of this column - */ - public String getId(); - - /** - * Returns the default value for this column. May be null. - *

- * The returned Object class type is equal to the class obtained - * with AttributeType.getType(). - * - * @return the default value, or null - */ - public Object getDefaultValue(); - - /** - * Returns the attribute value delegate provider. The Provider is always set if the origin of the - * current attribute column is AttributeOrigin.DELEGATE. - * - * @return attribute value delegate provider - */ - public AttributeValueDelegateProvider getProvider(); - - /** - * Returns the table that contains this column - * @return Table for the column - */ - public AttributeTable getTable(); -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeController.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeController.java deleted file mode 100644 index 28503f7330..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeController.java +++ /dev/null @@ -1,96 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.data.attributes.api; - -import org.gephi.project.api.Workspace; - -/** - * This controller is the access door to {@link AttributeModel}, that contains - * all attributes data. Attributes are simply any data that could be associated - * with elements like nodes or edges. This module helps to organize data in - * columsn and rows in a way they can be accessed in multiple, yet efficient ways. - *

- * This controller is a service, and exist in the system as a singleton. It can be - * retrieved by using the following command: - *

- * AttributeController ac = Lookup.getDefault().lookup(AttributeController.class);
- * 
- * @author Mathieu Bastian - */ -public interface AttributeController { - - /** - * Returns the model for the current Workspace. May return - * null if there currently no Worksapce active. - *

- * The controller maintains the current project status and is responsible of - * maintaining one AttributeModel instance per Workspace. - * Hence, the model can also be accessed by using the following code: - *

-     * Workspace.getLookup().get(AttributeModel.class);
-     * 
- * @return the currently active model - */ - public AttributeModel getModel(); - - /** - * Returns the model for the given Workspace. - *

- * The controller maintains the current project status and is responsible of - * maintaining one AttributeModel instance per Workspace. - * Hence, the model can also be accessed by using the following code: - *

-     * Workspace.getLookup().get(AttributeModel.class);
-     * 
- * @return the attribute model for workspace. - */ - public AttributeModel getModel(Workspace workspace); - - /** - * Create a new model independent from any Workspace. The model - * can be used indepedently and then merged in another model. - * - * @return a new independent model - * @see AttributeModel#mergeModel(org.gephi.data.attributes.api.AttributeModel) - */ - public AttributeModel newModel(); -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeEvent.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeEvent.java deleted file mode 100644 index a711436460..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeEvent.java +++ /dev/null @@ -1,94 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.data.attributes.api; - -/** - * Attribute event interface, that {@link AttributeListener } receives when the - * attribute model or any attribute row is modified. - *

- *

    - *
  • ADD_COLUMN: One or several columns have been created, look at - * {@link AttributeEventData#getAddedColumns() } to get data.
  • - *
  • REMOVE_COLUMN: One or several columns have been removed, look at - * {@link AttributeEventData#getRemovedColumns() } to get data.
  • - *
  • SET_VALUE: A value has been set in a row, look at* - * {@link AttributeEventData#getTouchedValues()} to get new values and - * {@link AttributeEventData#getTouchedObjects() } to get objects where value - * has been modified.
  • - *
- * - * @author Mathieu Bastian - */ -public interface AttributeEvent { - - /** - * Attribute model events. - *
    - *
  • ADD_COLUMN: One or several columns have been created, look at - * {@link AttributeEventData#getAddedColumns() } to get data.
  • - *
  • REMOVE_COLUMN: One or several columns have been removed, look at - * {@link AttributeEventData#getRemovedColumns() } to get data.
  • - *
  • SET_VALUE: A value has been set in a row, look at* - * {@link AttributeEventData#getTouchedValues()} to get new values and - * {@link AttributeEventData#getTouchedObjects() } to get objects where value - * has been modified.
  • - *
- */ - public enum EventType { - - ADD_COLUMN, REMOVE_COLUMN, REPLACE_COLUMN, SET_VALUE, UNSET_VALUE - }; - - public EventType getEventType(); - - public AttributeTable getSource(); - - public AttributeEventData getData(); - - /** - * Returns true if this event is one of these in parameters. - * @param type the event types that are to be compared with this event - * @return true if this event is type, - * false otherwise - */ - public boolean is(EventType... type); -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeEventData.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeEventData.java deleted file mode 100644 index e74584d61d..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeEventData.java +++ /dev/null @@ -1,82 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.data.attributes.api; - -/** - * Data associated with an attribute event. - * - * @author Mathieu Bastian - * @see AttributeEvent - */ -public interface AttributeEventData { - - /** - * Returns columns that have been added. Look at {@link AttributeEvent#getSource() } - * to know to which AttributeTable. - * @return the added columns - */ - public AttributeColumn[] getAddedColumns(); - - /** - * Returns columns that have been removed. Look at {@link AttributeEvent#getSource() } - * to know from which AttributeTable. - * @return the removed columns - */ - public AttributeColumn[] getRemovedColumns(); - - /** - * Returns objects where attribute values have been modified. Objects are - * either NodeData or EdgeData. The index of the - * returned array is matching with values from getTouchedValues(). - * @return the objects modified with the SET_VALUE - * event - */ - public Object[] getTouchedObjects(); - - /** - * Returns values with the SET_VALUE event. The - * AttributeValue object contains the new value that has been set. - * The index of the array is matching with values from getTouchedObjects(). - * @return the new values set with the SET_VALUE event. - */ - public AttributeValue[] getTouchedValues(); -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeListener.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeListener.java deleted file mode 100644 index e1ef8692bb..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeListener.java +++ /dev/null @@ -1,55 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.api; - -import java.util.EventListener; - -/** - * Listener for attribute events. - * - * @author Mathieu Bastian - * @see AttributeEvent - */ -public interface AttributeListener extends EventListener { - - public void attributesChanged(AttributeEvent event); -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeModel.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeModel.java deleted file mode 100644 index ba437d819a..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeModel.java +++ /dev/null @@ -1,158 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.api; - -import org.gephi.project.api.Workspace; - -/** - * Represents the data model, like a standard database would do. As a database, - * contains a list of tables, where columns are defined. By default, a model - * owns a node and edge table, but more could exist, depending - * of the model implementation. - *

- * The model also provides factories that are linked to this model. Use row - * factory to build new rows and value factory to push new values to these - * rows. Columns are manipulated from the AttributeTable class. - * - * @author Mathieu Bastian - * @see AttributeController - */ -public interface AttributeModel { - - /** - * Returns the node table. Contains all the columns associated to - * node elements. - *

- * An AttributeModel has always node, edge and - * graph tables by default. - * - * @return the node table, contains node columns - */ - public AttributeTable getNodeTable(); - - /** - * Returns the edge table. Contains all the columns associated to - * edge elements. - *

- * An AttributeModel has always node, edge and - * graph tables by default. - * - * @return the edge table, contains edge columns - */ - public AttributeTable getEdgeTable(); - - /** - * Returns the graph table. Contains all the columns associated to - * the graph. - *

- * An AttributeModel has always node, edge and - * graph tables by default. - * - * @return the edge table, contains edge columns - */ - public AttributeTable getGraphTable(); - - /** - * Returns the AttributeTable which has the given name - * or null if this table doesn't exist. - * - * @param name the table's name - * @return the table that has been found, or null - */ - public AttributeTable getTable(String name); - - /** - * Returns all tables this model contains. By default, only contains - * node and edge tables. - * - * @return all the tables of this model - */ - public AttributeTable[] getTables(); - - /** - * Return the value factory. - * - * @return the value factory - */ - public AttributeValueFactory valueFactory(); - - /** - * Returns the row factory. - * - * @return the row factory - */ - public AttributeRowFactory rowFactory(); - - /** - * Adds listener to the listeners of this table. It receives - * events when columns are added or removed, as well as when values are set. - * @param listener the listener that is to be added - */ - public void addAttributeListener(AttributeListener listener); - - /** - * Removes listener to the listeners of this table. - * @param listener the listener that is to be removed - */ - public void removeAttributeListener(AttributeListener listener); - - /** - * Merge model in this model. Makes the union of tables and - * columns of both models. Copy tables this model don't - * have and merge existing ones. For existing tables, call - * {@link AttributeTable#mergeTable(AttributeTable)} - * to merge columns. - *

- * Columns are compared according to their id and type. - * Columns found in model are appended only if they no column - * exist with the same id and type. - * - * @param model the model that is to be merged in this model - */ - public void mergeModel(AttributeModel model); - - /** - * Returns the workspace this Attribute model belongs to. - * @return the workspace that owns this Attribute model or null if it is independent from a Workspace - */ - public Workspace getWorkspace(); -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeOrigin.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeOrigin.java deleted file mode 100644 index c9995cea47..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeOrigin.java +++ /dev/null @@ -1,66 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian , Martin Ε kurla -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.api; - -/** - * Meta-data that describes the origin of columns content. Default value is DATA. - *

  • PROPERTY: The attribute is a static field like Label, X or Y.
  • - *
  • DATA: The attribute is a normal associated data to the object.
  • - *
  • COMPUTED: The attribute has been computed during the program execution.
- *

- * - * @author Mathieu Bastian - * @author Martin Ε kurla - */ -public enum AttributeOrigin { - - PROPERTY("AttributeOrigin_property"), - DATA ("AttributeOrigin_data"), - COMPUTED("AttributeOrigin_computed"), - DELEGATE(null); - - private final String label; - - AttributeOrigin(String label) { - this.label = label; - } -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeRow.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeRow.java deleted file mode 100644 index 3b04725368..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeRow.java +++ /dev/null @@ -1,192 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian , Cezary Bartosiak -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.api; - -import org.gephi.graph.api.Attributes; -import org.gephi.graph.api.EdgeData; -import org.gephi.graph.api.NodeData; - -/** - * Rows contains {@link AttributeValue}, one for each column. Rows are - * not stored in columns and nor in tables, they are stored in the object that - * possess the row, for instance Nodes or Edges. - *

- * But colums are fixed, stored in AttributeTable. Rows always - * contains the values in the same order as columns are described in the table. - *

- * For instance, if an table contains a single column label, the column - * index is equal to 0 and the value can be retrieved in the following ways: - *

    - *
  • row.getValue(column);
  • - *
  • row.getValue("label");
  • - *
  • row.getValue(0);
  • - *
- * Rows are build from a {@link AttributeRowFactory}, that can be get from the - * {@link AttributeModel}. - *

Nodes and edges

- * Nodes and edges elements are build from Graph API, and already have a - * default row that can be found with {@link NodeData#getAttributes()} and - * {@link EdgeData#getAttributes()}. Please cast Attributes in - * AttributesRow to profit from the complete API. - * - * @author Mathieu Bastian - * @author Cezary Bartosiak - * @see AttributeColumn - * @see AttributeTable - * @see AttributeValue - */ -public interface AttributeRow extends Attributes { - - /** - * Resets all data in the row. - */ - public void reset(); - - /** - * Returns the number of values this rows contains. Equal to the number of - * columns of the AttributeTable this row belongs. - * - * @return the size of the values array - */ - public int countValues(); - - /** - * Sets values from another row. Values must have existing column in the - * current table. - * - * @param row an existing row that may refer to the same columns - */ - public void setValues(AttributeRow row); - - /** - * Sets a value for this row. If the column retrieved from - * value cannot be found at the same index, the column - * Id is used to find the column. - * - * @param value a value that refers to an existing column for this row - */ - public void setValue(AttributeValue value); - - /** - * Sets a value at the specified column index. - * - * @param column a column that exists for this row - * @param value the value that is to be set a the specified column index - */ - public void setValue(AttributeColumn column, Object value); - - /** - * Sets a value at the specified column index, if column is found. The - * column is found if column refers to an existing column - * id or title. - * - * @param column a column id or title - * @param value the value that is to be set if column is found - */ - public void setValue(String column, Object value); - - /** - * Sets a value at the specified column index, if index is in - * range. This is equivalent as - * setValue(AttributeColumn.getIndex(), Object). - * - * @param index a valid column index - * @param value the value that is to be set if index is valide - */ - public void setValue(int index, Object value); - - /** - * Returns the value found at the specified column index. May return - * null if the value is null or if the column - * doesn't exist. - * - * @param column a column that exists for this row - * @return the value found at the specified column index or - * null otherwise - */ - public Object getValue(AttributeColumn column); - - /** - * Returns the value at the specified column, if found. The - * column is found if column refers to an existing column - * id or title. - * - * @param column a column id or title - * @return the value found at the specified column or - * null otherwise - */ - public Object getValue(String column); - - /** - * Returns the value at the specified index, if index is in range. - * This is equivalent as getValue(AttributeColumn.getIndex()). - * - * @param index a valid column index - * @return the value found at the specified column or - * null otherwise - * @see AttributeColumn#getIndex() - */ - public Object getValue(int index); - - /** - * Returns the value array. Each AttributeValue is a pair between - * a data and the column it belongs. - * - * @return the value array of this row - */ - public AttributeValue[] getValues(); - - /** - * Returns the value at given index or null if the index is not valid. Each AttributeValue is a pair between - * a data and the column it belongs. - * @param index - * @return AttributeValue at given index or null if the index is not valid - */ - public AttributeValue getAttributeValueAt(int index); - - /** - * Returns the column at given index or null if the index is not valid - * @param index - * @return AttributeColumn at given index or null if the index is not valid - */ - public AttributeColumn getColumnAt(int index); -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeRowFactory.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeRowFactory.java deleted file mode 100644 index 0636d3af67..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeRowFactory.java +++ /dev/null @@ -1,90 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian , Cezary Bartosiak -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.api; - -import org.gephi.graph.api.EdgeData; -import org.gephi.graph.api.Graph; -import org.gephi.graph.api.GraphView; -import org.gephi.graph.api.NodeData; - -/** - * Factory which is building exclusively {@link AttributeRow}. It can be get - * from the {@link AttributeModel#rowFactory()}. - * - * @author Mathieu Bastian - */ -public interface AttributeRowFactory { - - /** - * Returns a new row for the node table. - * - * @return a newly created row for the node table - * @see AttributeModel#getNodeTable() - */ - public AttributeRow newNodeRow(NodeData nodeData); - - /** - * Returns a new row for the edge table. - * - * @return a newly created row for the edge table - * @see AttributeModel#getEdgeTable() - */ - public AttributeRow newEdgeRow(EdgeData edgeData); - - /** - * Returns a new row for the graph table. - * - * @return a newly created row for the graph table - * @see AttributeModel#getGraphTable() - */ - public AttributeRow newGraphRow(GraphView graphView); - - /** - * Returns a new row for the given tableName, or null - * if no table with this name exists. - * - * @return a newly created row for the given table, or null - * otherwise - * @see AttributeModel#getTable(java.lang.String) - */ - public AttributeRow newRowForTable(String tableName, Object object); -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeTable.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeTable.java deleted file mode 100644 index 114f7ebbe7..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeTable.java +++ /dev/null @@ -1,203 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian , Martin Ε kurla -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.data.attributes.api; - -import org.gephi.data.attributes.spi.AttributeValueDelegateProvider; -import org.gephi.data.properties.PropertiesColumn; - -/** - * Table hosts columns and permits all manipulation on them. Columns can be - * appened with different level of details. The table maintains a map with - * column identifier and title (header) in order they can be retrieved efficiently. - *

- * Tracking added or removed columns can be performed by adding an - * {@link AttributeListener} to this table. - * - * @author Mathieu Bastian - * @author Martin Ε kurla - * @see AttributeColumn - * @see AttributeRow - */ -public interface AttributeTable { - - /** - * Returns the name of this table. - * - * @return the name of this table - */ - public String getName(); - - /** - * Returns the current columns. Call this method to iterate over columns. - * - * @return the current columns. - */ - public AttributeColumn[] getColumns(); - - /** - * Returns the number of column in this table. - * - * @return the number of columns - */ - public int countColumns(); - - /** - *

Creates and add a new column to this table. The default origin is set at DATA.

- *

The title of the column is the identifier.

- * @param id the identifier of the column - * @param type the type of the column - * @return the newly created column - */ - public AttributeColumn addColumn(String id, AttributeType type); - - /** - *

Creates and add a new column to this table.

- *

The title of the column is the identifier.

- * @param id the identifier of the column - * @param type the type of the column - * @param origin the origin of the column - * @return the newly created column - */ - public AttributeColumn addColumn(String id, AttributeType type, AttributeOrigin origin); - - /** - *

Creates and add a new column to this table.

- *

The title can't be null, empty or already existing in the table

- * @param id the identifier of the column - * @param title the title of the column - * @param type the type of the column - * @param origin the origin of the column. - * @param defaultValue the default value of the column. - * @return the newly created column - */ - public AttributeColumn addColumn(String id, String title, AttributeType type, AttributeOrigin origin, Object defaultValue); - - /** - *

Creates and add a new column to this table.

- *

The title can't be null, empty or already existing in the table

- *

Attribute origin will be set to AttributeOrigin.DELEGATE.

* - * @param id the identifier of the column - * @param title the title of the column - * @param type the type of the column - * @param attributeValueDelegateProvider the attribute value delegate provider of the column - * @param defaultValue the default value of the column - * @return the newly created column - */ - public AttributeColumn addColumn(String id, String title, AttributeType type, AttributeValueDelegateProvider attributeValueDelegateProvider, Object defaultValue); - - /** - * Creates and add a new properties column to this table. All needed informations are set in - * PropertiesColumn enum instance. * - * @param propertiesColumn the properties column - * @return the newly created column - */ - public AttributeColumn addPropertiesColumn(PropertiesColumn propertiesColumn); - - /** - * If exists, remove the column and all rows values. - * - * @param column the column that is to be removed - */ - public void removeColumn(AttributeColumn column); - - /** - * If exists, replace source by the new column created from params. - * @param source the column that is to be removed - * @param id the identifier of the column - * @param title the title of the column - * @param type the type of the column - * @param defaultValue the default value of the column - * @return the newly created column, or - * null if source can't be found - */ - public AttributeColumn replaceColumn(AttributeColumn source, String id, String title, AttributeType type, AttributeOrigin origin, Object defaultValue); - - /** - * Gets the column at the index of null if the - * index is not valid. - * - * @param index a valid column index range - * @return the column, or null if not found - */ - public AttributeColumn getColumn(int index); - - /** - * Gets the column with the given identifier or null if it is - * not found. - * - * @param id the column id or title - * @return the column, or null if not found - */ - public AttributeColumn getColumn(String id); - - /** - * Gets the column which match the given parameters or null - * if it is not found. - * - * @param title the column id or title - * @param type the column type - * @return the column, or null if not found - */ - public AttributeColumn getColumn(String title, AttributeType type); - - /** - * Return true if this table has a column with the given - * title or id. - * - * @param title the column title that is to be searched - * @return true if found, or false - * otherwise - */ - public boolean hasColumn(String title); - - /** - * Merge this table with the given table given. New columns from - * table are added to this table. - *

- * Columns are compared according to their id and type. - * Columns found in model are appended only if they no column - * exist with the same id and type. - * - * @param table the table that is to be merged with this table - */ - public void mergeTable(AttributeTable table); -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeType.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeType.java deleted file mode 100644 index bd676d7834..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeType.java +++ /dev/null @@ -1,494 +0,0 @@ -/* - Copyright 2008-2010 Gephi - Authors : Mathieu Bastian , Martin Ε kurla, Cezary Bartosiak - Website : http://www.gephi.org - - This file is part of Gephi. - - DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - - Copyright 2011 Gephi Consortium. All rights reserved. - - The contents of this file are subject to the terms of either the GNU - General Public License Version 3 only ("GPL") or the Common - Development and Distribution License("CDDL") (collectively, the - "License"). You may not use this file except in compliance with the - License. You can obtain a copy of the License at - http://gephi.org/about/legal/license-notice/ - or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the - specific language governing permissions and limitations under the - License. When distributing the software, include this License Header - Notice in each file and include the License files at - /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the - License Header, with the fields enclosed by brackets [] replaced by - your own identifying information: - "Portions Copyrighted [year] [name of copyright owner]" - - If you wish your version of this file to be governed by only the CDDL - or only the GPL Version 3, indicate your decision by adding - "[Contributor] elects to include this software in this distribution - under the [CDDL or GPL Version 3] license." If you do not indicate a - single choice of license, a recipient has the option to distribute - your version of this file under either the CDDL, the GPL Version 3 or - to extend the choice of license to its licensees as provided above. - However, if you add GPL Version 3 code and therefore, elected the GPL - Version 3 license, then the option applies only if the new code is - made subject to such option by the copyright holder. - - Contributor(s): - - Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.data.attributes.api; - -import java.math.BigDecimal; -import java.math.BigInteger; -import java.util.ArrayList; -import java.util.List; -import java.util.regex.Pattern; -import org.gephi.data.attributes.type.*; - -/** - * The different type an {@link AttributeColumn} can have. - * - * @author Mathieu Bastian - * @author Martin Ε kurla - * @author Cezary Bartosiak - */ -public enum AttributeType { - - BYTE(Byte.class), - SHORT(Short.class), - INT(Integer.class), - LONG(Long.class), - FLOAT(Float.class), - DOUBLE(Double.class), - BOOLEAN(Boolean.class), - CHAR(Character.class), - STRING(String.class), - BIGINTEGER(BigInteger.class), - BIGDECIMAL(BigDecimal.class), - DYNAMIC_BYTE(DynamicByte.class), - DYNAMIC_SHORT(DynamicShort.class), - DYNAMIC_INT(DynamicInteger.class), - DYNAMIC_LONG(DynamicLong.class), - DYNAMIC_FLOAT(DynamicFloat.class), - DYNAMIC_DOUBLE(DynamicDouble.class), - DYNAMIC_BOOLEAN(DynamicBoolean.class), - DYNAMIC_CHAR(DynamicCharacter.class), - DYNAMIC_STRING(DynamicString.class), - DYNAMIC_BIGINTEGER(DynamicBigInteger.class), - DYNAMIC_BIGDECIMAL(DynamicBigDecimal.class), - TIME_INTERVAL(TimeInterval.class), - LIST_BYTE(ByteList.class), - LIST_SHORT(ShortList.class), - LIST_INTEGER(IntegerList.class), - LIST_LONG(LongList.class), - LIST_FLOAT(FloatList.class), - LIST_DOUBLE(DoubleList.class), - LIST_BOOLEAN(BooleanList.class), - LIST_CHARACTER(CharacterList.class), - LIST_STRING(StringList.class), - LIST_BIGINTEGER(BigIntegerList.class), - LIST_BIGDECIMAL(BigDecimalList.class); - private final Class type; - - AttributeType(Class type) { - this.type = type; - } - - @Override - public String toString() { - return type.getSimpleName(); - } - - /** - * The name of the enum constant. - * - * @return the name of the enum constant - */ - public String getTypeString() { - return super.toString(); - } - - /** - * Returns the - * Class the type is associated with. - * - * @return the class the type is associated with - */ - public Class getType() { - return type; - } - - /** - * Try to parse the given - * str snippet in an object of the type associated to this - * AttributeType. For instance if the type is Boolean, and - * str equals - * true, this method will succeed to return a - * Boolean instance. May throw - * NumberFormatException. - * - * DYNAMIC types and - * TIME_INTERVAL cannot be parsed with this method (see - * isDynamicType method) and a UnsupportedOperationException will be thrown if it is tried. - * - * @param str the string that is to be parsed - * @return an instance of the type of this or null if not able to parse given string as the type AttributeType. - */ - public Object parse(String str) { - try { - switch (this) { - case BYTE: - return new Byte(removeDecimalDigitsFromString(str)); - case SHORT: - return new Short(removeDecimalDigitsFromString(str)); - case INT: - return new Integer(removeDecimalDigitsFromString(str)); - case LONG: - return new Long(removeDecimalDigitsFromString(str)); - case FLOAT: - return new Float(str); - case DOUBLE: - return new Double(str); - case BOOLEAN: - return Boolean.valueOf(str); - case CHAR: - return new Character(str.charAt(0)); - case BIGINTEGER: - return new BigInteger(removeDecimalDigitsFromString(str)); - case BIGDECIMAL: - return new BigDecimal(str); - case DYNAMIC_BYTE: - case DYNAMIC_SHORT: - case DYNAMIC_INT: - case DYNAMIC_LONG: - case DYNAMIC_FLOAT: - case DYNAMIC_DOUBLE: - case DYNAMIC_BOOLEAN: - case DYNAMIC_CHAR: - case DYNAMIC_STRING: - case DYNAMIC_BIGINTEGER: - case DYNAMIC_BIGDECIMAL: - case TIME_INTERVAL: - return parseDynamic(str); - case LIST_BYTE: - return new ByteList(removeDecimalDigitsFromString(str)); - case LIST_SHORT: - return new ShortList(removeDecimalDigitsFromString(str)); - case LIST_INTEGER: - return new IntegerList(removeDecimalDigitsFromString(str)); - case LIST_LONG: - return new LongList(removeDecimalDigitsFromString(str)); - case LIST_FLOAT: - return new FloatList(str); - case LIST_DOUBLE: - return new DoubleList(str); - case LIST_BOOLEAN: - return new BooleanList(str); - case LIST_CHARACTER: - return new CharacterList(str); - case LIST_STRING: - return new StringList(str); - case LIST_BIGINTEGER: - return new BigIntegerList(removeDecimalDigitsFromString(str)); - case LIST_BIGDECIMAL: - return new BigDecimalList(str); - } - return str; - } catch (Exception e) { - return null;//Any parse exception due to incorrect syntax - } - } - - private Object parseDynamic(String str) { - List intervals; - try { - intervals = DynamicParser.parseIntervals(this, str); - } catch (Exception ex) { - return null;//Unable to parse - } - - return createDynamicObject(intervals); - } - - public DynamicType createDynamicObject(List in) { - if (!this.isDynamicType()) { - throw new IllegalArgumentException("The attribute type is not dynamic"); - } - - switch (this) { - case DYNAMIC_BYTE: { - ArrayList> lin = null; - if (in != null) { - lin = new ArrayList>(); - for (Interval interval : in) { - lin.add(new Interval(interval.getLow(), interval.getHigh(), - interval.isLowExcluded(), interval.isHighExcluded(), (Byte) interval.getValue())); - } - } - return new DynamicByte(lin); - } - case DYNAMIC_SHORT: { - ArrayList> lin = null; - if (in != null) { - lin = new ArrayList>(); - for (Interval interval : in) { - lin.add(new Interval(interval.getLow(), interval.getHigh(), - interval.isLowExcluded(), interval.isHighExcluded(), (Short) interval.getValue())); - } - } - return new DynamicShort(lin); - } - case DYNAMIC_INT: { - ArrayList> lin = null; - if (in != null) { - lin = new ArrayList>(); - for (Interval interval : in) { - lin.add(new Interval(interval.getLow(), interval.getHigh(), - interval.isLowExcluded(), interval.isHighExcluded(), (Integer) interval.getValue())); - } - } - return new DynamicInteger(lin); - } - case DYNAMIC_LONG: { - ArrayList> lin = null; - if (in != null) { - lin = new ArrayList>(); - for (Interval interval : in) { - lin.add(new Interval(interval.getLow(), interval.getHigh(), - interval.isLowExcluded(), interval.isHighExcluded(), (Long) interval.getValue())); - } - } - return new DynamicLong(lin); - } - case DYNAMIC_FLOAT: { - ArrayList> lin = null; - if (in != null) { - lin = new ArrayList>(); - for (Interval interval : in) { - lin.add(new Interval(interval.getLow(), interval.getHigh(), - interval.isLowExcluded(), interval.isHighExcluded(), (Float) interval.getValue())); - } - } - return new DynamicFloat(lin); - } - case DYNAMIC_DOUBLE: { - ArrayList> lin = null; - if (in != null) { - lin = new ArrayList>(); - for (Interval interval : in) { - lin.add(new Interval(interval.getLow(), interval.getHigh(), - interval.isLowExcluded(), interval.isHighExcluded(), (Double) interval.getValue())); - } - } - return new DynamicDouble(lin); - } - case DYNAMIC_BOOLEAN: { - ArrayList> lin = null; - if (in != null) { - lin = new ArrayList>(); - for (Interval interval : in) { - lin.add(new Interval(interval.getLow(), interval.getHigh(), - interval.isLowExcluded(), interval.isHighExcluded(), (Boolean) interval.getValue())); - } - } - return new DynamicBoolean(lin); - } - case DYNAMIC_CHAR: { - ArrayList> lin = null; - if (in != null) { - lin = new ArrayList>(); - for (Interval interval : in) { - lin.add(new Interval(interval.getLow(), interval.getHigh(), - interval.isLowExcluded(), interval.isHighExcluded(), (Character) interval.getValue())); - } - } - return new DynamicCharacter(lin); - } - case DYNAMIC_STRING: { - ArrayList> lin = null; - if (in != null) { - lin = new ArrayList>(); - for (Interval interval : in) { - lin.add(new Interval(interval.getLow(), interval.getHigh(), - interval.isLowExcluded(), interval.isHighExcluded(), (String) interval.getValue())); - } - } - return new DynamicString(lin); - } - case DYNAMIC_BIGINTEGER: { - ArrayList> lin = null; - if (in != null) { - lin = new ArrayList>(); - for (Interval interval : in) { - lin.add(new Interval(interval.getLow(), interval.getHigh(), - interval.isLowExcluded(), interval.isHighExcluded(), (BigInteger) interval.getValue())); - } - } - return new DynamicBigInteger(lin); - } - case DYNAMIC_BIGDECIMAL: { - ArrayList> lin = null; - if (in != null) { - lin = new ArrayList>(); - for (Interval interval : in) { - lin.add(new Interval(interval.getLow(), interval.getHigh(), - interval.isLowExcluded(), interval.isHighExcluded(), (BigDecimal) interval.getValue())); - } - } - return new DynamicBigDecimal(lin); - } - case TIME_INTERVAL: { - ArrayList lin = null; - if (in != null) { - lin = new ArrayList(); - for (Interval interval : in) { - lin.add(new Interval(interval.getLow(), interval.getHigh(), - interval.isLowExcluded(), interval.isHighExcluded())); - } - } - return new TimeInterval(lin); - } - default: - return null; - } - } - - /** - * Build an - * AttributeType from the given - * obj type. If the given - * obj class match with an - * AttributeType type, returns this type. Returns - * null otherwise.

For instance if obj instanceof Float equals true, returns - * AttributeType.FLOAT. - * - * @param obj the object that is to be parsed - * @return the compatible AttributeType, or null if no type is found or the input object is null - */ - public static AttributeType parse(Object obj) { - if (obj == null) { - return null; - } - Class c = obj.getClass(); - - for (AttributeType attributeType : AttributeType.values()) { - if (c.equals(attributeType.getType())) { - return attributeType; - } - } - - return null; - } - - /** - * Build an dynamic - * AttributeType from the given - * obj type. If the given - * obj class match with an - * AttributeType type, returns this type. Returns - * null otherwise.

For instance if obj instanceof Float equals true, returns - * AttributeType.DYNAMIC_FLOAT. - * - * @param obj the object that is to be parsed - * @return the compatible AttributeType, or null - */ - public static AttributeType parseDynamic(Object obj) { - if (obj == null) { - return null; - } - - Class c = obj.getClass(); - - if (c.equals(Byte.class)) { - return DYNAMIC_BYTE; - } - if (c.equals(Short.class)) { - return DYNAMIC_SHORT; - } - if (c.equals(Integer.class)) { - return DYNAMIC_INT; - } - if (c.equals(Long.class)) { - return DYNAMIC_LONG; - } - if (c.equals(Float.class)) { - return DYNAMIC_FLOAT; - } - if (c.equals(Double.class)) { - return DYNAMIC_DOUBLE; - } - if (c.equals(Boolean.class)) { - return DYNAMIC_BOOLEAN; - } - if (c.equals(Character.class)) { - return DYNAMIC_CHAR; - } - if (c.equals(String.class)) { - return DYNAMIC_STRING; - } - if (c.equals(BigInteger.class)) { - return DYNAMIC_BIGINTEGER; - } - if (c.equals(BigDecimal.class)) { - return DYNAMIC_BIGDECIMAL; - } - - return null; - } - - /** - * Indicates if this type is a {@code DynamicType}. - * - * @return {@code true} if this is a {@code DynamicType}, {@code false} otherwise - */ - public boolean isDynamicType() { - switch (this) { - case DYNAMIC_BYTE: - case DYNAMIC_SHORT: - case DYNAMIC_INT: - case DYNAMIC_LONG: - case DYNAMIC_FLOAT: - case DYNAMIC_DOUBLE: - case DYNAMIC_BOOLEAN: - case DYNAMIC_CHAR: - case DYNAMIC_STRING: - case DYNAMIC_BIGINTEGER: - case DYNAMIC_BIGDECIMAL: - case TIME_INTERVAL: - return true; - default: - return false; - } - } - - public boolean isListType() { - if (this.equals(LIST_BIGDECIMAL) - || this.equals(LIST_BIGINTEGER) - || this.equals(LIST_BOOLEAN) - || this.equals(LIST_BYTE) - || this.equals(LIST_CHARACTER) - || this.equals(LIST_DOUBLE) - || this.equals(LIST_FLOAT) - || this.equals(LIST_INTEGER) - || this.equals(LIST_LONG) - || this.equals(LIST_SHORT) - || this.equals(LIST_STRING)) { - return true; - } - return false; - } - - /** - * Removes the decimal digits and point of the numbers of string when necessary. Used for trying to parse decimal numbers as not decimal. For example BigDecimal to BigInteger. - * - * @param s String to remove decimal digits - * @return String without dot and decimal digits. - */ - public static String removeDecimalDigitsFromString(String s) { - return removeDecimalDigitsFromStringPattern.matcher(s).replaceAll(""); - } - private static final Pattern removeDecimalDigitsFromStringPattern = Pattern.compile("\\.[0-9]*"); -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeUtils.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeUtils.java deleted file mode 100644 index 1554fdb498..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeUtils.java +++ /dev/null @@ -1,134 +0,0 @@ -/* - Copyright 2008-2010 Gephi - Authors : Mathieu Bastian , Martin Ε kurla - Website : http://www.gephi.org - - This file is part of Gephi. - - DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - - Copyright 2011 Gephi Consortium. All rights reserved. - - The contents of this file are subject to the terms of either the GNU - General Public License Version 3 only ("GPL") or the Common - Development and Distribution License("CDDL") (collectively, the - "License"). You may not use this file except in compliance with the - License. You can obtain a copy of the License at - http://gephi.org/about/legal/license-notice/ - or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the - specific language governing permissions and limitations under the - License. When distributing the software, include this License Header - Notice in each file and include the License files at - /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the - License Header, with the fields enclosed by brackets [] replaced by - your own identifying information: - "Portions Copyrighted [year] [name of copyright owner]" - - If you wish your version of this file to be governed by only the CDDL - or only the GPL Version 3, indicate your decision by adding - "[Contributor] elects to include this software in this distribution - under the [CDDL or GPL Version 3] license." If you do not indicate a - single choice of license, a recipient has the option to distribute - your version of this file under either the CDDL, the GPL Version 3 or - to extend the choice of license to its licensees as provided above. - However, if you add GPL Version 3 code and therefore, elected the GPL - Version 3 license, then the option applies only if the new code is - made subject to such option by the copyright holder. - - Contributor(s): - - Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.data.attributes.api; - -import java.util.GregorianCalendar; -import javax.xml.datatype.DatatypeConfigurationException; -import javax.xml.datatype.DatatypeFactory; -import org.openide.util.Lookup; - -/** - * - * @author Mathieu Bastian - * @author Martin Ε kurla - */ -public abstract class AttributeUtils { - - private static DatatypeFactory dateFactory; - - static { - try { - dateFactory = DatatypeFactory.newInstance(); - } catch (DatatypeConfigurationException ex) { - } - } - - public abstract boolean isNodeColumn(AttributeColumn column); - - public abstract boolean isEdgeColumn(AttributeColumn column); - - public abstract boolean isGraphColumn(AttributeColumn column); - - public abstract boolean isColumnOfType(AttributeColumn column, AttributeType type); - - public abstract boolean areAllColumnsOfType(AttributeColumn[] columns, AttributeType type); - - public abstract boolean areAllColumnsOfSameType(AttributeColumn[] columns); - - public abstract boolean isStringColumn(AttributeColumn column); - - public abstract boolean areAllStringColumns(AttributeColumn[] columns); - - public abstract boolean isNumberColumn(AttributeColumn column); - - public abstract boolean areAllNumberColumns(AttributeColumn[] columns); - - public abstract boolean isNumberListColumn(AttributeColumn column); - - public abstract boolean areAllNumberListColumns(AttributeColumn[] columns); - - public abstract boolean isNumberOrNumberListColumn(AttributeColumn column); - - public abstract boolean areAllNumberOrNumberListColumns(AttributeColumn[] columns); - - public abstract boolean isDynamicNumberColumn(AttributeColumn column); - - public abstract boolean areAllDynamicNumberColumns(AttributeColumn[] columns); - - public abstract AttributeColumn[] getNumberColumns(AttributeTable table); - - public abstract AttributeColumn[] getStringColumns(AttributeTable table); - - public abstract AttributeColumn[] getAllCollums(AttributeModel model); - - @SuppressWarnings("rawtypes") - public abstract Comparable getMin(AttributeColumn column, Comparable[] values); - - @SuppressWarnings("rawtypes") - public abstract Comparable getMax(AttributeColumn column, Comparable[] values); - - public static synchronized AttributeUtils getDefault() { - return Lookup.getDefault().lookup(AttributeUtils.class); - } - - /** - * Used for attributes representation. - * - * @param d a double to convert from - * - * @return an XML date string. - * - * @throws IllegalArgumentException if {@code d} is infinite. - */ - public static String getXMLDateStringFromDouble(double d) { - if (d == Double.NEGATIVE_INFINITY) { - return "-Infinity"; - } else if (d == Double.POSITIVE_INFINITY) { - return "Infinity"; - } - GregorianCalendar gc = new GregorianCalendar(); - gc.setTimeInMillis((long) d); - String s = dateFactory.newXMLGregorianCalendar(gc).toXMLFormat().substring(0, 23); - s = s.endsWith("T00:00:00.000") ? s.substring(0, 10) : s; - return s; - } -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeValue.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeValue.java deleted file mode 100644 index aa11c2136d..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeValue.java +++ /dev/null @@ -1,70 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.api; - -/** - * Cell that contains the value for a particular {@link AttributeColumn} and - * {@link AttributeRow}. - *

- * Cells are build from a {@link AttributeValueFactory}, that can be get from the - * {@link AttributeModel}. - * - * @author Mathieu Bastian - */ -public interface AttributeValue { - - /** - * Returns the column this value belongs. - * - * @return the column this value belongs - */ - public AttributeColumn getColumn(); - - /** - * Returns the value. May be null or equal to the column's - * default value. - * - * @return the value or null - * @see AttributeColumn#getDefaultValue() - */ - public Object getValue(); -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeValueFactory.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeValueFactory.java deleted file mode 100644 index 346ebe2873..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/AttributeValueFactory.java +++ /dev/null @@ -1,63 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.api; - -/** - * Factory which is building exclusively {@link AttributeValue}. It can be get - * from the {@link AttributeModel#valueFactory()}. - * - * @author Mathieu Bastian - */ -public interface AttributeValueFactory { - - /** - * Returns a new cell value for the given column and - * value. The value can be null. - *

- * The value type should be compatible with the column type. - * - * @param column the column where the cell belongs - * @param value a compatible value, or null - * @return the new value for the given column - */ - public AttributeValue newValue(AttributeColumn column, Object value); -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/Estimator.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/Estimator.java deleted file mode 100644 index 99330ec165..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/api/Estimator.java +++ /dev/null @@ -1,155 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Cezary Bartosiak -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.api; - -/** - * This enum is used to determine what should be done with "ties". For example - * if in the given time interval some attribute has got 3 different values we - * should know how to estimate its value. - * - *

The table below shows how the estimation is done for different types - * ({@code -} means {@code not specified}). - *

- * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - *
AVERAGEMEDIANMODESUMMINMAXFIRSTLAST
Real numbersarithmetic meanthe value separating the higher half from the lower half (if there is - * an even number of values, the median is then defined to be the mean of - * the two middle values)the value that occurs the most frequentlythe result of addition of all valuesthe lowest valuethe highest valuethe value which occured firstlythe value which occured lastly
Integersarithmetic mean - using integer divisionthe value separating the higher half from the lower half (if there is - * an even number of values, the median is then defined to be the mean of - * the two middle values - using integer division)the value that occurs the most frequentlythe result of addition of all valuesthe lowest valuethe highest valuethe value which occured firstlythe value which occured lastly
Boolean-the bool separating the higher half from the lower half (if there is - * an even number of bools, the median is then defined to be the bool - * which occured earlier than the second middle bool)the bool that occurs the most frequently-false if exists in a given set of bools, otherwise truetrue if exists in a given set of bools, otherwise falsethe bool which occured firstlythe bool which occured lastly
Character-the character separating the higher half from the lower half (if there - * is an even number of characters, the median is then defined to be the - * character which occured earlier than the second middle character)the character that occurs the most frequently-the lowest character (with the lowest {@code int} value)the highest character (with the highest {@code int} value)the character which occured firstlythe character which occured lastly
String-the string separating the higher half from the lower half (if there - * is an even number of strings, the median is then defined to be the - * string which occured earlier than the second middle string)the string that occurs the most frequently-the lowest string (using {@code compareTo} method)the highest string (using {@code compareTo} method)the string which occured firstlythe string which occured lastly
TimeInterval-the time interval separating the higher half from the lower half (if - * there is an even number of time intervals, the median is then defined - * to be the time interval which occured earlier than the second middle - * time interval)the time interval that occurs the most frequently---the time interval which occured firstlythe time interval which occured lastly
- * - * @author Cezary Bartosiak - */ -public enum Estimator { - AVERAGE, - MEDIAN, - MODE, - SUM, - MIN, - MAX, - FIRST, - LAST -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/spi/AttributeValueDelegateProvider.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/spi/AttributeValueDelegateProvider.java deleted file mode 100644 index 325f79efaf..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/spi/AttributeValueDelegateProvider.java +++ /dev/null @@ -1,183 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Martin Ε kurla -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.data.attributes.spi; - - -import org.gephi.data.attributes.api.AttributeColumn; - - -/** - *

General information

- * Provider for delegating attribute value. Using this interface it is possible to delegate the real - * value of AttributeValue object to database (relational, graph, ...), index/search engine, ... - *
- * For every node/edge it is possible to add, get, set and remove every attribute value. - * - *

Implementation details

- * As of implementation detail of AttributeValue immutability, both adding and setting the attribute value is done through the - * set[Edge|Node]AttributeValue() method, so it is absolutely necessary to treat both cases in the method body. - *
- * Every method takes at least 2 arguments: - *
    - *
  • delegate id - *
  • attribute column - *
- * Delegate id is any type of object necessary to get the right node/edge. For instance for Neo4j it is of type Long, - * which is directly used as Neo4j node/relationship id. For other storing engines which require indexing key and - * value it could be crate (wrapper object) wrapping both values with proper types. - *
- * Attribute column is used usually for getting the column id which is used as property name. - * - *

Automatic and manual type conversions

- * Important thing about the whole delegating process is type conversion. It is clear that there might exist type mismatch - * between Gephi types and types which are supported in storing engine. During implementation it is necessary to fulfill - * following requirements: - *
    - *
  • get[Edge|Node]AttributeValue() method must return any of primitive types, String or array of these types. The - * conversion from array type into appropriate List type is done automatically using ListFactory method. - *
  • set[Edge|Node]AttributeValue() can accept any of Gephi supported types described in AttributeType constructors - * as class objects. It is up to the Provider to make appropriate conversion if this is needed, especially conversion - * from List types. - *
- * - *

Usage

- * Every AttributeColumn has direct link to its own AttributeValueDelegateProvider. This means that it is possible to - * have more Providers in the same AttributeTable, each delegating from a subset of all columns. And because the fact - * that every AttributeValue has link to its AttributeColumn, it has direct access to its Provider too. - *
- * Provider will be called for getting value for every AttributeValue which has column with AttributeOrigin.DELEGATE. - * The first setValue() method call on Attributes/AttributeRow will set the delegate id and every other will change - * data in storing engine. - * - *

Best practises

- * Every implementing class should be implemented as singleton because of memory savings. This singleton should be - * passed during populating AttributeTable / creating columns. - *
- * Any other necessary implementation information / resources (as concrete database instance) should be set using - * static methods. - *
- * Any necessary convertor described in Automatic and manual type conversions should be implemented as static - * inner class. - * - * @author Martin Ε kurla - * - * @param type parameter used to restrict delegate id type - */ -public abstract class AttributeValueDelegateProvider { - /** - * Returns the delegated node attribute value. - * - * @param delegateId delegate id - * @param attributeColumn attribute column - * - * @return delegated node attribute value - */ - public abstract Object getNodeAttributeValue(T delegateId, AttributeColumn attributeColumn); - - /** - * Adds or sets the delegated node attribute value. It is necessary to treat both cases in the method body! - * - * @param delegateId delegate id - * @param attributeColumn attribute column - * @param nodeValue new/changed delegated node attribute value - */ - public abstract void setNodeAttributeValue(T delegateId, AttributeColumn attributeColumn, Object nodeValue); - - /** - * Deletes the delegated node attribute value. - * - * @param delegateId delegate id - * @param attributeColumn attribute column - */ - public abstract void deleteNodeAttributeValue(T delegateId, AttributeColumn attributeColumn); - - /** - * Returns the delegated edge attribute value. - * - * @param delegateId delegate id - * @param attributeColumn attribute column - * - * @return delegated edge attribute value - */ - public abstract Object getEdgeAttributeValue(T delegateId, AttributeColumn attributeColumn); - - /** - * Adds or sets the delegated edge attribute value. It is necessary to treat both cases in the method body! - * - * @param delegateId delegate id - * @param attributeColumn attribute column - * @param nodeValue new/changed delegated edge attribute value - */ - public abstract void setEdgeAttributeValue(T delegateId, AttributeColumn attributeColumn, Object edgeValue); - - /** - * Deletes the delegated edge attribute value. - * - * @param delegateId delegate id - * @param attributeColumn attribute column - */ - public abstract void deleteEdgeAttributeValue(T delegateId, AttributeColumn attributeColumn); - - /** - * Returns name of storage engine. This is used when graph uses more storage engines and where must be an - * option how to differ them in GUI. - * - * @return name of storage engine - */ - public abstract String storageEngineName();//TODO >>> add documentation for these two methods - - public abstract GraphItemDelegateFactoryProvider graphItemDelegateFactoryProvider(); - - - @Override//TODO >>> add documentation about this usage for hashing, ... - public final boolean equals(Object obj) { - if (!(obj instanceof AttributeValueDelegateProvider)) - return false; - - return ((AttributeValueDelegateProvider) obj).storageEngineName().equals(this.storageEngineName()); - } - - @Override - public final int hashCode() { - return storageEngineName().hashCode(); - } -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/spi/GraphItemDelegateFactoryProvider.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/spi/GraphItemDelegateFactoryProvider.java deleted file mode 100644 index 2328663131..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/spi/GraphItemDelegateFactoryProvider.java +++ /dev/null @@ -1,58 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Martin Ε kurla -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.data.attributes.spi; - -/** - * - * @author Martin Ε kurla - * @param - */ -public interface GraphItemDelegateFactoryProvider { - - T createNode(); - - void deleteNode(T nodeId); - - T createEdge(T startNodeId, T endNodeId); - - void deleteEdge(T edgeId); -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/AbstractList.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/AbstractList.java deleted file mode 100644 index 13bf802754..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/AbstractList.java +++ /dev/null @@ -1,200 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Martin Ε kurla -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.type; - -import java.util.Arrays; - -/** - * Complex type that defines list of any type of items. Can be created from an array or from single - * string using either given or default separators. Internal representation of data is array of generic - * type. This means that every primitive type must be first converted into wrapper type. The exact - * conversion process from String value into given type is done by {@link TypeConvertor TypeConvertor} - * class. - * - *

- *

Design guidelines

- * This is a basic abstract class that every other 'List' class should extend. In order to not misuse - * the API, every extending type should be one of the following: - *
    - *
  • helper type which restricts the type parameter and possibly brings some new functionality (e.g. - * {@link NumberList NumberList}). This is not final usable type so it should be declared as abstract. - *
  • final type that extends any of defined helper types or basic class and sets the type parameter - * (e.g. there are types for representing all primitive types, String, BigInteger & BigDecimal). - * These are final usable types so they should be declared as final. - *
- * - *

Flexibility

- * The flexibility of this API is done in 2 ways: - *
    - *
  • We can add functionality by defining conversions from any other type in difference from general - * supported types through defining new constructors (e.g. {@link StringList StringList} class can - * be created from array of characters). We can also restrict the functionality (e.g. BigInteger & - * BigDecimal cannot be created from arrays of primitive types). The conversion process should be - * done by {@link TypeConvertor TypeConvertor} type if the conversion can be used in more List - * implementations or by 'private static T parseXXX()' method in appropriate List implementation if - * only this type uses the conversion (e.g. {@link StringList#parse}). - *
  • Any other functionality required from 'List' implementations should be done by implementing - * appropriate non-static methods in concrete 'List' implementations. - *
- * - *

Extensibility

- * This API can be simply extended. New 'List' type should extend base or any helper 'List' type. We can - * create final 'List' implementations as well as helper 'list' implementations with appropriate modifiers - * (see Design Guidelines). We can define as many constructors responsible for conversions from other - * types and as many additional methods as we want.
- * To fully integrate new 'List' type into the whole codebase we have to update following types: - *
    - *
  1. {@link org.gephi.data.attributes.api.AttributeType AttributeType}: - *
      - *
    1. add appropriate enum constants - *
    2. update {@link org.gephi.data.attributes.api.AttributeType#parse(String str) parse(String)} method - *
    - *
  2. {@link org.gephi.data.attributes.model.DataIndex DataIndex}: - *
      - *
    1. add appropriate type represented by Class object into - * {@link org.gephi.data.attributes.model.DataIndex#SUPPORTED_TYPES SUPPORTED_TYPES} array - *
    - *
- * - * This class defines {@link #size method for recognizing size} of the list and - * {@link #getItem method for getting item by index}. - * - * @param type parameter defining final List type - * - * @author Martin Ε kurla - * - * @see TypeConvertor - */ -public abstract class AbstractList { - - public static final String DEFAULT_SEPARATOR = ",|;"; - protected final T[] list; - private volatile int hashCode = 0; - - public AbstractList(String input, Class finalType) { - this(input, DEFAULT_SEPARATOR, finalType); - } - - public AbstractList(String input, String separator, Class finalType) { - this(TypeConvertor.createArrayFromString(input, separator, finalType)); - } - - public AbstractList(T[] array) { - this.list = Arrays.copyOf(array, array.length); - } - - public int size() { - return list.length; - } - - public T getItem(int index) { - if (index >= list.length) { - return null; - } - - return list[index]; - } - - public boolean contains(T value) { - for (int i = 0; i < list.length; i++) { - if (list[i].equals(value)) { - return true; - } - } - return false; - } - - @Override - public String toString() { - StringBuilder builder = new StringBuilder(); - - for (int i = 0; i < list.length; i++) { - builder.append(list[i]); - builder.append(','); - } - - if (list.length > 0) { - builder.deleteCharAt(builder.length() - 1); - } - - return builder.toString(); - } - - @Override - public boolean equals(Object obj) { - if (!(obj instanceof AbstractList)) { - return false; - } - - AbstractList s = (AbstractList) obj; - - if (s.size() != this.size()) { - return false; - } - - for (int i = 0; i < list.length; i++) { - if (this.getItem(i) != s.getItem(i)) { - if (this.getItem(i)!=null&&!this.getItem(i).equals(s.getItem(i))) { - return false; - }else if(s.getItem(i)!=null&&!s.getItem(i).equals(this.getItem(i))){ - return false; - } - } - } - - return true; - } - - @Override - public int hashCode() { - if (hashCode == 0) { - int hash = 7; - - for (int i = 0; i < list.length; i++) { - hash = 53 * hash + (this.list[i] != null ? this.list[i].hashCode() : 0); - } - hashCode = hash; - } - return hashCode; - } -} - diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/BigDecimalList.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/BigDecimalList.java deleted file mode 100644 index ce04db1ae4..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/BigDecimalList.java +++ /dev/null @@ -1,65 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Martin Ε kurla -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.type; - -import java.math.BigDecimal; - -/** - * Complex type that define a list of BigDecimal items. Can be created from a BigDecimal - * array or from single string using either given or default separators. - * - * @author Martin Ε kurla - */ -public final class BigDecimalList extends NumberList { - - public BigDecimalList(BigDecimal[] array) { - super(array); - } - - public BigDecimalList(String input) { - this(input, AbstractList.DEFAULT_SEPARATOR); - } - - public BigDecimalList(String input, String separator) { - super(input, separator, BigDecimal.class); - } -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/BigIntegerList.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/BigIntegerList.java deleted file mode 100644 index 95d58b34e1..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/BigIntegerList.java +++ /dev/null @@ -1,66 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Martin Ε kurla -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.type; - -import java.math.BigInteger; - -/** - * Complex type that define a list of BigInteger items. Can be created from a BigInteger - * array or from single string using either given or default separators. - * - * @author Martin Ε kurla - */ -public final class BigIntegerList extends NumberList { - - public BigIntegerList(BigInteger[] array) { - super(array); - } - - public BigIntegerList(String input) { - this(input, AbstractList.DEFAULT_SEPARATOR); - } - - public BigIntegerList(String input, String separator) { - super(input, separator, BigInteger.class); - } -} - diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/BooleanList.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/BooleanList.java deleted file mode 100644 index 662f5a99b2..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/BooleanList.java +++ /dev/null @@ -1,67 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Martin Ε kurla -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.type; - -/** - * Complex type that define a list of Boolean items. Can be created from a boolean - * array, from a Boolean array or from single string using either given or default separators. - * - * @author Martin Ε kurla - */ -public final class BooleanList extends AbstractList { - - public BooleanList(boolean[] primitiveBooleanArray) { - super(TypeConvertor.convertPrimitiveToWrapperArray(primitiveBooleanArray)); - } - - public BooleanList(Boolean[] wrapperBooleanArray) { - super(wrapperBooleanArray); - } - - public BooleanList(String input) { - this(input, AbstractList.DEFAULT_SEPARATOR); - } - - public BooleanList(String input, String separator) { - super(input, separator, Boolean.class); - } -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/ByteList.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/ByteList.java deleted file mode 100644 index b6d9febda9..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/ByteList.java +++ /dev/null @@ -1,67 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Martin Ε kurla -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.type; - -/** - * Complex type that define a list of Byte items. Can be created from a byte - * array, from a Byte array or from single string using either given or default separators. - * - * @author Martin Ε kurla - */ -public final class ByteList extends NumberList { - - public ByteList(byte[] primitiveByteArray) { - super(TypeConvertor.convertPrimitiveToWrapperArray(primitiveByteArray)); - } - - public ByteList(Byte[] wrapperByteArray) { - super(wrapperByteArray); - } - - public ByteList(String input) { - this(input, AbstractList.DEFAULT_SEPARATOR); - } - - public ByteList(String input, String separator) { - super(input, separator, Byte.class); - } -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/CharacterList.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/CharacterList.java deleted file mode 100644 index 3b1e3ff719..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/CharacterList.java +++ /dev/null @@ -1,67 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Martin Ε kurla -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.type; - -/** - * Complex type that define a list of Character items. Can be created from a char - * array, from a Character array or from single string using either given or default separators. - * - * @author Martin Ε kurla - */ -public final class CharacterList extends AbstractList { - - public CharacterList(char[] primitiveCharArray) { - super(TypeConvertor.convertPrimitiveToWrapperArray(primitiveCharArray)); - } - - public CharacterList(Character[] wrapperCharArray) { - super(wrapperCharArray); - } - - public CharacterList(String input) { - this(input, AbstractList.DEFAULT_SEPARATOR); - } - - public CharacterList(String input, String separator) { - super(input, separator, Character.class); - } -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DoubleList.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DoubleList.java deleted file mode 100644 index d02864b3f0..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DoubleList.java +++ /dev/null @@ -1,67 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Martin Ε kurla -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.type; - -/** - * Complex type that define a list of Double items. Can be created from a double - * array, from a Double array or from single string using either given or default separators. - * - * @author Martin Ε kurla - */ -public final class DoubleList extends NumberList { - - public DoubleList(double[] primitiveDoubleArray) { - super(TypeConvertor.convertPrimitiveToWrapperArray(primitiveDoubleArray)); - } - - public DoubleList(Double[] wrapperDoubleArray) { - super(wrapperDoubleArray); - } - - public DoubleList(String input) { - this(input, AbstractList.DEFAULT_SEPARATOR); - } - - public DoubleList(String input, String separator) { - super(input, separator, Double.class); - } -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicBigDecimal.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicBigDecimal.java deleted file mode 100644 index c8624da2b3..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicBigDecimal.java +++ /dev/null @@ -1,214 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Cezary Bartosiak -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.type; - -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.util.Hashtable; -import java.util.List; -import org.gephi.data.attributes.api.Estimator; - -/** - * Represents {@link BigDecimal} type which can have got different values in - * different time intervals. - * - * @author Cezary Bartosiak - */ -public final class DynamicBigDecimal extends DynamicType { - /** - * Constructs a new {@code DynamicType} instance with no intervals. - */ - public DynamicBigDecimal() { - super(); - } - - /** - * Constructs a new {@code DynamicType} instance that contains a given - * {@code Interval} in. - * - * @param in interval to add (could be null) - */ - public DynamicBigDecimal(Interval in) { - super(in); - } - - /** - * Constructs a new {@code DynamicType} instance with intervals given by - * {@code List>} in. - * - * @param in intervals to add (could be null) - */ - public DynamicBigDecimal(List> in) { - super(in); - } - - /** - * Constructs a deep copy of {@code source}. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - */ - public DynamicBigDecimal(DynamicBigDecimal source) { - super(source); - } - - /** - * Constructs a deep copy of {@code source} that contains a given - * {@code Interval} in. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in interval to add (could be null) - */ - public DynamicBigDecimal(DynamicBigDecimal source, Interval in) { - super(source, in); - } - - /** - * Constructs a deep copy of {@code source} that contains a given - * {@code Interval} in. Before add it removes from the newly created - * object all intervals that overlap with a given {@code Interval} out. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in interval to add (could be null) - * @param out interval to remove (could be null) - */ - public DynamicBigDecimal(DynamicBigDecimal source, Interval in, Interval out) { - super(source, in, out); - } - - /** - * Constructs a deep copy of {@code source} with additional intervals - * given by {@code List>} in. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in intervals to add (could be null) - */ - public DynamicBigDecimal(DynamicBigDecimal source, List> in) { - super(source, in); - } - - /** - * Constructs a deep copy of {@code source} with additional intervals - * given by {@code List>} in. Before add it removes from the - * newly created object all intervals that overlap with intervals given by - * {@code List>} out. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in intervals to add (could be null) - * @param out intervals to remove (could be null) - */ - public DynamicBigDecimal(DynamicBigDecimal source, List> in, List> out) { - super(source, in, out); - } - - @Override - public BigDecimal getValue(Interval interval, Estimator estimator) { - List values = getValues(interval); - if (values.isEmpty()) - return null; - - switch (estimator) { - case AVERAGE: - if (values.size() == 1) - return values.get(0); - BigDecimal total = new BigDecimal(0); - for (int i = 0; i < values.size(); ++i) - total = total.add(values.get(i)); - return total.divide(BigDecimal.valueOf(values.size()), RoundingMode.HALF_UP); - case MEDIAN: - if (values.size() % 2 == 1) - return values.get(values.size() / 2); - BigDecimal bd = values.get(values.size() / 2 - 1); - bd = bd.add(values.get(values.size() / 2)); - return bd.divide(new BigDecimal(2)); - case MODE: - Hashtable map = - new Hashtable(); - for (int i = 0; i < values.size(); ++i) { - int prev = 0; - if (map.containsKey(values.get(i).hashCode())) - prev = map.get(values.get(i).hashCode()); - map.put(values.get(i).hashCode(), prev + 1); - } - int max = map.get(values.get(0).hashCode()); - int index = 0; - for (int i = 1; i < values.size(); ++i) - if (max < map.get(values.get(i).hashCode())) { - max = map.get(values.get(i).hashCode()); - index = i; - } - return values.get(index); - case SUM: - BigDecimal sum = new BigDecimal(0); - for (int i = 0; i < values.size(); ++i) - sum = sum.add(values.get(i)); - return sum; - case MIN: - BigDecimal minimum = values.get(0); - for (int i = 1; i < values.size(); ++i) - if (minimum.compareTo(values.get(i)) > 0) - minimum = values.get(i); - return minimum; - case MAX: - BigDecimal maximum = values.get(0); - for (int i = 1; i < values.size(); ++i) - if (maximum.compareTo(values.get(i)) < 0) - maximum = values.get(i); - return maximum; - case FIRST: - return values.get(0); - case LAST: - return values.get(values.size() - 1); - default: - throw new IllegalArgumentException("Unknown estimator."); - } - } - - @Override - public Class getUnderlyingType() { - return BigDecimal.class; - } -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicBigInteger.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicBigInteger.java deleted file mode 100644 index fda3ba9e74..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicBigInteger.java +++ /dev/null @@ -1,213 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Cezary Bartosiak -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.type; - -import java.math.BigInteger; -import java.util.Hashtable; -import java.util.List; -import org.gephi.data.attributes.api.Estimator; - -/** - * Represents {@link BigInteger} type which can have got different values in - * different time intervals. - * - * @author Cezary Bartosiak - */ -public final class DynamicBigInteger extends DynamicType { - /** - * Constructs a new {@code DynamicType} instance with no intervals. - */ - public DynamicBigInteger() { - super(); - } - - /** - * Constructs a new {@code DynamicType} instance that contains a given - * {@code Interval} in. - * - * @param in interval to add (could be null) - */ - public DynamicBigInteger(Interval in) { - super(in); - } - - /** - * Constructs a new {@code DynamicType} instance with intervals given by - * {@code List>} in. - * - * @param in intervals to add (could be null) - */ - public DynamicBigInteger(List> in) { - super(in); - } - - /** - * Constructs a deep copy of {@code source}. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - */ - public DynamicBigInteger(DynamicBigInteger source) { - super(source); - } - - /** - * Constructs a deep copy of {@code source} that contains a given - * {@code Interval} in. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in interval to add (could be null) - */ - public DynamicBigInteger(DynamicBigInteger source, Interval in) { - super(source, in); - } - - /** - * Constructs a deep copy of {@code source} that contains a given - * {@code Interval} in. Before add it removes from the newly created - * object all intervals that overlap with a given {@code Interval} out. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in interval to add (could be null) - * @param out interval to remove (could be null) - */ - public DynamicBigInteger(DynamicBigInteger source, Interval in, Interval out) { - super(source, in, out); - } - - /** - * Constructs a deep copy of {@code source} with additional intervals - * given by {@code List>} in. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in intervals to add (could be null) - */ - public DynamicBigInteger(DynamicBigInteger source, List> in) { - super(source, in); - } - - /** - * Constructs a deep copy of {@code source} with additional intervals - * given by {@code List>} in. Before add it removes from the - * newly created object all intervals that overlap with intervals given by - * {@code List>} out. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in intervals to add (could be null) - * @param out intervals to remove (could be null) - */ - public DynamicBigInteger(DynamicBigInteger source, List> in, List> out) { - super(source, in, out); - } - - @Override - public BigInteger getValue(Interval interval, Estimator estimator) { - List values = getValues(interval); - if (values.isEmpty()) - return null; - - switch (estimator) { - case AVERAGE: - if (values.size() == 1) - return values.get(0); - BigInteger total = BigInteger.valueOf(0); - for (int i = 0; i < values.size(); ++i) - total = total.add(values.get(i)); - return total.divide(BigInteger.valueOf(values.size())); - case MEDIAN: - if (values.size() % 2 == 1) - return values.get(values.size() / 2); - BigInteger bi = values.get(values.size() / 2 - 1); - bi = bi.add(values.get(values.size() / 2)); - return bi.divide(BigInteger.valueOf(2)); - case MODE: - Hashtable map = - new Hashtable(); - for (int i = 0; i < values.size(); ++i) { - int prev = 0; - if (map.containsKey(values.get(i).hashCode())) - prev = map.get(values.get(i).hashCode()); - map.put(values.get(i).hashCode(), prev + 1); - } - int max = map.get(values.get(0).hashCode()); - int index = 0; - for (int i = 1; i < values.size(); ++i) - if (max < map.get(values.get(i).hashCode())) { - max = map.get(values.get(i).hashCode()); - index = i; - } - return values.get(index); - case SUM: - BigInteger sum = BigInteger.valueOf(0); - for (int i = 0; i < values.size(); ++i) - sum = sum.add(values.get(i)); - return sum; - case MIN: - BigInteger minimum = values.get(0); - for (int i = 1; i < values.size(); ++i) - if (minimum.compareTo(values.get(i)) > 0) - minimum = values.get(i); - return minimum; - case MAX: - BigInteger maximum = values.get(0); - for (int i = 1; i < values.size(); ++i) - if (maximum.compareTo(values.get(i)) < 0) - maximum = values.get(i); - return maximum; - case FIRST: - return values.get(0); - case LAST: - return values.get(values.size() - 1); - default: - throw new IllegalArgumentException("Unknown estimator."); - } - } - - @Override - public Class getUnderlyingType() { - return BigInteger.class; - } -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicBoolean.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicBoolean.java deleted file mode 100644 index 54d21ffb73..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicBoolean.java +++ /dev/null @@ -1,204 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Cezary Bartosiak -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.type; - -import java.util.Hashtable; -import java.util.List; -import org.gephi.data.attributes.api.Estimator; - -/** - * Represents {@link Boolean} type which can have got different values in - * different time intervals. - * - * @author Cezary Bartosiak - */ -public final class DynamicBoolean extends DynamicType { - /** - * Constructs a new {@code DynamicType} instance with no intervals. - */ - public DynamicBoolean() { - super(); - } - - /** - * Constructs a new {@code DynamicType} instance that contains a given - * {@code Interval} in. - * - * @param in interval to add (could be null) - */ - public DynamicBoolean(Interval in) { - super(in); - } - - /** - * Constructs a new {@code DynamicType} instance with intervals given by - * {@code List>} in. - * - * @param in intervals to add (could be null) - */ - public DynamicBoolean(List> in) { - super(in); - } - - /** - * Constructs a deep copy of {@code source}. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - */ - public DynamicBoolean(DynamicBoolean source) { - super(source); - } - - /** - * Constructs a deep copy of {@code source} that contains a given - * {@code Interval} in. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in interval to add (could be null) - */ - public DynamicBoolean(DynamicBoolean source, Interval in) { - super(source, in); - } - - /** - * Constructs a deep copy of {@code source} that contains a given - * {@code Interval} in. Before add it removes from the newly created - * object all intervals that overlap with a given {@code Interval} out. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in interval to add (could be null) - * @param out interval to remove (could be null) - */ - public DynamicBoolean(DynamicBoolean source, Interval in, Interval out) { - super(source, in, out); - } - - /** - * Constructs a deep copy of {@code source} with additional intervals - * given by {@code List>} in. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in intervals to add (could be null) - */ - public DynamicBoolean(DynamicBoolean source, List> in) { - super(source, in); - } - - /** - * Constructs a deep copy of {@code source} with additional intervals - * given by {@code List>} in. Before add it removes from the - * newly created object all intervals that overlap with intervals given by - * {@code List>} out. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in intervals to add (could be null) - * @param out intervals to remove (could be null) - */ - public DynamicBoolean(DynamicBoolean source, List> in, List> out) { - super(source, in, out); - } - - @Override - public Boolean getValue(Interval interval, Estimator estimator) { - List values = getValues(interval); - if (values.isEmpty()) - return null; - - switch (estimator) { - case AVERAGE: - throw new UnsupportedOperationException( - "Not supported estimator"); - case MEDIAN: - if (values.size() % 2 == 1) - return values.get(values.size() / 2); - return values.get(values.size() / 2 - 1); - case MODE: - Hashtable map = - new Hashtable(); - for (int i = 0; i < values.size(); ++i) { - int prev = 0; - if (map.containsKey(values.get(i).hashCode())) - prev = map.get(values.get(i).hashCode()); - map.put(values.get(i).hashCode(), prev + 1); - } - int max = map.get(values.get(0).hashCode()); - int index = 0; - for (int i = 1; i < values.size(); ++i) - if (max < map.get(values.get(i).hashCode())) { - max = map.get(values.get(i).hashCode()); - index = i; - } - return values.get(index); - case SUM: - throw new UnsupportedOperationException( - "Not supported estimator"); - case MIN: - Boolean minimum = values.get(0); - for (int i = 1; i < values.size(); ++i) - if (minimum.compareTo(values.get(i)) > 0) - minimum = values.get(i); - return minimum; - case MAX: - Boolean maximum = values.get(0); - for (int i = 1; i < values.size(); ++i) - if (maximum.compareTo(values.get(i)) < 0) - maximum = values.get(i); - return maximum; - case FIRST: - return values.get(0); - case LAST: - return values.get(values.size() - 1); - default: - throw new IllegalArgumentException("Unknown estimator."); - } - } - - @Override - public Class getUnderlyingType() { - return Boolean.class; - } -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicByte.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicByte.java deleted file mode 100644 index 5e47270521..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicByte.java +++ /dev/null @@ -1,216 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Cezary Bartosiak -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.type; - -import java.math.BigInteger; -import java.util.Hashtable; -import java.util.List; -import org.gephi.data.attributes.api.Estimator; - -/** - * Represents {@link Byte} type which can have got different values in - * different time intervals. - * - * @author Cezary Bartosiak - */ -public final class DynamicByte extends DynamicType { - /** - * Constructs a new {@code DynamicType} instance with no intervals. - */ - public DynamicByte() { - super(); - } - - /** - * Constructs a new {@code DynamicType} instance that contains a given - * {@code Interval} in. - * - * @param in interval to add (could be null) - */ - public DynamicByte(Interval in) { - super(in); - } - - /** - * Constructs a new {@code DynamicType} instance with intervals given by - * {@code List>} in. - * - * @param in intervals to add (could be null) - */ - public DynamicByte(List> in) { - super(in); - } - - /** - * Constructs a deep copy of {@code source}. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - */ - public DynamicByte(DynamicByte source) { - super(source); - } - - /** - * Constructs a deep copy of {@code source} that contains a given - * {@code Interval} in. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in interval to add (could be null) - */ - public DynamicByte(DynamicByte source, Interval in) { - super(source, in); - } - - /** - * Constructs a deep copy of {@code source} that contains a given - * {@code Interval} in. Before add it removes from the newly created - * object all intervals that overlap with a given {@code Interval} out. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in interval to add (could be null) - * @param out interval to remove (could be null) - */ - public DynamicByte(DynamicByte source, Interval in, Interval out) { - super(source, in, out); - } - - /** - * Constructs a deep copy of {@code source} with additional intervals - * given by {@code List>} in. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in intervals to add (could be null) - */ - public DynamicByte(DynamicByte source, List> in) { - super(source, in); - } - - /** - * Constructs a deep copy of {@code source} with additional intervals - * given by {@code List>} in. Before add it removes from the - * newly created object all intervals that overlap with intervals given by - * {@code List>} out. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in intervals to add (could be null) - * @param out intervals to remove (could be null) - */ - public DynamicByte(DynamicByte source, List> in, List> out) { - super(source, in, out); - } - - @Override - public Byte getValue(Interval interval, Estimator estimator) { - List values = getValues(interval); - if (values.isEmpty()) - return null; - - switch (estimator) { - case AVERAGE: - if (values.size() == 1) - return values.get(0); - BigInteger total = BigInteger.valueOf(0); - for (int i = 0; i < values.size(); ++i) - total = total.add(BigInteger.valueOf(values.get(i))); - return total.divide(BigInteger.valueOf(values.size())).byteValue(); - case MEDIAN: - if (values.size() % 2 == 1) - return values.get(values.size() / 2); - BigInteger bi = BigInteger.valueOf(values.get( - values.size() / 2 - 1)); - bi = bi.add(BigInteger.valueOf(values.get(values.size() / 2))); - return bi.divide(BigInteger.valueOf(2)).byteValue(); - case MODE: - Hashtable map = - new Hashtable(); - for (int i = 0; i < values.size(); ++i) { - int prev = 0; - if (map.containsKey(values.get(i).hashCode())) - prev = map.get(values.get(i).hashCode()); - map.put(values.get(i).hashCode(), prev + 1); - } - int max = map.get(values.get(0).hashCode()); - int index = 0; - for (int i = 1; i < values.size(); ++i) - if (max < map.get(values.get(i).hashCode())) { - max = map.get(values.get(i).hashCode()); - index = i; - } - return values.get(index); - case SUM: - BigInteger sum = BigInteger.valueOf(0); - for (int i = 0; i < values.size(); ++i) - sum = sum.add(BigInteger.valueOf(values.get(i))); - return sum.byteValue(); - case MIN: - BigInteger minimum = BigInteger.valueOf(values.get(0)); - for (int i = 1; i < values.size(); ++i) - if (minimum.compareTo(BigInteger.valueOf( - values.get(i))) > 0) - minimum = BigInteger.valueOf(values.get(i)); - return minimum.byteValue(); - case MAX: - BigInteger maximum = BigInteger.valueOf(values.get(0)); - for (int i = 1; i < values.size(); ++i) - if (maximum.compareTo(BigInteger.valueOf( - values.get(i))) < 0) - maximum = BigInteger.valueOf(values.get(i)); - return maximum.byteValue(); - case FIRST: - return values.get(0); - case LAST: - return values.get(values.size() - 1); - default: - throw new IllegalArgumentException("Unknown estimator."); - } - } - - @Override - public Class getUnderlyingType() { - return Byte.class; - } -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicCharacter.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicCharacter.java deleted file mode 100644 index 0ce08026a0..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicCharacter.java +++ /dev/null @@ -1,205 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Cezary Bartosiak -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.type; - -import java.util.Hashtable; -import java.util.List; -import org.gephi.data.attributes.api.Estimator; - -/** - * Represents {@link Character} type which can have got different values in - * different time intervals. - * - * @author Cezary Bartosiak - */ -public final class DynamicCharacter extends DynamicType { - /** - * Constructs a new {@code DynamicType} instance with no intervals. - */ - public DynamicCharacter() { - super(); - } - - /** - * Constructs a new {@code DynamicType} instance that contains a given - * {@code Interval} in. - * - * @param in interval to add (could be null) - */ - public DynamicCharacter(Interval in) { - super(in); - } - - /** - * Constructs a new {@code DynamicType} instance with intervals given by - * {@code List>} in. - * - * @param in intervals to add (could be null) - */ - public DynamicCharacter(List> in) { - super(in); - } - - /** - * Constructs a deep copy of {@code source}. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - */ - public DynamicCharacter(DynamicCharacter source) { - super(source); - } - - /** - * Constructs a deep copy of {@code source} that contains a given - * {@code Interval} in. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in interval to add (could be null) - */ - public DynamicCharacter(DynamicCharacter source, Interval in) { - super(source, in); - } - - /** - * Constructs a deep copy of {@code source} that contains a given - * {@code Interval} in. Before add it removes from the newly created - * object all intervals that overlap with a given {@code Interval} out. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in interval to add (could be null) - * @param out interval to remove (could be null) - */ - public DynamicCharacter(DynamicCharacter source, Interval in, Interval out) { - super(source, in, out); - } - - /** - * Constructs a deep copy of {@code source} with additional intervals - * given by {@code List>} in. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in intervals to add (could be null) - */ - public DynamicCharacter(DynamicCharacter source, - List> in) { - super(source, in); - } - - /** - * Constructs a deep copy of {@code source} with additional intervals - * given by {@code List>} in. Before add it removes from the - * newly created object all intervals that overlap with intervals given by - * {@code List>} out. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in intervals to add (could be null) - * @param out intervals to remove (could be null) - */ - public DynamicCharacter(DynamicCharacter source, List> in, List> out) { - super(source, in, out); - } - - @Override - public Character getValue(Interval interval, Estimator estimator) { - List values = getValues(interval); - if (values.isEmpty()) - return null; - - switch (estimator) { - case AVERAGE: - throw new UnsupportedOperationException( - "Not supported estimator"); - case MEDIAN: - if (values.size() % 2 == 1) - return values.get(values.size() / 2); - return values.get(values.size() / 2 - 1); - case MODE: - Hashtable map = - new Hashtable(); - for (int i = 0; i < values.size(); ++i) { - int prev = 0; - if (map.containsKey(values.get(i).hashCode())) - prev = map.get(values.get(i).hashCode()); - map.put(values.get(i).hashCode(), prev + 1); - } - int max = map.get(values.get(0).hashCode()); - int index = 0; - for (int i = 1; i < values.size(); ++i) - if (max < map.get(values.get(i).hashCode())) { - max = map.get(values.get(i).hashCode()); - index = i; - } - return values.get(index); - case SUM: - throw new UnsupportedOperationException( - "Not supported estimator"); - case MIN: - Character minimum = values.get(0); - for (int i = 1; i < values.size(); ++i) - if (minimum.compareTo(values.get(i)) > 0) - minimum = values.get(i); - return minimum; - case MAX: - Character maximum = values.get(0); - for (int i = 1; i < values.size(); ++i) - if (maximum.compareTo(values.get(i)) < 0) - maximum = values.get(i); - return maximum; - case FIRST: - return values.get(0); - case LAST: - return values.get(values.size() - 1); - default: - throw new IllegalArgumentException("Unknown estimator."); - } - } - - @Override - public Class getUnderlyingType() { - return Character.class; - } -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicDouble.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicDouble.java deleted file mode 100644 index 70f5c71dfc..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicDouble.java +++ /dev/null @@ -1,215 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Cezary Bartosiak -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.type; - -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.util.Hashtable; -import java.util.List; -import org.gephi.data.attributes.api.Estimator; - -/** - * Represents {@link Double} type which can have got different values in - * different time intervals. - * - * @author Cezary Bartosiak - */ -public final class DynamicDouble extends DynamicType { - /** - * Constructs a new {@code DynamicType} instance with no intervals. - */ - public DynamicDouble() { - super(); - } - - /** - * Constructs a new {@code DynamicType} instance that contains a given - * {@code Interval} in. - * - * @param in interval to add (could be null) - */ - public DynamicDouble(Interval in) { - super(in); - } - - /** - * Constructs a new {@code DynamicType} instance with intervals given by - * {@code List>} in. - * - * @param in intervals to add (could be null) - */ - public DynamicDouble(List> in) { - super(in); - } - - /** - * Constructs a deep copy of {@code source}. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - */ - public DynamicDouble(DynamicDouble source) { - super(source); - } - - /** - * Constructs a deep copy of {@code source} that contains a given - * {@code Interval} in. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in interval to add (could be null) - */ - public DynamicDouble(DynamicDouble source, Interval in) { - super(source, in); - } - - /** - * Constructs a deep copy of {@code source} that contains a given - * {@code Interval} in. Before add it removes from the newly created - * object all intervals that overlap with a given {@code Interval} out. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in interval to add (could be null) - * @param out interval to remove (could be null) - */ - public DynamicDouble(DynamicDouble source, Interval in, Interval out) { - super(source, in, out); - } - - /** - * Constructs a deep copy of {@code source} with additional intervals - * given by {@code List>} in. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in intervals to add (could be null) - */ - public DynamicDouble(DynamicDouble source, List> in) { - super(source, in); - } - - /** - * Constructs a deep copy of {@code source} with additional intervals - * given by {@code List>} in. Before add it removes from the - * newly created object all intervals that overlap with intervals given by - * {@code List>} out. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in intervals to add (could be null) - * @param out intervals to remove (could be null) - */ - public DynamicDouble(DynamicDouble source, List> in, List> out) { - super(source, in, out); - } - - @Override - public Double getValue(Interval interval, Estimator estimator) { - List values = getValues(interval); - if (values.isEmpty()) - return null; - - switch (estimator) { - case AVERAGE: - if (values.size() == 1) - return values.get(0); - BigDecimal total = new BigDecimal(0); - for (int i = 0; i < values.size(); ++i) - total = total.add(BigDecimal.valueOf(values.get(i))); - return total.divide(BigDecimal.valueOf((long)values.size()), 10, RoundingMode.HALF_EVEN).doubleValue(); - case MEDIAN: - if (values.size() % 2 == 1) - return values.get(values.size() / 2); - BigDecimal bd = new BigDecimal( - values.get(values.size() / 2 - 1)); - bd = bd.add(new BigDecimal(values.get(values.size() / 2))); - return bd.divide(new BigDecimal(2)).doubleValue(); - case MODE: - Hashtable map = - new Hashtable(); - for (int i = 0; i < values.size(); ++i) { - int prev = 0; - if (map.containsKey(values.get(i).hashCode())) - prev = map.get(values.get(i).hashCode()); - map.put(values.get(i).hashCode(), prev + 1); - } - int max = map.get(values.get(0).hashCode()); - int index = 0; - for (int i = 1; i < values.size(); ++i) - if (max < map.get(values.get(i).hashCode())) { - max = map.get(values.get(i).hashCode()); - index = i; - } - return values.get(index); - case SUM: - BigDecimal sum = new BigDecimal(0); - for (int i = 0; i < values.size(); ++i) - sum = sum.add(new BigDecimal(values.get(i))); - return sum.doubleValue(); - case MIN: - BigDecimal minimum = new BigDecimal(values.get(0)); - for (int i = 1; i < values.size(); ++i) - if (minimum.compareTo(new BigDecimal(values.get(i))) > 0) - minimum = new BigDecimal(values.get(i)); - return minimum.doubleValue(); - case MAX: - BigDecimal maximum = new BigDecimal(values.get(0)); - for (int i = 1; i < values.size(); ++i) - if (maximum.compareTo(new BigDecimal(values.get(i))) < 0) - maximum = new BigDecimal(values.get(i)); - return maximum.doubleValue(); - case FIRST: - return values.get(0); - case LAST: - return values.get(values.size() - 1); - default: - throw new IllegalArgumentException("Unknown estimator."); - } - } - - @Override - public Class getUnderlyingType() { - return Double.class; - } -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicFloat.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicFloat.java deleted file mode 100644 index 290d70f71e..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicFloat.java +++ /dev/null @@ -1,215 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Cezary Bartosiak -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.type; - -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.util.Hashtable; -import java.util.List; -import org.gephi.data.attributes.api.Estimator; - -/** - * Represents {@link Float} type which can have got different values in - * different time intervals. - * - * @author Cezary Bartosiak - */ -public final class DynamicFloat extends DynamicType { - /** - * Constructs a new {@code DynamicType} instance with no intervals. - */ - public DynamicFloat() { - super(); - } - - /** - * Constructs a new {@code DynamicType} instance that contains a given - * {@code Interval} in. - * - * @param in interval to add (could be null) - */ - public DynamicFloat(Interval in) { - super(in); - } - - /** - * Constructs a new {@code DynamicType} instance with intervals given by - * {@code List>} in. - * - * @param in intervals to add (could be null) - */ - public DynamicFloat(List> in) { - super(in); - } - - /** - * Constructs a deep copy of {@code source}. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - */ - public DynamicFloat(DynamicFloat source) { - super(source); - } - - /** - * Constructs a deep copy of {@code source} that contains a given - * {@code Interval} in. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in interval to add (could be null) - */ - public DynamicFloat(DynamicFloat source, Interval in) { - super(source, in); - } - - /** - * Constructs a deep copy of {@code source} that contains a given - * {@code Interval} in. Before add it removes from the newly created - * object all intervals that overlap with a given {@code Interval} out. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in interval to add (could be null) - * @param out interval to remove (could be null) - */ - public DynamicFloat(DynamicFloat source, Interval in, Interval out) { - super(source, in, out); - } - - /** - * Constructs a deep copy of {@code source} with additional intervals - * given by {@code List>} in. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in intervals to add (could be null) - */ - public DynamicFloat(DynamicFloat source, List> in) { - super(source, in); - } - - /** - * Constructs a deep copy of {@code source} with additional intervals - * given by {@code List>} in. Before add it removes from the - * newly created object all intervals that overlap with intervals given by - * {@code List>} out. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in intervals to add (could be null) - * @param out intervals to remove (could be null) - */ - public DynamicFloat(DynamicFloat source, List> in, List> out) { - super(source, in, out); - } - - @Override - public Float getValue(Interval interval, Estimator estimator) { - List values = getValues(interval); - if (values.isEmpty()) - return null; - - switch (estimator) { - case AVERAGE: - if (values.size() == 1) - return values.get(0); - BigDecimal total = new BigDecimal(0); - for (int i = 0; i < values.size(); ++i) - total = total.add(BigDecimal.valueOf(values.get(i).doubleValue())); - return total.divide(BigDecimal.valueOf((long)values.size()), 10, RoundingMode.HALF_EVEN).floatValue(); - case MEDIAN: - if (values.size() % 2 == 1) - return values.get(values.size() / 2); - BigDecimal bd = new BigDecimal( - values.get(values.size() / 2 - 1)); - bd = bd.add(new BigDecimal(values.get(values.size() / 2))); - return bd.divide(new BigDecimal(2)).floatValue(); - case MODE: - Hashtable map = - new Hashtable(); - for (int i = 0; i < values.size(); ++i) { - int prev = 0; - if (map.containsKey(values.get(i).hashCode())) - prev = map.get(values.get(i).hashCode()); - map.put(values.get(i).hashCode(), prev + 1); - } - int max = map.get(values.get(0).hashCode()); - int index = 0; - for (int i = 1; i < values.size(); ++i) - if (max < map.get(values.get(i).hashCode())) { - max = map.get(values.get(i).hashCode()); - index = i; - } - return values.get(index); - case SUM: - BigDecimal sum = new BigDecimal(0); - for (int i = 0; i < values.size(); ++i) - sum = sum.add(new BigDecimal(values.get(i))); - return sum.floatValue(); - case MIN: - BigDecimal minimum = new BigDecimal(values.get(0)); - for (int i = 1; i < values.size(); ++i) - if (minimum.compareTo(new BigDecimal(values.get(i))) > 0) - minimum = new BigDecimal(values.get(i)); - return minimum.floatValue(); - case MAX: - BigDecimal maximum = new BigDecimal(values.get(0)); - for (int i = 1; i < values.size(); ++i) - if (maximum.compareTo(new BigDecimal(values.get(i))) < 0) - maximum = new BigDecimal(values.get(i)); - return maximum.floatValue(); - case FIRST: - return values.get(0); - case LAST: - return values.get(values.size() - 1); - default: - throw new IllegalArgumentException("Unknown estimator."); - } - } - - @Override - public Class getUnderlyingType() { - return Float.class; - } -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicInteger.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicInteger.java deleted file mode 100644 index 6f55abf0d8..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicInteger.java +++ /dev/null @@ -1,216 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Cezary Bartosiak -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.type; - -import java.math.BigInteger; -import java.util.Hashtable; -import java.util.List; -import org.gephi.data.attributes.api.Estimator; - -/** - * Represents {@link Integer} type which can have got different values in - * different time intervals. - * - * @author Cezary Bartosiak - */ -public final class DynamicInteger extends DynamicType { - /** - * Constructs a new {@code DynamicType} instance with no intervals. - */ - public DynamicInteger() { - super(); - } - - /** - * Constructs a new {@code DynamicType} instance that contains a given - * {@code Interval} in. - * - * @param in interval to add (could be null) - */ - public DynamicInteger(Interval in) { - super(in); - } - - /** - * Constructs a new {@code DynamicType} instance with intervals given by - * {@code List>} in. - * - * @param in intervals to add (could be null) - */ - public DynamicInteger(List> in) { - super(in); - } - - /** - * Constructs a deep copy of {@code source}. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - */ - public DynamicInteger(DynamicInteger source) { - super(source); - } - - /** - * Constructs a deep copy of {@code source} that contains a given - * {@code Interval} in. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in interval to add (could be null) - */ - public DynamicInteger(DynamicInteger source, Interval in) { - super(source, in); - } - - /** - * Constructs a deep copy of {@code source} that contains a given - * {@code Interval} in. Before add it removes from the newly created - * object all intervals that overlap with a given {@code Interval} out. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in interval to add (could be null) - * @param out interval to remove (could be null) - */ - public DynamicInteger(DynamicInteger source, Interval in, Interval out) { - super(source, in, out); - } - - /** - * Constructs a deep copy of {@code source} with additional intervals - * given by {@code List>} in. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in intervals to add (could be null) - */ - public DynamicInteger(DynamicInteger source, List> in) { - super(source, in); - } - - /** - * Constructs a deep copy of {@code source} with additional intervals - * given by {@code List>} in. Before add it removes from the - * newly created object all intervals that overlap with intervals given by - * {@code List>} out. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in intervals to add (could be null) - * @param out intervals to remove (could be null) - */ - public DynamicInteger(DynamicInteger source, List> in, List> out) { - super(source, in, out); - } - - @Override - public Integer getValue(Interval interval, Estimator estimator) { - List values = getValues(interval); - if (values.isEmpty()) - return null; - - switch (estimator) { - case AVERAGE: - if (values.size() == 1) - return values.get(0); - BigInteger total = BigInteger.valueOf(0); - for (int i = 0; i < values.size(); ++i) - total = total.add(BigInteger.valueOf(values.get(i))); - return total.divide(BigInteger.valueOf(values.size())).intValue(); - case MEDIAN: - if (values.size() % 2 == 1) - return values.get(values.size() / 2); - BigInteger bi = BigInteger.valueOf(values.get( - values.size() / 2 - 1)); - bi = bi.add(BigInteger.valueOf(values.get(values.size() / 2))); - return bi.divide(BigInteger.valueOf(2)).intValue(); - case MODE: - Hashtable map = - new Hashtable(); - for (int i = 0; i < values.size(); ++i) { - int prev = 0; - if (map.containsKey(values.get(i).hashCode())) - prev = map.get(values.get(i).hashCode()); - map.put(values.get(i).hashCode(), prev + 1); - } - int max = map.get(values.get(0).hashCode()); - int index = 0; - for (int i = 1; i < values.size(); ++i) - if (max < map.get(values.get(i).hashCode())) { - max = map.get(values.get(i).hashCode()); - index = i; - } - return values.get(index); - case SUM: - BigInteger sum = BigInteger.valueOf(0); - for (int i = 0; i < values.size(); ++i) - sum = sum.add(BigInteger.valueOf(values.get(i))); - return sum.intValue(); - case MIN: - BigInteger minimum = BigInteger.valueOf(values.get(0)); - for (int i = 1; i < values.size(); ++i) - if (minimum.compareTo(BigInteger.valueOf( - values.get(i))) > 0) - minimum = BigInteger.valueOf(values.get(i)); - return minimum.intValue(); - case MAX: - BigInteger maximum = BigInteger.valueOf(values.get(0)); - for (int i = 1; i < values.size(); ++i) - if (maximum.compareTo(BigInteger.valueOf( - values.get(i))) < 0) - maximum = BigInteger.valueOf(values.get(i)); - return maximum.intValue(); - case FIRST: - return values.get(0); - case LAST: - return values.get(values.size() - 1); - default: - throw new IllegalArgumentException("Unknown estimator."); - } - } - - @Override - public Class getUnderlyingType() { - return Integer.class; - } -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicLong.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicLong.java deleted file mode 100644 index f689695093..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicLong.java +++ /dev/null @@ -1,216 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Cezary Bartosiak -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.type; - -import java.math.BigInteger; -import java.util.Hashtable; -import java.util.List; -import org.gephi.data.attributes.api.Estimator; - -/** - * Represents {@link Long} type which can have got different values in - * different time intervals. - * - * @author Cezary Bartosiak - */ -public final class DynamicLong extends DynamicType { - /** - * Constructs a new {@code DynamicType} instance with no intervals. - */ - public DynamicLong() { - super(); - } - - /** - * Constructs a new {@code DynamicType} instance that contains a given - * {@code Interval} in. - * - * @param in interval to add (could be null) - */ - public DynamicLong(Interval in) { - super(in); - } - - /** - * Constructs a new {@code DynamicType} instance with intervals given by - * {@code List>} in. - * - * @param in intervals to add (could be null) - */ - public DynamicLong(List> in) { - super(in); - } - - /** - * Constructs a deep copy of {@code source}. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - */ - public DynamicLong(DynamicLong source) { - super(source); - } - - /** - * Constructs a deep copy of {@code source} that contains a given - * {@code Interval} in. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in interval to add (could be null) - */ - public DynamicLong(DynamicLong source, Interval in) { - super(source, in); - } - - /** - * Constructs a deep copy of {@code source} that contains a given - * {@code Interval} in. Before add it removes from the newly created - * object all intervals that overlap with a given {@code Interval} out. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in interval to add (could be null) - * @param out interval to remove (could be null) - */ - public DynamicLong(DynamicLong source, Interval in, Interval out) { - super(source, in, out); - } - - /** - * Constructs a deep copy of {@code source} with additional intervals - * given by {@code List>} in. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in intervals to add (could be null) - */ - public DynamicLong(DynamicLong source, List> in) { - super(source, in); - } - - /** - * Constructs a deep copy of {@code source} with additional intervals - * given by {@code List>} in. Before add it removes from the - * newly created object all intervals that overlap with intervals given by - * {@code List>} out. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in intervals to add (could be null) - * @param out intervals to remove (could be null) - */ - public DynamicLong(DynamicLong source, List> in, List> out) { - super(source, in, out); - } - - @Override - public Long getValue(Interval interval, Estimator estimator) { - List values = getValues(interval); - if (values.isEmpty()) - return null; - - switch (estimator) { - case AVERAGE: - if (values.size() == 1) - return values.get(0); - BigInteger total = BigInteger.valueOf(0); - for (int i = 0; i < values.size(); ++i) - total = total.add(BigInteger.valueOf(values.get(i))); - return total.divide(BigInteger.valueOf(values.size())).longValue(); - case MEDIAN: - if (values.size() % 2 == 1) - return values.get(values.size() / 2); - BigInteger bi = BigInteger.valueOf(values.get( - values.size() / 2 - 1)); - bi = bi.add(BigInteger.valueOf(values.get(values.size() / 2))); - return bi.divide(BigInteger.valueOf(2)).longValue(); - case MODE: - Hashtable map = - new Hashtable(); - for (int i = 0; i < values.size(); ++i) { - int prev = 0; - if (map.containsKey(values.get(i).hashCode())) - prev = map.get(values.get(i).hashCode()); - map.put(values.get(i).hashCode(), prev + 1); - } - int max = map.get(values.get(0).hashCode()); - int index = 0; - for (int i = 1; i < values.size(); ++i) - if (max < map.get(values.get(i).hashCode())) { - max = map.get(values.get(i).hashCode()); - index = i; - } - return values.get(index); - case SUM: - BigInteger sum = BigInteger.valueOf(0); - for (int i = 0; i < values.size(); ++i) - sum = sum.add(BigInteger.valueOf(values.get(i))); - return sum.longValue(); - case MIN: - BigInteger minimum = BigInteger.valueOf(values.get(0)); - for (int i = 1; i < values.size(); ++i) - if (minimum.compareTo(BigInteger.valueOf( - values.get(i))) > 0) - minimum = BigInteger.valueOf(values.get(i)); - return minimum.longValue(); - case MAX: - BigInteger maximum = BigInteger.valueOf(values.get(0)); - for (int i = 1; i < values.size(); ++i) - if (maximum.compareTo(BigInteger.valueOf( - values.get(i))) < 0) - maximum = BigInteger.valueOf(values.get(i)); - return maximum.longValue(); - case FIRST: - return values.get(0); - case LAST: - return values.get(values.size() - 1); - default: - throw new IllegalArgumentException("Unknown estimator."); - } - } - - @Override - public Class getUnderlyingType() { - return Long.class; - } -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicParser.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicParser.java deleted file mode 100644 index cdea72065d..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicParser.java +++ /dev/null @@ -1,345 +0,0 @@ -/* - Copyright 2008-2012 Gephi - Authors : Martin Ε kurla , Mathieu Bastian , Eduardo Ramos - Website : http://www.gephi.org - - This file is part of Gephi. - - DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - - Copyright 2011 Gephi Consortium. All rights reserved. - - The contents of this file are subject to the terms of either the GNU - General Public License Version 3 only ("GPL") or the Common - Development and Distribution License("CDDL") (collectively, the - "License"). You may not use this file except in compliance with the - License. You can obtain a copy of the License at - http://gephi.org/about/legal/license-notice/ - or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the - specific language governing permissions and limitations under the - License. When distributing the software, include this License Header - Notice in each file and include the License files at - /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the - License Header, with the fields enclosed by brackets [] replaced by - your own identifying information: - "Portions Copyrighted [year] [name of copyright owner]" - - If you wish your version of this file to be governed by only the CDDL - or only the GPL Version 3, indicate your decision by adding - "[Contributor] elects to include this software in this distribution - under the [CDDL or GPL Version 3] license." If you do not indicate a - single choice of license, a recipient has the option to distribute - your version of this file under either the CDDL, the GPL Version 3 or - to extend the choice of license to its licensees as provided above. - However, if you add GPL Version 3 code and therefore, elected the GPL - Version 3 license, then the option applies only if the new code is - made subject to such option by the copyright holder. - - Contributor(s): - - Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.data.attributes.type; - -import java.io.IOException; -import java.io.StringReader; -import java.math.BigDecimal; -import java.math.BigInteger; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import javax.xml.datatype.DatatypeConfigurationException; -import javax.xml.datatype.DatatypeFactory; -import org.gephi.data.attributes.api.AttributeType; - -/** - *

Class for parsing dynamic types with several intervals.

- * - *

- * Examples of valid dynamic intervals are: - *

    - *
  • <(1, 2, v1); [3, 5, v2]>
  • - *
  • [1,2]
  • - *
  • [1,2] (5,6)
  • - *
  • [1,2]; [1.15,2.21, 'literal value " \' ,[]()']
  • - *
  • <[1,2]; [1.15,2.21, "literal value \" ' ,[]()"]>
  • - *
- *

- * - *

The most correct examples are those that include < > and proper commas and semicolons for separation, - * but the parser will be permissive when possible.

- *

Gephi will always format intervals in the correct way.

- * - *

See https://gephi.org/users/supported-graph-formats/spreadsheet for more examples

- * @author Eduardo Ramos - */ -public final class DynamicParser { - - private static final char LOPEN = '('; - private static final char LCLOSE = '['; - private static final char ROPEN = ')'; - private static final char RCLOSE = ']'; - private static final char COMMA = ','; - - /** - * Parses a dynamic type with one or more intervals - * @param type Dynamic type for the result intervals - * @param input Input string to parse - * @return List of parsed intervals, or null if the input equals '' - * @throws IOException Thrown if error while reading input - * @throws ParseException Thronw if the intervals could not be parsed - */ - public static List parseIntervals(AttributeType type, String input) throws IOException, ParseException, IllegalArgumentException { - if (!type.isDynamicType()) { - throw new IllegalArgumentException(String.format("Type %s is not dynamic", type.getTypeString())); - } - - if (input.equalsIgnoreCase("")) { - return null; - } - - List intervals = new ArrayList(); - - StringReader reader = new StringReader(input + ' ');//Add 1 space so reader.skip function always works when necessary (end of string not reached). - - int r; - char c; - while ((r = reader.read()) != -1) { - c = (char) r; - switch (c) { - case LCLOSE: - case LOPEN: - intervals.add(parseInterval(type, reader, c == LOPEN)); - break; - default: - //Ignore other chars outside of intervals - } - } - - if(intervals.isEmpty()){ - throw new IllegalArgumentException("No dynamic intervals could be parsed"); - } - - return intervals; - } - - private static Interval parseInterval(AttributeType type, StringReader reader, boolean lopen) throws IOException, ParseException { - ArrayList values = new ArrayList(); - boolean ropen = true; - - int r; - char c; - while ((r = reader.read()) != -1) { - c = (char) r; - switch (c) { - case RCLOSE: - ropen = false; - case ROPEN: - return buildInterval(type, values, lopen, ropen); - case ' ': - case '\t': - case '\r': - case '\n': - case COMMA: - //Ignore leading whitespace or similar until a value or literal starts: - break; - case '"': - case '\'': - values.add(parseLiteral(reader, c)); - break; - default: - reader.skip(-1);//Go backwards 1 position, for reading start of value - values.add(parseValue(reader)); - } - } - - - return buildInterval(type, values, lopen, ropen); - } - - /** - * Parse literal value until detecting the end of it (quote can be ' or ") - * @param reader Input reader - * @param quote Quote mode that started this literal (' or ") - * @return Parsed value - * @throws IOException - */ - private static String parseLiteral(StringReader reader, char quote) throws IOException { - StringBuilder sb = new StringBuilder(); - boolean escapeEnabled = false; - - int r; - char c; - while ((r = reader.read()) != -1) { - c = (char) r; - if (c == quote) { - if (escapeEnabled) { - sb.append(quote); - escapeEnabled = false; - } else { - return sb.toString(); - } - } else { - switch (c) { - case '\\': - if (escapeEnabled) { - sb.append('\\'); - - escapeEnabled = false; - } else { - escapeEnabled = true; - } - break; - default: - if (escapeEnabled) { - escapeEnabled = false; - } - sb.append(c); - } - } - } - - return sb.toString(); - } - - /** - * Parses a value until end is detected either by a comma or an interval closing character. - * @param reader Input reader - * @return Parsed value - * @throws IOException - */ - private static String parseValue(StringReader reader) throws IOException { - StringBuilder sb = new StringBuilder(); - int r; - char c; - while ((r = reader.read()) != -1) { - c = (char) r; - switch (c) { - case ROPEN: - case RCLOSE: - reader.skip(-1);//Go backwards 1 position, for detecting end of interval - case COMMA: - return sb.toString().trim(); - default: - sb.append(c); - } - } - - return sb.toString().trim(); - } - - private static Interval buildInterval(AttributeType type, ArrayList values, boolean lopen, boolean ropen) throws ParseException { - double low, high; - Object value; - if (values.size() == 2) { - //Time interval or null value: - value = null; - } else if (values.size() == 3) { - //Interval with value: - switch (type) { - case DYNAMIC_BYTE: - value = new Byte(AttributeType.removeDecimalDigitsFromString(values.get(2))); - break; - case DYNAMIC_SHORT: - value = new Short(AttributeType.removeDecimalDigitsFromString(values.get(2))); - break; - case DYNAMIC_INT: - value = new Integer(AttributeType.removeDecimalDigitsFromString(values.get(2))); - break; - case DYNAMIC_LONG: - value = new Long(AttributeType.removeDecimalDigitsFromString(values.get(2))); - break; - case DYNAMIC_FLOAT: - value = new Float(infinityIgnoreCase(values.get(2))); - break; - case DYNAMIC_DOUBLE: - value = new Double(infinityIgnoreCase(values.get(2))); - break; - case DYNAMIC_BOOLEAN: - value = Boolean.valueOf(values.get(2)); - break; - case DYNAMIC_CHAR: - value = new Character(values.get(2).charAt(0)); - break; - case DYNAMIC_STRING: - value = values.get(2); - break; - case DYNAMIC_BIGINTEGER: - value = new BigInteger(AttributeType.removeDecimalDigitsFromString(values.get(2))); - break; - case DYNAMIC_BIGDECIMAL: - value = new BigDecimal(values.get(2)); - break; - case TIME_INTERVAL: - default: - value = null; - break; - } - } else { - //Unknown: - throw new IllegalArgumentException("Unrecognized type of interval = " + values); - } - - low = parseTime(values.get(0)); - high = parseTime(values.get(1)); - - return new Interval(low, high, lopen, ropen, value); - } - - //For date parsing: - private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - private static DatatypeFactory dateFactory; - - static { - try { - dateFactory = DatatypeFactory.newInstance(); - } catch (DatatypeConfigurationException ex) { - } - } - - //Throws exception when a date can't be parsed - public static double getDoubleFromXMLDateString(String str) throws ParseException { - try { - return dateFactory.newXMLGregorianCalendar(str.length() > 23 ? str.substring(0, 23) : str). - toGregorianCalendar().getTimeInMillis(); - } catch (IllegalArgumentException ex) { - //Try simple format - Date date = dateFormat.parse(str); - return date.getTime(); - } - } - - public static double parseTime(String time) throws ParseException { - double value; - try { - //Try first to parse as a single double: - value = Double.parseDouble(infinityIgnoreCase(time)); - if(Double.isNaN(value)){ - throw new IllegalArgumentException("NaN is not allowed as an interval bound"); - } - } catch (Exception ex) { - //Try to parse as date instead - value = getDoubleFromXMLDateString(time); - } - - return value; - } - - /** - * Method for allowing inputs such as "infinity" when parsing decimal numbers - * @param value Input String - * @return Input String with fixed "Infinity" syntax if necessary. - */ - private static String infinityIgnoreCase(String value){ - if(value.equalsIgnoreCase("Infinity")){ - return "Infinity"; - } - if(value.equalsIgnoreCase("-Infinity")){ - return "-Infinity"; - } - - return value; - } -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicShort.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicShort.java deleted file mode 100644 index 60b93b38c7..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicShort.java +++ /dev/null @@ -1,216 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Cezary Bartosiak -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.type; - -import java.math.BigInteger; -import java.util.Hashtable; -import java.util.List; -import org.gephi.data.attributes.api.Estimator; - -/** - * Represents {@link Short} type which can have got different values in - * different time intervals. - * - * @author Cezary Bartosiak - */ -public final class DynamicShort extends DynamicType { - /** - * Constructs a new {@code DynamicType} instance with no intervals. - */ - public DynamicShort() { - super(); - } - - /** - * Constructs a new {@code DynamicType} instance that contains a given - * {@code Interval} in. - * - * @param in interval to add (could be null) - */ - public DynamicShort(Interval in) { - super(in); - } - - /** - * Constructs a new {@code DynamicType} instance with intervals given by - * {@code List>} in. - * - * @param in intervals to add (could be null) - */ - public DynamicShort(List> in) { - super(in); - } - - /** - * Constructs a deep copy of {@code source}. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - */ - public DynamicShort(DynamicShort source) { - super(source); - } - - /** - * Constructs a deep copy of {@code source} that contains a given - * {@code Interval} in. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in interval to add (could be null) - */ - public DynamicShort(DynamicShort source, Interval in) { - super(source, in); - } - - /** - * Constructs a deep copy of {@code source} that contains a given - * {@code Interval} in. Before add it removes from the newly created - * object all intervals that overlap with a given {@code Interval} out. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in interval to add (could be null) - * @param out interval to remove (could be null) - */ - public DynamicShort(DynamicShort source, Interval in, Interval out) { - super(source, in, out); - } - - /** - * Constructs a deep copy of {@code source} with additional intervals - * given by {@code List>} in. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in intervals to add (could be null) - */ - public DynamicShort(DynamicShort source, List> in) { - super(source, in); - } - - /** - * Constructs a deep copy of {@code source} with additional intervals - * given by {@code List>} in. Before add it removes from the - * newly created object all intervals that overlap with intervals given by - * {@code List>} out. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in intervals to add (could be null) - * @param out intervals to remove (could be null) - */ - public DynamicShort(DynamicShort source, List> in, List> out) { - super(source, in, out); - } - - @Override - public Short getValue(Interval interval, Estimator estimator) { - List values = getValues(interval); - if (values.isEmpty()) - return null; - - switch (estimator) { - case AVERAGE: - if (values.size() == 1) - return values.get(0); - BigInteger total = BigInteger.valueOf(0); - for (int i = 0; i < values.size(); ++i) - total = total.add(BigInteger.valueOf(values.get(i))); - return total.divide(BigInteger.valueOf(values.size())).shortValue(); - case MEDIAN: - if (values.size() % 2 == 1) - return values.get(values.size() / 2); - BigInteger bi = BigInteger.valueOf(values.get( - values.size() / 2 - 1)); - bi = bi.add(BigInteger.valueOf(values.get(values.size() / 2))); - return bi.divide(BigInteger.valueOf(2)).shortValue(); - case MODE: - Hashtable map = - new Hashtable(); - for (int i = 0; i < values.size(); ++i) { - int prev = 0; - if (map.containsKey(values.get(i).hashCode())) - prev = map.get(values.get(i).hashCode()); - map.put(values.get(i).hashCode(), prev + 1); - } - int max = map.get(values.get(0).hashCode()); - int index = 0; - for (int i = 1; i < values.size(); ++i) - if (max < map.get(values.get(i).hashCode())) { - max = map.get(values.get(i).hashCode()); - index = i; - } - return values.get(index); - case SUM: - BigInteger sum = BigInteger.valueOf(0); - for (int i = 0; i < values.size(); ++i) - sum = sum.add(BigInteger.valueOf(values.get(i))); - return sum.shortValue(); - case MIN: - BigInteger minimum = BigInteger.valueOf(values.get(0)); - for (int i = 1; i < values.size(); ++i) - if (minimum.compareTo(BigInteger.valueOf( - values.get(i))) > 0) - minimum = BigInteger.valueOf(values.get(i)); - return minimum.shortValue(); - case MAX: - BigInteger maximum = BigInteger.valueOf(values.get(0)); - for (int i = 1; i < values.size(); ++i) - if (maximum.compareTo(BigInteger.valueOf( - values.get(i))) < 0) - maximum = BigInteger.valueOf(values.get(i)); - return maximum.shortValue(); - case FIRST: - return values.get(0); - case LAST: - return values.get(values.size() - 1); - default: - throw new IllegalArgumentException("Unknown estimator."); - } - } - - @Override - public Class getUnderlyingType() { - return Short.class; - } -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicString.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicString.java deleted file mode 100644 index 76b24f9388..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicString.java +++ /dev/null @@ -1,204 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Cezary Bartosiak -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.type; - -import java.util.Hashtable; -import java.util.List; -import org.gephi.data.attributes.api.Estimator; - -/** - * Represents {@link String} type which can have got different values in - * different time intervals. - * - * @author Cezary Bartosiak - */ -public final class DynamicString extends DynamicType { - /** - * Constructs a new {@code DynamicType} instance with no intervals. - */ - public DynamicString() { - super(); - } - - /** - * Constructs a new {@code DynamicType} instance that contains a given - * {@code Interval} in. - * - * @param in interval to add (could be null) - */ - public DynamicString(Interval in) { - super(in); - } - - /** - * Constructs a new {@code DynamicType} instance with intervals given by - * {@code List>} in. - * - * @param in intervals to add (could be null) - */ - public DynamicString(List> in) { - super(in); - } - - /** - * Constructs a deep copy of {@code source}. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - */ - public DynamicString(DynamicString source) { - super(source); - } - - /** - * Constructs a deep copy of {@code source} that contains a given - * {@code Interval} in. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in interval to add (could be null) - */ - public DynamicString(DynamicString source, Interval in) { - super(source, in); - } - - /** - * Constructs a deep copy of {@code source} that contains a given - * {@code Interval} in. Before add it removes from the newly created - * object all intervals that overlap with a given {@code Interval} out. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in interval to add (could be null) - * @param out interval to remove (could be null) - */ - public DynamicString(DynamicString source, Interval in, Interval out) { - super(source, in, out); - } - - /** - * Constructs a deep copy of {@code source} with additional intervals - * given by {@code List>} in. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in intervals to add (could be null) - */ - public DynamicString(DynamicString source, List> in) { - super(source, in); - } - - /** - * Constructs a deep copy of {@code source} with additional intervals - * given by {@code List>} in. Before add it removes from the - * newly created object all intervals that overlap with intervals given by - * {@code List>} out. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in intervals to add (could be null) - * @param out intervals to remove (could be null) - */ - public DynamicString(DynamicString source, List> in, List> out) { - super(source, in, out); - } - - @Override - public String getValue(Interval interval, Estimator estimator) { - List values = getValues(interval); - if (values.isEmpty()) - return null; - - switch (estimator) { - case AVERAGE: - throw new UnsupportedOperationException( - "Not supported estimator"); - case MEDIAN: - if (values.size() % 2 == 1) - return values.get(values.size() / 2); - return values.get(values.size() / 2 - 1); - case MODE: - Hashtable map = - new Hashtable(); - for (int i = 0; i < values.size(); ++i) { - int prev = 0; - if (map.containsKey(values.get(i).hashCode())) - prev = map.get(values.get(i).hashCode()); - map.put(values.get(i).hashCode(), prev + 1); - } - int max = map.get(values.get(0).hashCode()); - int index = 0; - for (int i = 1; i < values.size(); ++i) - if (max < map.get(values.get(i).hashCode())) { - max = map.get(values.get(i).hashCode()); - index = i; - } - return values.get(index); - case SUM: - throw new UnsupportedOperationException( - "Not supported estimator"); - case MIN: - String minimum = values.get(0); - for (int i = 1; i < values.size(); ++i) - if (minimum.compareTo(values.get(i)) > 0) - minimum = values.get(i); - return minimum; - case MAX: - String maximum = values.get(0); - for (int i = 1; i < values.size(); ++i) - if (maximum.compareTo(values.get(i)) < 0) - maximum = values.get(i); - return maximum; - case FIRST: - return values.get(0); - case LAST: - return values.get(values.size() - 1); - default: - throw new IllegalArgumentException("Unknown estimator."); - } - } - - @Override - public Class getUnderlyingType() { - return String.class; - } -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicType.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicType.java deleted file mode 100644 index 42f416d03f..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/DynamicType.java +++ /dev/null @@ -1,499 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Cezary Bartosiak -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.type; - -import java.util.ArrayList; -import java.util.List; -import org.gephi.data.attributes.api.Estimator; - -/** - * A special type which provides methods of getting/setting values of any time - * interval. It is internally implemented using Interval Tree for efficiency. - * - * @author Cezary Bartosiak - * - * @param type of data - */ -public abstract class DynamicType { - protected IntervalTree intervalTree; - - /** - * Constructs a new {@code DynamicType} instance with no intervals. - */ - public DynamicType() { - intervalTree = new IntervalTree(); - } - - /** - * Constructs a new {@code DynamicType} instance that contains a given - * {@code Interval} in. - * - * @param in interval to add (could be null) - */ - public DynamicType(Interval in) { - this(); - if (in != null) - intervalTree.insert(in); - } - - /** - * Constructs a new {@code DynamicType} instance with intervals given by - * {@code List>} in. - * - * @param in intervals to add (could be null) - */ - public DynamicType(List> in) { - this(); - if (in != null) - for (Interval interval : in) - intervalTree.insert(interval); - } - - /** - * Constructs a deep copy of {@code source}. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - */ - public DynamicType(DynamicType source) { - if (source == null) - intervalTree = new IntervalTree(); - else intervalTree = new IntervalTree(source.intervalTree); - } - - /** - * Constructs a deep copy of {@code source} that contains a given - * {@code Interval} in. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in interval to add (could be null) - */ - public DynamicType(DynamicType source, Interval in) { - this(source); - if (in != null) - intervalTree.insert(in); - } - - /** - * Constructs a deep copy of {@code source} that contains a given - * {@code Interval} in. Before add it removes from the newly created - * object all intervals that overlap with a given {@code Interval} out. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in interval to add (could be null) - * @param out interval to remove (could be null) - */ - public DynamicType(DynamicType source, Interval in, Interval out) { - this(source); - if (out != null) - intervalTree.delete(out); - if (in != null) - intervalTree.insert(in); - } - - /** - * Constructs a deep copy of {@code source} with additional intervals - * given by {@code List>} in. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in intervals to add (could be null) - */ - public DynamicType(DynamicType source, List> in) { - this(source); - if (in != null) - for (Interval interval : in) - intervalTree.insert(interval); - } - - /** - * Constructs a deep copy of {@code source} with additional intervals - * given by {@code List>} in. Before add it removes from the - * newly created object all intervals that overlap with intervals given by - * {@code List>} out. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in intervals to add (could be null) - * @param out intervals to remove (could be null) - */ - public DynamicType(DynamicType source, List> in, List> out) { - this(source); - if (out != null) - for (Interval interval : out) - intervalTree.delete(interval); - if (in != null) - for (Interval interval : in) - intervalTree.insert(interval); - } - - /** - * Returns the leftmost point or {@code Double.NEGATIVE_INFINITY} in case - * of no intervals. - * - * @return the leftmost point. - */ - public double getLow() { - return intervalTree.getLow(); - } - - /** - * Returns the rightmost point or {@code Double.POSITIVE_INFINITY} in case - * of no intervals. - * - * @return the rightmost point. - */ - public double getHigh() { - return intervalTree.getHigh(); - } - - /** - * Indicates if the leftmost point is excluded. - * - * @return {@code true} if the leftmost point is excluded, - * {@code false} otherwise. - */ - public boolean isLowExcluded() { - return intervalTree.isLowExcluded(); - } - - /** - * Indicates if the rightmost point is excluded. - * - * @return {@code true} if the rightmost point is excluded, - * {@code false} otherwise. - */ - public boolean isHighExcluded() { - return intervalTree.isHighExcluded(); - } - - /** - * Indicates if a given time interval overlaps with any interval of this instance. - * - * @param interval a given time interval - * - * @return {@code true} a given time interval overlaps with any interval of this - * instance, otherwise {@code false}. - */ - public boolean isInRange(Interval interval) { - return intervalTree.overlapsWith(interval); - } - - /** - * Indicates if [{@code low}, {@code high}] interval overlaps with any interval of this instance. - * - * @param low the left endpoint - * @param high the right endpoint - * - * @return {@code true} a given time interval overlaps with any interval of this - * instance, otherwise {@code false}. - * - * @throws IllegalArgumentException if {@code low} > {@code high}. - */ - public boolean isInRange(double low, double high) { - if (low > high) - throw new IllegalArgumentException( - "The left endpoint of the interval must be less than " + - "the right endpoint."); - - return intervalTree.overlapsWith(new Interval(low, high)); - } - - /** - * Returns the estimated value of a set of values whose time intervals - * overlap with a [{@code -inf}, {@code inf}] time interval. - * {@code Estimator.FIRST} is used. - * - * @return the estimated value of a set of values whose time intervals - * overlap with a [{@code -inf}, {@code inf}] time interval or - * {@code null} if there are no intervals. - * - * @see Estimator - */ - public T getValue() { - return getValue(Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY); - } - - /** - * Returns the estimated value of a set of values whose time intervals - * overlap with a given time interval. - * {@code Estimator.FIRST} is used. - * - * @param interval a given time interval - * - * @return the estimated value of a set of values whose time intervals - * overlap with a given time interval or - * {@code null} if there are no intervals. - * - * @see Estimator - */ - public T getValue(Interval interval) { - return getValue(interval, Estimator.FIRST); - } - - /** - * Returns the estimated value of a set of values whose time intervals - * overlap with a [{@code low}, {@code high}] time interval. - * {@code Estimator.FIRST} is used. - * - * @param low the left endpoint - * @param high the right endpoint - * - * @return the estimated value of a set of values whose time intervals - * overlap with a [{@code low}, {@code high}] time interval or - * {@code null} if there are no intervals. - * - * @throws IllegalArgumentException if {@code low} > {@code high}. - * - * @see Estimator - */ - public T getValue(double low, double high) { - return getValue(low, high, Estimator.FIRST); - } - - /** - * Returns the estimated value of a set of values whose time intervals - * overlap with a [{@code -inf}, {@code inf}] time interval. - * - * @param estimator used to estimate the result - * - * @return the estimated value of a set of values whose time intervals - * overlap with a [{@code -inf}, {@code inf}] time interval or - * {@code null} if there are no intervals. - * - * @throws UnsupportedOperationException if type {@code T} doesn't support - * the given {@code estimator}. - * - * @see Estimator - */ - public T getValue(Estimator estimator) { - return getValue(Double.NEGATIVE_INFINITY, - Double.POSITIVE_INFINITY, - estimator); - } - - /** - * Returns the estimated value of a set of values whose time intervals - * overlap with a given time interval. - * - * @param interval a given time interval - * @param estimator used to estimate the result - * - * @return the estimated value of a set of values whose time intervals - * overlap with a given time interval or - * {@code null} if there are no intervals. - * - * @throws UnsupportedOperationException if type {@code T} doesn't support - * the given {@code estimator}. - * - * @see Estimator - */ - public abstract T getValue(Interval interval, Estimator estimator); - - /** - * Returns the estimated value of a set of values whose time intervals - * overlap with a [{@code low}, {@code high}] time interval. - * - * @param low the left endpoint - * @param high the right endpoint - * @param estimator used to estimate the result - * - * @return the estimated value of a set of values whose time intervals - * overlap with a [{@code low}, {@code high}] time interval or - * {@code null} if there are no intervals. - * - * @throws IllegalArgumentException if {@code low} > {@code high}. - * @throws UnsupportedOperationException if type {@code T} doesn't support - * the given {@code estimator}. - * - * @see Estimator - */ - public T getValue(double low, double high, Estimator estimator) { - if (low > high) - throw new IllegalArgumentException( - "The left endpoint of the interval must be less than " + - "the right endpoint."); - - return getValue(new Interval(low, high, false, false), estimator); - } - - /** - * Returns a list of all values stored in this instance. - * - * @return a list of all values stored in this instance. - */ - public List getValues() { - return getValues(Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY); - } - - /** - * Returns a list of values whose time intervals overlap with a - * [{@code low}, {@code high}] time interval. - * - * @param low the left endpoint - * @param high the right endpoint - * - * @return a list of values whose time intervals overlap with a - * [{@code low}, {@code high}] time interval. - * - * @throws IllegalArgumentException if {@code low} > {@code high}. - */ - public List getValues(double low, double high) { - return getValues(new Interval(low, high)); - } - - /** - * Returns a list of values whose time intervals overlap with a - * given time interval. - * - * @param interval a given time interval - * - * @return a list of values whose time intervals overlap with a - * given time interval. - */ - public List getValues(Interval interval) { - List result = new ArrayList(); - for (Interval i : intervalTree.search(interval)) - result.add(i.getValue()); - return result; - } - - /** - * Returns a list of all intervals. - * - * @return a list of intervals which overlap with a given time interval. - */ - public List> getIntervals() { - return intervalTree.getIntervals(); - } - - /** - * Returns a list of intervals which overlap with a given time interval. - * - * @param interval a given time interval - * - * @return a list of intervals which overlap with a given time interval. - */ - public List> getIntervals(Interval interval) { - return intervalTree.search(interval); - } - - /** - * Returns a list of intervals which overlap with a - * [{@code low}, {@code high}] time interval. - * - * @param low the left endpoint - * @param high the right endpoint - * - * @return a list of intervals which overlap with a - * [{@code low}, {@code high}] time interval. - * - * @throws IllegalArgumentException if {@code low} > {@code high}. - */ - public List> getIntervals(double low, double high) { - return intervalTree.search(low, high); - } - - /** - * Returns the underlying type {@code T}. - * - * @return the underlying type {@code T}. - */ - public abstract Class getUnderlyingType(); - - /** - * Compares this instance with the specified object for equality. - * - *

Note that two {@code DynamicType} instances are equal if they have got - * the same type {@code T} and their interval trees are equal. - * - * @param obj object to which this instance is to be compared - * - * @return {@code true} if and only if the specified {@code Object} is a - * {@code DynamicType} which has the same type {@code T} and an - * equal interval tree. - * - * @see #hashCode - */ - @Override - public boolean equals(Object obj) { - if (obj != null && obj.getClass().equals(this.getClass()) && - ((DynamicType)obj).intervalTree.equals(intervalTree)) - return true; - return false; - } - - /** - * Returns a hashcode of this instance. - * - * @return a hashcode of this instance. - */ - @Override - public int hashCode() { - return intervalTree.hashCode(); - } - - /** - * Creates a string representation of all the intervals with their values. - * - * @param timesAsDoubles indicates if times should be shown as doubles or dates - * - * @return a string representation with times as doubles or dates. - */ - public String toString(boolean timesAsDoubles) { - return intervalTree.toString(timesAsDoubles); - } - - /** - * Returns a string representation of this instance in a format - * {@code <[low, high, value], ..., [low, high, value]>}. Intervals are - * ordered by its left endpoint. - * - * @return a string representation of this instance. - */ - @Override - public String toString() { - return intervalTree.toString(); - } -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/FloatList.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/FloatList.java deleted file mode 100644 index 2e88d2acc9..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/FloatList.java +++ /dev/null @@ -1,67 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Martin Ε kurla -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.type; - -/** - * Complex type that define a list of Float items. Can be created from a float - * array, from a Float array or from single string using either given or default separators. - * - * @author Martin Ε kurla - */ -public final class FloatList extends NumberList { - - public FloatList(float[] primitiveFloatArray) { - super(TypeConvertor.convertPrimitiveToWrapperArray(primitiveFloatArray)); - } - - public FloatList(Float[] wrapperFloatArray) { - super(wrapperFloatArray); - } - - public FloatList(String input) { - this(input, AbstractList.DEFAULT_SEPARATOR); - } - - public FloatList(String input, String separator) { - super(input, separator, Float.class); - } -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/IntegerList.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/IntegerList.java deleted file mode 100644 index 16a78ef853..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/IntegerList.java +++ /dev/null @@ -1,67 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Martin Ε kurla -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.type; - -/** - * Complex type that define a list of Integer items. Can be created from a int - * array, from a Integer array or from single string using either given or default separators. - * - * @author Martin Ε kurla - */ -public final class IntegerList extends NumberList { - - public IntegerList(int[] primitiveIntArray) { - super(TypeConvertor.convertPrimitiveToWrapperArray(primitiveIntArray)); - } - - public IntegerList(Integer[] wrapperIntArray) { - super(wrapperIntArray); - } - - public IntegerList(String input) { - this(input, AbstractList.DEFAULT_SEPARATOR); - } - - public IntegerList(String input, String separator) { - super(input, separator, Integer.class); - } -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/Interval.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/Interval.java deleted file mode 100644 index d4731915a3..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/Interval.java +++ /dev/null @@ -1,319 +0,0 @@ -/* - Copyright 2008-2010 Gephi - Authors : Cezary Bartosiak - Website : http://www.gephi.org - - This file is part of Gephi. - - DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - - Copyright 2011 Gephi Consortium. All rights reserved. - - The contents of this file are subject to the terms of either the GNU - General Public License Version 3 only ("GPL") or the Common - Development and Distribution License("CDDL") (collectively, the - "License"). You may not use this file except in compliance with the - License. You can obtain a copy of the License at - http://gephi.org/about/legal/license-notice/ - or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the - specific language governing permissions and limitations under the - License. When distributing the software, include this License Header - Notice in each file and include the License files at - /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the - License Header, with the fields enclosed by brackets [] replaced by - your own identifying information: - "Portions Copyrighted [year] [name of copyright owner]" - - If you wish your version of this file to be governed by only the CDDL - or only the GPL Version 3, indicate your decision by adding - "[Contributor] elects to include this software in this distribution - under the [CDDL or GPL Version 3] license." If you do not indicate a - single choice of license, a recipient has the option to distribute - your version of this file under either the CDDL, the GPL Version 3 or - to extend the choice of license to its licensees as provided above. - However, if you add GPL Version 3 code and therefore, elected the GPL - Version 3 license, then the option applies only if the new code is - made subject to such option by the copyright holder. - - Contributor(s): - - Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.data.attributes.type; - -import org.gephi.data.attributes.api.AttributeUtils; - -/** - * This class represents an interval with some value. - * - * @author Cezary Bartosiak - * - * @param type of data - */ -public final class Interval implements Comparable { - - private double low; // the left endpoint - private double high; // the right endpoint - private boolean lopen; // indicates if the left endpoint is excluded - private boolean ropen; // indicates if the right endpoint is excluded - private T value; // the value stored in this interval - - /** - * Constructs a new interval instance - * - *

Note that {@code value} cannot be null if you want use this {@code interval} as a value storage. If it is null some estimators could not work and generate exceptions. - * - * @param interval the interval to copy the values from - * @param value the value stored in this interval - * - * @throws IllegalArgumentException if {@code low} > {@code high}. - */ - public Interval(Interval interval, T value) { - this.low = interval.low; - this.high = interval.high; - this.lopen = interval.lopen; - this.ropen = interval.ropen; - this.value = value; - } - - /** - * Constructs a new interval instance. - * - *

Note that {@code value} cannot be null if you want use this {@code interval} as a value storage. If it is null some estimators could not work and generate exceptions. - * - * @param low the left endpoint - * @param high the right endpoint - * @param lopen indicates if the left endpoint is excluded (true in this case) - * @param ropen indicates if the right endpoint is excluded (true in this case) - * @param value the value stored in this interval - * - * @throws IllegalArgumentException if {@code low} > {@code high}. - */ - public Interval(double low, double high, boolean lopen, boolean ropen, T value) { - if (low > high) { - throw new IllegalArgumentException( - "The left endpoint of the interval must be less than " - + "the right endpoint."); - } - - this.low = low; - this.high = high; - this.lopen = lopen; - this.ropen = ropen; - this.value = value; - } - - /** - * Constructs a new interval instance with no value. - * - * @param low the left endpoint - * @param high the right endpoint - * @param lopen indicates if the left endpoint is excluded (true in this case) - * @param ropen indicates if the right endpoint is excluded (true in this case) - * - * @throws IllegalArgumentException if {@code low} > {@code high}. - */ - public Interval(double low, double high, boolean lopen, boolean ropen) { - this(low, high, lopen, ropen, null); - } - - /** - * Constructs a new interval instance with left and right endpoints included by default. - * - *

Note that {@code value} cannot be null if you want use this {@code interval} as a value storage. If it is null some estimators could not work and generate exceptions. - * - * @param low the left endpoint - * @param high the right endpoint - * @param value the value stored in this interval - * - * @throws IllegalArgumentException if {@code low} > {@code high}. - */ - public Interval(double low, double high, T value) { - this(low, high, false, false, value); - } - - /** - * Constructs a new interval instance with no value and left and right endpoints included by default. - * - * @param low the left endpoint - * @param high the right endpoint - * - * @throws IllegalArgumentException if {@code low} > {@code high}. - */ - public Interval(double low, double high) { - this(low, high, false, false, null); - } - - /** - * Compares this interval with the specified interval for order. - * - *

Any two intervals i and i' satisfy the {@code interval - * trichotomy}; that is, exactly one of the following three properties holds:

  1. i and i' overlap; - * - *
  2. i is to the left of i' (i.high < i'.low); - * - *
  3. i is to the right of i' (i'.high < i.low).
- * - *

Note that if two intervals are equal ({@code i.low = i'.low} and {@code i.high = i'.high}), they overlap as well. But if they simply overlap (for instance {@code i.low < i'.low} and {@code i.high > - * i'.high}) they aren't equal. Remember that if two intervals are equal, they have got the same bounds excluded or included. - * - * @param interval the interval to be compared - * - * @return a negative integer, zero, or a positive integer as this interval is to the left of, overlaps with, or is to the right of the specified interval. - * - * @throws NullPointerException if {@code interval} is null. - */ - public int compareTo(Interval interval) { - if (interval == null) { - throw new NullPointerException("Interval cannot be null."); - } - - if (high < interval.low || high <= interval.low && (ropen || interval.lopen)) { - return -1; - } - if (interval.high < low || interval.high <= low && (interval.ropen || lopen)) { - return 1; - } - return 0; - } - - /** - * Returns the left endpoint. - * - * @return the left endpoint. - */ - public double getLow() { - return low; - } - - /** - * Returns the right endpoint. - * - * @return the right endpoint. - */ - public double getHigh() { - return high; - } - - /** - * Indicates if the left endpoint is excluded. - * - * @return {@code true} if the left endpoint is excluded, {@code false} otherwise. - */ - public boolean isLowExcluded() { - return lopen; - } - - /** - * Indicates if the right endpoint is excluded. - * - * @return {@code true} if the right endpoint is excluded, {@code false} otherwise. - */ - public boolean isHighExcluded() { - return ropen; - } - - /** - * Returns the value stored in this interval. - * - * @return the value stored in this interval. - */ - public T getValue() { - return value; - } - - /** - * Compares this interval with the specified object for equality. - * - *

Note that two intervals are equal if {@code i.low = i'.low} and {@code i.high = i'.high} and they have got the bounds excluded/included. - * - * @param obj object to which this interval is to be compared - * - * @return {@code true} if and only if the specified {@code Object} is a {@code Interval} whose low and high are equal to this {@code Interval's}. - * - * @see #compareTo(org.gephi.data.attributes.type.Interval) - * @see #hashCode - */ - @Override - public boolean equals(Object obj) { - if (obj != null && obj.getClass().equals(this.getClass())) { - Interval interval = (Interval) obj; - if (low == interval.low && high == interval.high - && lopen == interval.lopen && ropen == interval.ropen) { - return true; - } - } - return false; - } - - @Override - public int hashCode() { - int hash = 7; - hash = 97 * hash + (int) (Double.doubleToLongBits(this.low) ^ (Double.doubleToLongBits(this.low) >>> 32)); - hash = 97 * hash + (int) (Double.doubleToLongBits(this.high) ^ (Double.doubleToLongBits(this.high) >>> 32)); - hash = 97 * hash + (this.lopen ? 1 : 0); - hash = 97 * hash + (this.ropen ? 1 : 0); - return hash; - } - - /** - * @param value String value - * @return True if the string contains special characters for dynamic intervals syntax - */ - public static boolean containsSpecialCharacters(String value) { - for (Character c : ";,()[]\"'".toCharArray()) { - if (value.indexOf(c) != -1) { - return true; - } - } - return false; - } - - /** - * Creates a string representation of the interval with its value. - * - * @param timesAsDoubles indicates if times should be shown as doubles or dates - * - * @return a string representation with times as doubles or dates. - */ - public String toString(boolean timesAsDoubles) { - StringBuilder sb = new StringBuilder(); - sb.append(lopen ? '(' : '['); - if (timesAsDoubles) { - sb.append(low); - sb.append(", "); - sb.append(high); - } else { - sb.append(AttributeUtils.getXMLDateStringFromDouble(low)); - sb.append(", "); - sb.append(AttributeUtils.getXMLDateStringFromDouble(high)); - } - if (value != null) { - sb.append(", "); - String stringValue = value.toString(); - if (containsSpecialCharacters(stringValue) || stringValue.trim().isEmpty()) { - sb.append('"'); - sb.append(stringValue.replace("\\", "\\\\").replace("\"", "\\\"")); - sb.append('"'); - } else { - sb.append(stringValue); - } - } - sb.append(ropen ? ')' : ']'); - - return sb.toString(); - } - - /** - * Returns a string representation of this interval in one of the formats:

  1. {@code [low, high, value]}
  2. {@code (low, high, value]}
  3. {@code [low, high, value)}
  4. - * {@code (low, high, value)}
- * - *

Times are always shown as doubles

- * - * @return a string representation of this interval. - */ - @Override - public String toString() { - return toString(true); - } -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/IntervalTree.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/IntervalTree.java deleted file mode 100644 index 65e06e0af6..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/IntervalTree.java +++ /dev/null @@ -1,706 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Cezary Bartosiak -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.type; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -/** - * It is essentially a map from intervals to object which can be queried for - * {@code Interval} instances associated with a particular interval of time. - * - *

Insertion can be performed in O(lg n) time, where n - * is the number of nodes. All intervals in a tree that overlap some interval - * i can be listed in O(min(n, k lg n) time, - * where k is the number of intervals in the output list. Thus search and - * deletion can be performed in this time. - * - *

The space consumption is O(n). - * - *

Note that this implementation doesn't allow intervals to be duplicated. - * - *

References: - *

    - *
  • Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. - * Introduction to Algorithms, Second Edition. MIT, 2001. ISBN 83-204-2879-3 - *
- * - * @author Cezary Bartosiak - * - * @param type of data - */ -public final class IntervalTree { - private Node nil; // the sentinel node - private Node root; // the root of this interval tree - - /** - * Constructs an empty {@code IntervalTree}. - */ - public IntervalTree() { - nil = new Node(); - nil.left = nil.right = nil.p = nil; - root = nil; - } - - /** - * Constructs a copy of the given {@code IntervalTree}. - * - * @param intervalTree a copied {@code IntervalTree} - */ - public IntervalTree(IntervalTree intervalTree) { - this(); - copy(intervalTree.root.left, intervalTree.nil); - } - - private void copy(Node x, Node nil) { - if (x != nil) { - copy(x.left, nil); - insert(x.i); - copy(x.right, nil); - } - } - - private boolean compareLow(Interval a, Interval b) { - if (a.getLow() < b.getLow() || a.getLow() == b.getLow() && - (!a.isLowExcluded() || b.isHighExcluded())) - return true; - return false; - } - - /** - * Inserts the {@code interval} into this {@code IntervalTree}. - * - * @param interval an interval to be inserted - * - * @throws NullPointerException if {@code interval} is null. - */ - public void insert(Interval interval) { - if (interval == null) - throw new NullPointerException("Interval cannot be null."); - - insert(new Node(interval)); - } - - private void insert(Node z) { - z.left = z.right = nil; - - Node y = root; - Node x = root.left; - while (x != nil) { - y = x; - if (compareLow(z.i, y.i)) - x = x.left; - else x = x.right; - y.max = Math.max(z.max, y.max); - if (y.p == root) - root.max = y.max; - } - z.p = y; - if (y == root) - root.max = z.max; - if (y == root || compareLow(z.i, y.i)) - y.left = z; - else y.right = z; - insertFixup(z); - } - - private void insertFixup(Node z) { - Node y = nil; - - z.color = RED; - while (z.p.color == RED) - if (z.p == z.p.p.left) { - y = z.p.p.right; - if (y.color == RED) { - z.p.color = BLACK; - y.color = BLACK; - z.p.p.color = RED; - z = z.p.p; - } - else { - if (z == z.p.right) { - z = z.p; - leftRotate(z); - } - z.p.color = BLACK; - z.p.p.color = RED; - rightRotate(z.p.p); - } - } - else { - y = z.p.p.left; - if (y.color == RED) { - z.p.color = BLACK; - y.color = BLACK; - z.p.p.color = RED; - z = z.p.p; - } - else { - if (z == z.p.left) { - z = z.p; - rightRotate(z); - } - z.p.color = BLACK; - z.p.p.color = RED; - leftRotate(z.p.p); - } - } - root.left.color = BLACK; - } - - /** - * Removes all intervals from this {@code IntervalTree} that overlap with - * the given {@code interval}. - * - * @param interval determines which intervals should be removed - * - * @throws NullPointerException if {@code interval} is null. - */ - public void delete(Interval interval) { - if (interval == null) - throw new NullPointerException("Interval cannot be null."); - - for (Node n : searchNodes(interval)) - delete(n); - } - - private void delete(Node z) { - z.max = Double.NEGATIVE_INFINITY; - for (Node i = z.p; i != root; i = i.p) { - i.max = Math.max(i.left.max, i.right.max); - if (i.p == root) - root.max = i.max; - } - - Node y; - Node x; - - if (z.left == nil || z.right == nil) - y = z; - else y = succesor(z); - if (y.left == nil) - x = y.right; - else x = y.left; - x.p = y.p; - if (root == x.p) - root.left = x; - else if (y == y.p.left) - y.p.left = x; - else y.p.right = x; - if (y != z) { - if (y.color == BLACK) - deleteFixup(x); - - y.left = z.left; - y.right = z.right; - y.p = z.p; - y.color = z.color; - z.left.p = z.right.p = y; - if (z == z.p.left) - z.p.left = y; - else z.p.right = y; - } - else if (y.color == BLACK) - deleteFixup(x); - } - - private void deleteFixup(Node x) { - while (x != root.left && x.color == BLACK) - if (x == x.p.left) { - Node w = x.p.right; - if (w.color == RED) { - w.color = BLACK; - x.p.color = RED; - leftRotate(x.p); - w = x.p.right; - } - if (w.left.color == BLACK && w.right.color == BLACK) { - w.color = RED; - x = x.p; - } - else { - if (w.right.color == BLACK) { - w.left.color = BLACK; - w.color = RED; - rightRotate(w); - w = x.p.right; - } - w.color = x.p.color; - x.p.color = BLACK; - w.right.color = BLACK; - leftRotate(x.p); - x = root.left; - } - } - else { - Node w = x.p.left; - if (w.color == RED) { - w.color = BLACK; - x.p.color = RED; - rightRotate(x.p); - w = x.p.left; - } - if (w.right.color == BLACK && w.left.color == BLACK) { - w.color = RED; - x = x.p; - } - else { - if (w.left.color == BLACK) { - w.right.color = BLACK; - w.color = RED; - leftRotate(w); - w = x.p.left; - } - w.color = x.p.color; - x.p.color = BLACK; - w.left.color = BLACK; - rightRotate(x.p); - x = root.left; - } - } - x.color = BLACK; - } - - private void leftRotate(Node x) { - Node y = x.right; - - x.right = y.left; - if (y.left != nil) - y.left.p = x; - y.p = x.p; - if (x == x.p.left) - x.p.left = y; - else x.p.right = y; - y.left = x; - x.p = y; - - if (y.p == root) - root.max = x.max; - y.max = x.max; - x.max = Math.max(x.i.getHigh(), Math.max(x.left.max, x.right.max)); - } - - private void rightRotate(Node x) { - Node y = x.left; - - x.left = y.right; - if (y.right != nil) - y.right.p = x; - y.p = x.p; - if (x == x.p.left) - x.p.left = y; - else x.p.right = y; - y.right = x; - x.p = y; - - if (y.p == root) - root.max = x.max; - y.max = x.max; - x.max = Math.max(x.i.getHigh(), Math.max(x.left.max, x.right.max)); - } - - private Node succesor(Node x) { - Node y = x.right; - if (y != nil) { - while (y.left != nil) - y = y.left; - return y; - } - y = x.p; - while (x == y.right) { - x = y; - y = y.p; - } - if (y == root) - return nil; - return y; - } - - /** - * Returns the interval with the lowest left endpoint. - * - * @return the interval with the lowest left endpoint - * or null if the tree is empty. - */ - public Interval minimum() { - if (root.left == nil) - return null; - return treeMinimum(root.left).i; - } - - private Node treeMinimum(Node x) { - while (x.left != nil) - x = x.left; - return x; - } - - /** - * Returns the interval with the highest left endpoint. - * - * @return the interval with the highest left endpoint - * or null if the tree is empty. - */ - public Interval maximum() { - if (root.left == nil) - return null; - return treeMaximum(root.left).i; - } - - private Node treeMaximum(Node x) { - while (x.right != nil) - x = x.right; - return x; - } - - /** - * Returns the leftmost point or {@code Double.NEGATIVE_INFINITY} in case - * of no intervals. - * - * @return the leftmost point. - */ - public double getLow() { - if (isEmpty()) - return Double.NEGATIVE_INFINITY; - return minimum().getLow(); - } - - /** - * Returns the rightmost point or {@code Double.POSITIVE_INFINITY} in case - * of no intervals. - * - * @return the rightmost point. - */ - public double getHigh() { - if (isEmpty()) - return Double.POSITIVE_INFINITY; - return root.left.max; - } - - /** - * Indicates if the leftmost point is excluded. - * - * @return {@code true} if the leftmost point is excluded, - * {@code false} otherwise. - */ - public boolean isLowExcluded() { - if (isEmpty()) - return true; - return minimum().isLowExcluded(); - } - - /** - * Indicates if the rightmost point is excluded. - * - * @return {@code true} if the rightmost point is excluded, - * {@code false} otherwise. - */ - public boolean isHighExcluded() { - if (isEmpty()) - return true; - return maximum().isHighExcluded(); - } - - /** - * Indicates if this {@code IntervalTree} contains 0 intervals. - * - * @return {@code true} if this {@code IntervalTree} is empty, - * {@code false} otherwise. - */ - public boolean isEmpty() { - return root.left == nil; - } - - /** - * Returns all intervals. - * - * @return all intervals - */ - public List> getIntervals() { - List> list = new ArrayList>(); - inorderTreeWalk(root.left, list); - return list; - } - - /** - * Returns all intervals overlapping with a given {@code Interval}. - * - * @param interval an {#code Interval} to be searched for overlaps - * - * @return all intervals overlapping with a given {@code Interval}. - * - * @throws NullPointerException if {@code interval} is null. - */ - public List> search(Interval interval) { - if (interval == null) - throw new NullPointerException("Interval cannot be null."); - - List> overlaps = new ArrayList>(); - for (Node n : searchNodes(interval)) - overlaps.add(n.i); - return overlaps; - } - - /** - * Returns all intervals overlapping with an interval given by {@code low} - * and {@code high}. They are considered as included by default. - * - * @param low the left endpoint of an interval to be searched for overlaps - * @param high the right endpoint an interval to be searched for overlaps - * - * @return all intervals overlapping with an interval given by {@code low} - * and {@code high}. - * - * @throws IllegalArgumentException if {@code low} > {@code high}. - */ - public List> search(double low, double high) { - if (low > high) - throw new IllegalArgumentException( - "The left endpoint of the interval must be less than " + - "the right endpoint."); - - List> overlaps = new ArrayList>(); - for (Node n : searchNodes(new Interval(low, high))) - overlaps.add(n.i); - return overlaps; - } - - private List searchNodes(Interval interval) { - List result = new ArrayList(); - searchNodes(root.left, interval, result); - return result; - } - - private void searchNodes(Node n, Interval interval, List result) { - // Don't search nodes that don't exist. - if (n == nil) - return; - - // Skip all nodes that have got their max value below the start of - // the given interval. - if (interval.getLow() > n.max) - return; - - // Search left children. - if (n.left != nil) - searchNodes(n.left, interval, result); - - // Check this node. - if (n.i.compareTo(interval) == 0) - result.add(n); - - // Skip all nodes to the right of nodes whose low value is past the end - // of the given interval. - if (interval.compareTo(n.i) < 0) - return; - - // Otherwise, search right children. - if (n.right != nil) - searchNodes(n.right, interval, result); - } - - /** - * Indicates if this {@code IntervalTree} overlaps with the given time interval. - * - * @param interval a given time interval - * - * @return {@code true} if this {@code IntervalTree} overlaps with {@code interval}, - * {@code false} otherwise. - */ - public boolean overlapsWith(Interval interval) { - return overlapsWith(root.left, interval); - } - - private boolean overlapsWith(Node n, Interval interval) { - // Don't search nodes that don't exist. - if (n == nil) - return false; - - // Skip all nodes that have got their max value below the start of - // the given interval. - if (interval.getLow() > n.max) - return false; - - // Search left children. - if (n.left != nil) - if (overlapsWith(n.left, interval)) - return true; - - // Check this node. - if (n.i.compareTo(interval) == 0) - return true; - - // Skip all nodes to the right of nodes whose low value is past the end - // of the given interval. - if (interval.compareTo(n.i) < 0) - return false; - - // Otherwise, search right children. - if (n.right != nil) - if (overlapsWith(n.right, interval)) - return true; - - // No overlaps, return false. - return false; - } - - private void inorderTreeWalk(Node x, List> list) { - if (x != nil) { - inorderTreeWalk(x.left, list); - list.add(x.i); - inorderTreeWalk(x.right, list); - } - } - - /** - * Compares this interval tree with the specified object for equality. - * - *

Note that two interval trees are equal if they contain the same - * intervals. - * - * @param obj object to which this interval tree is to be compared - * - * @return {@code true} if and only if the specified {@code Object} is a - * {@code IntervalTree} which contain the same intervals as this - * {@code IntervalTree's}. - * - * @see #hashCode - */ - @Override - public boolean equals(Object obj) { - if (obj != null && obj.getClass().equals(this.getClass())) { - List> thisIntervals = new ArrayList>(); - List> objIntervals = new ArrayList>(); - inorderTreeWalk(root.left, thisIntervals); - ((IntervalTree)obj).inorderTreeWalk( - ((IntervalTree)obj).root.left, objIntervals); - if (thisIntervals.size() == objIntervals.size()) { - for (int i = 0; i < thisIntervals.size(); ++i) - if (!thisIntervals.get(i).equals(objIntervals.get(i))) - return false; - return true; - } - } - return false; - } - - /** - * Returns a hashcode of this interval tree. - * - * @return a hashcode of this interval tree. - */ - @Override - public int hashCode() { - List> list = new ArrayList>(); - inorderTreeWalk(root.left, list); - return Arrays.deepHashCode(list.toArray()); - } - - /** - * Creates a string representation of all the intervals with their values. - * - * @param timesAsDoubles indicates if times should be shown as doubles or dates - * - * @return a string representation with times as doubles or dates. - */ - public String toString(boolean timesAsDoubles) { - List> list = new ArrayList>(); - inorderTreeWalk(root.left, list); - if (!list.isEmpty()) { - StringBuilder sb = new StringBuilder("<"); - sb.append(list.get(0).toString(timesAsDoubles)); - for (int i = 1; i < list.size(); ++i) - sb.append("; ").append(list.get(i).toString(timesAsDoubles)); - sb.append(">"); - return sb.toString(); - } - return ""; - } - - /** - * Returns a string representation of this interval tree in a format - * {@code <[low, high, value], ..., [low, high, value]>}. Nodes are visited - * in {@code inorder}. - * - *

Times are always shown as doubles.

- * - * @return a string representation of this interval tree. - */ - @Override - public String toString() { - return toString(true); - } - - private class Node { - public Interval i; // i.low is the key of this node - public double max; // the maximum value of any interval endpoint - // stored in the subtree rooted at this node - - public Color color; // the color of this node - public Node left; // the left subtree of this node - public Node right; // the right subtree of this node - public Node p; // the parent node - - /* - * Constructs a sentinel node by default. - */ - public Node() { - color = BLACK; - } - - /* - * Constructs a new {@code Node} instance. - */ - public Node(Interval i) { - this(); - this.i = i; - this.max = i.getHigh(); - } - } - - private enum Color { - RED, BLACK - } - - private static final Color RED = Color.RED; - private static final Color BLACK = Color.BLACK; -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/LongList.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/LongList.java deleted file mode 100644 index 3b92a922f5..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/LongList.java +++ /dev/null @@ -1,67 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Martin Ε kurla -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.type; - -/** - * Complex type that define a list of Long items. Can be created from a long - * array, from a Long array or from single string using either given or default separators. - * - * @author Martin Ε kurla - */ -public final class LongList extends NumberList { - - public LongList(long[] primitiveLongArray) { - super(TypeConvertor.convertPrimitiveToWrapperArray(primitiveLongArray)); - } - - public LongList(Long[] wrapperLongArray) { - super(wrapperLongArray); - } - - public LongList(String input) { - this(input, AbstractList.DEFAULT_SEPARATOR); - } - - public LongList(String input, String separator) { - super(input, separator, Long.class); - } -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/NumberList.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/NumberList.java deleted file mode 100644 index 7e9346bb3c..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/NumberList.java +++ /dev/null @@ -1,65 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Martin Ε kurla -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.type; - -/** - * Complex type that defines list of items that are numbers. - * - * @param type parameter restricted to types extending Number type - * - * @author Martin Ε kurla - */ -public abstract class NumberList extends AbstractList { - - public NumberList(T[] wrapperArray) { - super(wrapperArray); - } - - public NumberList(String input, Class finalType) { - this(input, AbstractList.DEFAULT_SEPARATOR, finalType); - } - - public NumberList(String input, String separator, Class finalType) { - super(input, separator, finalType); - } -} - diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/ShortList.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/ShortList.java deleted file mode 100644 index 79bb0e56ad..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/ShortList.java +++ /dev/null @@ -1,67 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Martin Ε kurla -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.type; - -/** - * Complex type that define a list of Short items. Can be created from a short - * array, from a Short array or from single string using either given or default separators. - * - * @author Martin Ε kurla - */ -public final class ShortList extends NumberList { - - public ShortList(short[] primitiveShortArray) { - super(TypeConvertor.convertPrimitiveToWrapperArray(primitiveShortArray)); - } - - public ShortList(Short[] wrapperShortArray) { - super(wrapperShortArray); - } - - public ShortList(String input) { - this(input, AbstractList.DEFAULT_SEPARATOR); - } - - public ShortList(String input, String separator) { - super(input, separator, Short.class); - } -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/StringList.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/StringList.java deleted file mode 100644 index 1e5678b71a..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/StringList.java +++ /dev/null @@ -1,118 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Martin Ε kurla -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.type; - -import org.gephi.data.attributes.api.AttributeType; - -/** - * Complex type that define a list of String items. Can be created from a String - * array, from a char array or from single string using either given or default separators. - *

- * String list is useful when, for a particular type, the number of string - * that define an element is not known by advance. - * - * @author Martin Ε kurla - * @author Mathieu Bastian - * @see AttributeType - */ -public final class StringList extends AbstractList { - - /** - * Create a new string from a char array. One char per list cell. - * - * @param list the list - */ - public StringList(char[] list) { - super(StringList.parse(list)); - } - - /** - * Create a new string list with the given items. - * - * @param list the list of string items - */ - public StringList(String[] list) { - super(list); - } - - /** - * Create a new string list with items found in the given value. Default - * separators ,|; are used to split the string in a list. - * - * @param input a string with default separators - */ - public StringList(String input) { - this(input, AbstractList.DEFAULT_SEPARATOR); - } - - /** - * Create a new string list with items found using given separators. - * - * @param input a string with separators defined in separator - * @param separator the separators chars that are to be used to split - * value - */ - public StringList(String input, String separator) { - super(input, separator, String.class); - } - - private static String[] parse(char[] list) { - String[] resultList = new String[list.length]; - - for (int i = 0; i < list.length; i++) { - resultList[i] = "" + list[i]; - } - - return resultList; - } - - /** - * Returns the item at the specified index. May return - * null if index is out of range. - * - * @param index the position in the string list - * @return the item at the specified position, or null - */ - public String getString(int index) { - return getItem(index); - } -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/TimeInterval.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/TimeInterval.java deleted file mode 100644 index e61ba52bb2..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/TimeInterval.java +++ /dev/null @@ -1,335 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian, Cezary Bartosiak -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.type; - -import java.util.ArrayList; -import java.util.Hashtable; -import java.util.List; -import org.gephi.data.attributes.api.AttributeUtils; -import org.gephi.data.attributes.api.Estimator; - -/** - * Complex type for specifying time interval. An, interval is two - * double with low inferior or equal to - * high. Thus intervals can have got included or excluded - * bounds. - * - * @author Mathieu Bastian, Cezary Bartosiak - */ -public final class TimeInterval extends DynamicType { - /** - * Constructs a new {@code DynamicType} instance with no intervals. - */ - public TimeInterval() { - super(); - } - - /** - * Constructs a new {@code DynamicType} instance that contains a given - * {@code interval}. - * - * @param low the left endpoint - * @param high the right endpoint - * @param lopen indicates if the left endpoint is excluded (true in this case) - * @param ropen indicates if the right endpoint is excluded (true in this case) - */ - public TimeInterval(double low, double high, boolean lopen, boolean ropen) { - super(new Interval(low, high, lopen, ropen)); - } - - /** - * Constructs a new {@code DynamicType} instance that contains a given - * {@code interval} [{@code low}, {@code high}]. - * - * @param low the left endpoint - * @param high the right endpoint - */ - public TimeInterval(double low, double high) { - super(new Interval(low, high)); - } - - /** - * Constructs a new {@code DynamicType} instance with intervals given by - * {@code List} in. - * - * @param in intervals to add (could be null) - */ - public TimeInterval(List in) { - super(getList(in)); - } - - /** - * Constructs a deep copy of {@code source}. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - */ - public TimeInterval(TimeInterval source) { - super(source); - } - - /** - * Constructs a deep copy of {@code source} that contains a given - * {@code interval}. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param low the left endpoint - * @param high the right endpoint - * @param lopen indicates if the left endpoint is excluded (true in this case) - * @param ropen indicates if the right endpoint is excluded (true in this case) - */ - public TimeInterval(TimeInterval source, double low, double high, boolean lopen, boolean ropen) { - super(source, new Interval(low, high, lopen, ropen)); - } - - /** - * Constructs a deep copy of {@code source} that contains a given - * {@code interval} [{@code low}, {@code high}]. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param low the left endpoint - * @param high the right endpoint - */ - public TimeInterval(TimeInterval source, double low, double high) { - super(source, new Interval(low, high)); - } - - /** - * Constructs a deep copy of {@code source} that contains a given - * {@code interval} [{@code alow}, {@code ahigh}]. Before add it removes - * from the newly created object all intervals that overlap with a given - * {@code interval} [{@code rlow}, {@code rhigh}]. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param alow the left endpoint of the interval to add - * @param ahigh the right endpoint of the interval to add - * @param alopen indicates if the left endpoint of the interval to add is excluded (true in this case) - * @param aropen indicates if the right endpoint of the interval to add is excluded (true in this case) - * @param rlow the left endpoint of the interval to remove - * @param rhigh the right endpoint of the interval to remove - * @param blopen indicates if the left endpoint of the interval to remove is excluded (true in this case) - * @param bropen indicates if the right endpoint of the interval to remove is excluded (true in this case) - */ - public TimeInterval(TimeInterval source, double alow, double ahigh, boolean alopen, boolean aropen, - double rlow, double rhigh, boolean blopen, boolean bropen) { - super(source, - new Interval(alow, ahigh, alopen, aropen), - new Interval(rlow, rhigh, blopen, bropen)); - } - - /** - * Constructs a deep copy of {@code source} that contains a given - * {@code interval} [{@code alow}, {@code ahigh}]. Before add it removes - * from the newly created object all intervals that overlap with a given - * {@code interval} [{@code rlow}, {@code rhigh}]. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param alow the left endpoint of the interval to add - * @param ahigh the right endpoint of the interval to add - * @param rlow the left endpoint of the interval to remove - * @param rhigh the right endpoint of the interval to remove - */ - public TimeInterval(TimeInterval source, double alow, double ahigh, double rlow, double rhigh) { - super(source, - new Interval(alow, ahigh), - new Interval(rlow, rhigh)); - } - - /** - * Constructs a deep copy of {@code source} with additional intervals - * given by {@code List} in. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in intervals to add (could be null) - */ - public TimeInterval(TimeInterval source, List in) { - super(source, getList(in)); - } - - /** - * Constructs a deep copy of {@code source} with additional intervals - * given by {@code List} in. Before add it removes from the - * newly created object all intervals that overlap with intervals given by - * {@code List} out. - * - * @param source an object to copy from (could be null, then completely new - * instance is created) - * @param in intervals to add (could be null) - * @param out intervals to remove (could be null) - */ - public TimeInterval(TimeInterval source, List in, List out) { - super(source, getList(in), getList(out)); - } - - private static List> getList(List arg) { - if (arg == null) - return null; - List> list = new ArrayList>(); - for (Interval item : arg) - list.add(new Interval(item.getLow(), item.getHigh(), - item.isLowExcluded(), item.isHighExcluded())); - return list; - } - - @Override - public Double[] getValue(Interval interval, Estimator estimator) { - List values = getValues(interval); - if (values.isEmpty()) - return null; - - switch (estimator) { - case AVERAGE: - throw new UnsupportedOperationException( - "Not supported estimator"); - case MEDIAN: - if (values.size() % 2 == 1) - return values.get(values.size() / 2); - return values.get(values.size() / 2 - 1); - case MODE: - Hashtable map = - new Hashtable(); - for (int i = 0; i < values.size(); ++i) { - int prev = 0; - if (map.containsKey(values.get(i).hashCode())) - prev = map.get(values.get(i).hashCode()); - map.put(values.get(i).hashCode(), prev + 1); - } - int max = map.get(values.get(0).hashCode()); - int index = 0; - for (int i = 1; i < values.size(); ++i) - if (max < map.get(values.get(i).hashCode())) { - max = map.get(values.get(i).hashCode()); - index = i; - } - return values.get(index); - case SUM: - throw new UnsupportedOperationException( - "Not supported estimator"); - case MIN: - throw new UnsupportedOperationException( - "Not supported estimator"); - case MAX: - throw new UnsupportedOperationException( - "Not supported estimator"); - case FIRST: - return values.get(0); - case LAST: - return values.get(values.size() - 1); - default: - throw new IllegalArgumentException("Unknown estimator."); - } - } - - @Override - public List getValues(Interval interval) { - List result = new ArrayList(); - for (Interval i : intervalTree.search(interval)) - result.add(new Double[] { i.getLow(), i.getHigh() }); - return result; - } - - @Override - public Class getUnderlyingType() { - return Double[].class; - } - - @Override - public String toString(boolean timesAsDoubles) { - if (timesAsDoubles) - return toString(); - return toStringTimesAsDates(); - } - - /** - * Returns a string representation of this instance in a format - * {@code <[low, high], ..., [low, high]>}. Intervals are - * ordered by its left endpoint. - * - *

Times are always shown as dates.

- * - * @return a string representation of this instance. - */ - public String toStringTimesAsDates() { - List> list = getIntervals(Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY); - if (!list.isEmpty()) { - StringBuilder sb = new StringBuilder("<"); - sb.append(list.get(0).isLowExcluded() ? "(" : "[").append(AttributeUtils.getXMLDateStringFromDouble( - list.get(0).getLow())).append(", ").append(AttributeUtils.getXMLDateStringFromDouble( - list.get(0).getHigh())).append(list.get(0).isHighExcluded() ? ")" : "]"); - for (int i = 1; i < list.size(); ++i) - sb.append("; ").append(list.get(i).isLowExcluded() ? "(" : "[").append(AttributeUtils. - getXMLDateStringFromDouble(list.get(i).getLow())).append(", ").append(AttributeUtils. - getXMLDateStringFromDouble(list.get(i).getHigh())).append(list.get(i).isHighExcluded() ? ")" : "]"); - sb.append(">"); - return sb.toString(); - } - return ""; - } - - /** - * Returns a string representation of this instance in a format - * {@code <[low, high], ..., [low, high]>}. Intervals are - * ordered by its left endpoint. - * - * @return a string representation of this instance. - */ - @Override - public String toString() { - List> list = getIntervals(Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY); - if (!list.isEmpty()) { - StringBuilder sb = new StringBuilder("<"); - sb.append(list.get(0).isLowExcluded() ? "(" : "[").append(list.get(0).getLow()).append(", "). - append(list.get(0).getHigh()).append(list.get(0).isHighExcluded() ? ")" : "]"); - for (int i = 1; i < list.size(); ++i) - sb.append("; ").append(list.get(i).isLowExcluded() ? "(" : "[").append(list.get(i).getLow()). - append(", ").append(list.get(i).getHigh()).append(list.get(i).isHighExcluded() ? ")" : "]"); - sb.append(">"); - return sb.toString(); - } - return ""; - } -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/TypeConvertor.java b/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/TypeConvertor.java deleted file mode 100644 index 4218621de0..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/attributes/type/TypeConvertor.java +++ /dev/null @@ -1,301 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Martin Ε kurla , Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.data.attributes.type; - -import java.lang.reflect.Array; -import java.lang.reflect.Constructor; -import java.lang.reflect.Method; -import org.gephi.data.attributes.api.AttributeType; - -/** - * Class responsible for type manipulation and creation needed in Attributes API. - * - * @author Martin Ε kurla - * @author Mathieu Bastian - */ -public final class TypeConvertor { - - private static final String CONVERSION_METHOD_NAME = "valueOf"; - - private TypeConvertor() { - } - - /** - * Creates array of given type from single String value. String value is always parsed by given - * separator into smaller chunks. Every chunk will represent independent object in final array. - * The exact conversion process from String value into final type is done by - * {@link #createInstanceFromString createInstanceFromString} method. - * - * @param type parameter representing final array type - * @param input input - * @param separator separator which will be used in the process of tokenizing input - * @param finalType type of final array - * - * @return final array - * - * @throws NullPointerException if any of given parameters is null - * @throws IllegalArgumentException if array of given type cannot be created - * - * @see #createInstanceFromString createInstanceFromString - */ - @SuppressWarnings("unchecked") - public static T[] createArrayFromString(String input, String separator, Class finalType) { - if (input == null || separator == null || finalType == null) { - throw new NullPointerException(); - } - - String[] stringValues = input.split(separator); - T[] resultList = (T[]) Array.newInstance(finalType, stringValues.length); - - for (int i = 0; i < stringValues.length; i++) { - String stringValue = stringValues[i].trim(); - T resultValue = null; - - if (finalType == String.class) { - resultValue = (T) stringValue; - } else { - resultValue = TypeConvertor.createInstanceFromString(stringValue, finalType); - } - - resultList[i] = resultValue; - } - return resultList; - } - - /** - * Transforms String value to any kind of object with given type. The concrete conversion - * must be done by the type itself. This assumes, that given type defines at least one of the - * following: - *
    - *
  • public constructor with single parameter of type String - *
  • factory method "valueOf" with single parameter of type String
    - * If given type does not definy any of these requirements, IllegalArgumentException will be - * thrown. - * - * @param type parameter representing final type - * @param input input - * @param finalType type of final object - * - * @return final object - * - * @throws NullPointerException if any of given parameters is null - * @throws IllegalArgumentException if given type cannot be created - */ - @SuppressWarnings("unchecked") - public static T createInstanceFromString(String input, Class finalType) { - if (input == null || finalType == null) { - throw new NullPointerException(); - } - - T resultValue = null; - - try { - Method conversionMethod = finalType.getMethod(CONVERSION_METHOD_NAME, String.class); - - resultValue = (T) conversionMethod.invoke(null, input); - } catch (NoSuchMethodException e) { - try { - Constructor constructor = finalType.getConstructor(String.class); - resultValue = constructor.newInstance(input); - } catch (NoSuchMethodException e1) { - String errorMessage = String.format( - "Type '%s' does not have neither method 'T %s(String)' nor constructor '(String)'...", - finalType, - CONVERSION_METHOD_NAME); - - throw new IllegalArgumentException(errorMessage); - } catch (Exception e2) { - } - } catch (Exception e) { - } - return resultValue; - } - - /** - * Converts given array of primitive type into array of wrapper type. - * - * @param type parameter representing final wrapper type - * @param primitiveArray primitive array - * - * @return wrapper array - * - * @throws NullPointerException if given parameter is null - * @throws IllegalArgumentException if given parameter is not array or given parameter is not - * array of primitive type - */ - @SuppressWarnings("unchecked") - public static T[] convertPrimitiveToWrapperArray(Object primitiveArray) { - if (primitiveArray == null) { - throw new NullPointerException(); - } - - if (!primitiveArray.getClass().isArray()) { - throw new IllegalArgumentException("Given object is not of primitive array: " + primitiveArray.getClass()); - } - - Class primitiveClass = primitiveArray.getClass().getComponentType(); - Class wrapperClass = (Class) getWrapperFromPrimitive(primitiveClass); - int arrayLength = Array.getLength(primitiveArray); - T[] wrapperArray = (T[]) Array.newInstance(wrapperClass, arrayLength); - - for (int i = 0; i < arrayLength; i++) { - T arrayItem = (T) Array.get(primitiveArray, i); - wrapperArray[i] = arrayItem; - } - - return wrapperArray; - } - - /** - * Returns wrapper type from given primitive type. - * - * @param primitiveType primitive type - * - * @return wrapper type - * - * @throws NullPointerException if given parameter is null - * @throws IllegalArgumentException if given parameter is not a primitive type - */ - public static Class getWrapperFromPrimitive(Class primitiveType) { - if (primitiveType == null) { - throw new NullPointerException(); - } - - if (primitiveType == byte.class) { - return Byte.class; - } else if (primitiveType == short.class) { - return Short.class; - } else if (primitiveType == int.class) { - return Integer.class; - } else if (primitiveType == long.class) { - return Long.class; - } else if (primitiveType == float.class) { - return Float.class; - } else if (primitiveType == double.class) { - return Double.class; - } else if (primitiveType == boolean.class) { - return Boolean.class; - } else if (primitiveType == char.class) { - return Character.class; - } - - throw new IllegalArgumentException("Given type '" + primitiveType + "' is not primitive..."); - } - - /** - * Returns the underlying static type from dynamicType For example - * returns FLOAT if given type is DYNAMIC_FLOAT. - * @param dynamicType a dynamic type - * @return the underlying static type - * @throws IllegalArgumentException if dynamicType is not dynamic - */ - public static AttributeType getStaticType(AttributeType dynamicType) { - if (!dynamicType.isDynamicType()) { - throw new IllegalArgumentException("Given type '" + dynamicType + "' is not dynamic."); - } - switch (dynamicType) { - case DYNAMIC_BIGDECIMAL: - return AttributeType.BIGDECIMAL; - case DYNAMIC_BIGINTEGER: - return AttributeType.BIGINTEGER; - case DYNAMIC_BOOLEAN: - return AttributeType.BOOLEAN; - case DYNAMIC_BYTE: - return AttributeType.BYTE; - case DYNAMIC_CHAR: - return AttributeType.CHAR; - case DYNAMIC_DOUBLE: - return AttributeType.DOUBLE; - case DYNAMIC_FLOAT: - return AttributeType.FLOAT; - case DYNAMIC_INT: - return AttributeType.INT; - case DYNAMIC_LONG: - return AttributeType.LONG; - case DYNAMIC_SHORT: - return AttributeType.SHORT; - case DYNAMIC_STRING: - return AttributeType.STRING; - default: - return null; - } - } - - /** - * Returns the corresponding dynamic type from staticType For example - * returns DYNAMIC_FLOAT if given type is FLOAT. - * @param staticType a static type - * @return the corresponding dynamic type - * @throws IllegalArgumentException if staticType is not static - */ - public static AttributeType getDynamicType(AttributeType staticType) { - if (staticType.isDynamicType()) { - throw new IllegalArgumentException("Given type '" + staticType + "' is not static."); - } - switch (staticType) { - case BIGDECIMAL: - return AttributeType.DYNAMIC_BIGDECIMAL; - case BIGINTEGER: - return AttributeType.DYNAMIC_BIGINTEGER; - case BOOLEAN: - return AttributeType.DYNAMIC_BOOLEAN; - case BYTE: - return AttributeType.DYNAMIC_BYTE; - case CHAR: - return AttributeType.DYNAMIC_CHAR; - case DOUBLE: - return AttributeType.DYNAMIC_DOUBLE; - case FLOAT: - return AttributeType.DYNAMIC_FLOAT; - case INT: - return AttributeType.DYNAMIC_INT; - case LONG: - return AttributeType.DYNAMIC_LONG; - case SHORT: - return AttributeType.DYNAMIC_SHORT; - case STRING: - return AttributeType.DYNAMIC_STRING; - default: - return null; - } - } -} diff --git a/modules/AttributesAPI/src/main/java/org/gephi/data/properties/PropertiesColumn.java b/modules/AttributesAPI/src/main/java/org/gephi/data/properties/PropertiesColumn.java deleted file mode 100644 index 8890e36728..0000000000 --- a/modules/AttributesAPI/src/main/java/org/gephi/data/properties/PropertiesColumn.java +++ /dev/null @@ -1,118 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian , Martin Ε kurla -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.data.properties; - -import org.gephi.data.attributes.api.AttributeOrigin; -import org.gephi.data.attributes.api.AttributeType; - -/** - * Enum that define static AttributeColumn indexes, like ID - * or LABEL. Use these enum to find the index of these columns in - * node and edge table. - *

    Get nodes ID column - *
    - * AttributeColumn col = nodeTable.getColumn(PropertiesColumn.NODE_ID.getIndex());
    - * 
    - * @author Mathieu Bastian - * @author Martin Ε kurla - */ -public enum PropertiesColumn { - - NODE_ID(0, "id", AttributeType.STRING, AttributeOrigin.PROPERTY, null), - NODE_LABEL(1, "label", AttributeType.STRING, AttributeOrigin.PROPERTY, null), - EDGE_ID(0, "id", AttributeType.STRING, AttributeOrigin.PROPERTY, null), - EDGE_LABEL(1, "label", AttributeType.STRING, AttributeOrigin.PROPERTY, null), - EDGE_WEIGHT(2, "weight", AttributeType.FLOAT, AttributeOrigin.PROPERTY, 1f), - GRAPH_NAME(0, "name", AttributeType.STRING, AttributeOrigin.PROPERTY, null), - GRAPH_DESCRIPTION(0, "description", AttributeType.STRING, AttributeOrigin.PROPERTY, null), - NEO4J_RELATIONSHIP_TYPE(3, "neo4j_rt", AttributeType.STRING, AttributeOrigin.DELEGATE, null) { - - @Override - public String getTitle() { - return "Neo4j Relationship Type"; - } - }; - private final int index; - private final String id; - private final AttributeType type; - private final AttributeOrigin origin; - private final Object defaultValue; - - PropertiesColumn(int index, String id, AttributeType attributeType, AttributeOrigin origin, Object defaultValue) { - this.index = index; - this.id = id; - this.type = attributeType; - this.origin = origin; - this.defaultValue = defaultValue; - } - - public int getIndex() { - return index; - } - - public String getId() { - return id; - } - - /** - * Returns column title which will be showed to user in AttributeTables. Default title is derived - * from id uppercasing first character. For multiword titles, getTitle() method in appropriate enum - * constant object should be overridden. - * - * @return title - */ - public String getTitle() { - return Character.toUpperCase(id.charAt(0)) + id.substring(1, id.length()); - } - - public Object getDefaultValue() { - return defaultValue; - } - - public AttributeType getType() { - return type; - } - - public AttributeOrigin getOrigin() { - return origin; - } -} diff --git a/modules/AttributesAPI/src/main/nbm/manifest.mf b/modules/AttributesAPI/src/main/nbm/manifest.mf deleted file mode 100644 index 27c233815d..0000000000 --- a/modules/AttributesAPI/src/main/nbm/manifest.mf +++ /dev/null @@ -1,4 +0,0 @@ -Manifest-Version: 1.0 -OpenIDE-Module-Localizing-Bundle: org/gephi/data/attributes/api/Bundle.properties -AutoUpdate-Essential-Module: true -OpenIDE-Module-Specification-Version: ${gephi.modules.specification.version} \ No newline at end of file diff --git a/modules/AttributesAPI/src/main/nbm/module.xml b/modules/AttributesAPI/src/main/nbm/module.xml deleted file mode 100644 index 0e5106bbc8..0000000000 --- a/modules/AttributesAPI/src/main/nbm/module.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - diff --git a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/Bundle.properties b/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/Bundle.properties deleted file mode 100644 index 044dee36cb..0000000000 --- a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/Bundle.properties +++ /dev/null @@ -1,8 +0,0 @@ -OpenIDE-Module-Display-Category=Gephi Core -OpenIDE-Module-Long-Description=\ - Attributes API provides access to attributes values through an efficient column/row system. -OpenIDE-Module-Name=Attributes API -AttributeOrigin_property = Property -AttributeOrigin_data = Data -AttributeOrigin_computed_name = Computed -OpenIDE-Module-Short-Description=API for storing and retrieving attributes diff --git a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/Bundle_cs.properties b/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/Bundle_cs.properties deleted file mode 100644 index e19cb8eb02..0000000000 --- a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/Bundle_cs.properties +++ /dev/null @@ -1,17 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Zbyn\u011bk Schwarz , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-02-29 19\:39+0000\nLast-Translator\: Zbyn\u011bk Schwarz \nLanguage-Team\: Czech (http\://www.transifex.com/projects/p/gephi/language/cs/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: cs\nPlural-Forms\: nplurals\=3; plural\=(n\=\=1) ? 0 \: (n>\=2 && n<\=4) ? 1 \: 2;\n - -OpenIDE-Module-Long-Description=API vlastnost\u00ed poskytuje p\u0159\u00edstup k hodnot\u00e1m vlastnost\u00ed pomoc\u00ed \u00fa\u010dinn\u00e9ho syst\u00e9mu sloupec/\u0159\u00e1dek. - -AttributeOrigin_property=Vlastnost - -AttributeOrigin_data=Data - -AttributeOrigin_computed_name=Spo\u010d\u00edt\u00e1no - -OpenIDE-Module-Short-Description=API pro ukl\u00e1d\u00e1n\u00ed a z\u00edsk\u00e1v\u00e1n\u00ed vlastnost\u00ed diff --git a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/Bundle_es.properties b/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/Bundle_es.properties deleted file mode 100644 index 0e79084b3e..0000000000 --- a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/Bundle_es.properties +++ /dev/null @@ -1,17 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-04 19\:12+0000\nLast-Translator\: gephi \nLanguage-Team\: Spanish (http\://www.transifex.com/projects/p/gephi/language/es/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: es\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n - -OpenIDE-Module-Long-Description=Attributes API proporciona acceso a valores de atributos mediante un sistema eficiente de filas/columnas. - -AttributeOrigin_property=Propiedad - -AttributeOrigin_data=Dato - -AttributeOrigin_computed_name=Calculado - -OpenIDE-Module-Short-Description=API para almacenar y recuperar atributos diff --git a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/Bundle_fr.properties b/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/Bundle_fr.properties deleted file mode 100644 index 4dea6ebcd8..0000000000 --- a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/Bundle_fr.properties +++ /dev/null @@ -1,17 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-04 19\:12+0000\nLast-Translator\: gephi \nLanguage-Team\: French (http\://www.transifex.com/projects/p/gephi/language/fr/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fr\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -OpenIDE-Module-Long-Description=Attributes API donne acc\u00e8s aux valeurs d'attribut \u00e0 travers un syst\u00e8me efficace de lignes/colonnes. - -AttributeOrigin_property=Propri\u00e9t\u00e9 - -AttributeOrigin_data=Donn\u00e9e - -AttributeOrigin_computed_name=Calcul\u00e9 - -OpenIDE-Module-Short-Description=API de stockage et de r\u00e9cup\u00e9ration d'attributs diff --git a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/Bundle_ja.properties b/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/Bundle_ja.properties deleted file mode 100644 index 63f30d5ee8..0000000000 --- a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/Bundle_ja.properties +++ /dev/null @@ -1,17 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-29 18\:30+0000\nLast-Translator\: Siro Kida \nLanguage-Team\: Japanese (http\://www.transifex.com/projects/p/gephi/language/ja/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ja\nPlural-Forms\: nplurals\=1; plural\=0;\n - -OpenIDE-Module-Long-Description=\u5c5e\u6027API\u306f\u3001\u52b9\u7387\u7684\u306a\u5217/\u884c\u306e\u30b7\u30b9\u30c6\u30e0\u3092\u4f7f\u7528\u3057\u3066\u5c5e\u6027\u5024\u3078\u306e\u30a2\u30af\u30bb\u30b9\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002 - -AttributeOrigin_property=\u30d7\u30ed\u30d1\u30c6\u30a3 - -AttributeOrigin_data=\u30c7\u30fc\u30bf - -AttributeOrigin_computed_name=\u8a08\u7b97\u3055\u308c\u305f - -OpenIDE-Module-Short-Description=\u5c5e\u6027\u3092\u683c\u7d0d\u304a\u3088\u3073\u53d6\u5f97\u3059\u308b\u305f\u3081\u306eAPI diff --git a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/Bundle_oc.properties b/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/Bundle_oc.properties deleted file mode 100644 index 8934731197..0000000000 --- a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/Bundle_oc.properties +++ /dev/null @@ -1,16 +0,0 @@ -# Occitan (post 1500) translation for gephi -# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 -# This file is distributed under the same license as the gephi package. -# FIRST AUTHOR , 2010. -# -!=Project-Id-Version\: gephi\nReport-Msgid-Bugs-To\: FULL NAME \nPOT-Creation-Date\: 2010-04-07 13\:16+0200\nPO-Revision-Date\: 2010-10-21 13\:36+0000\nLast-Translator\: C\u00e9dric VALMARY (Tot en \u00f2c) \nLanguage-Team\: Occitan (post 1500) \nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nX-Launchpad-Export-Date\: 2011-03-13 04\:46+0000\nX-Generator\: Launchpad (build 12559)\n - -OpenIDE-Module-Long-Description=Attributes API balha acc\u00e8s a las valors d'atribut a trav\u00e8rs un sist\u00e8ma efica\u00e7 de linhas/colomnas. - -AttributeOrigin_property=Proprietat - -AttributeOrigin_data=Donada - -AttributeOrigin_computed_name=Calculat - -OpenIDE-Module-Short-Description=API d'emmagazinatge e de recuperacion d'atributs diff --git a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/Bundle_pt_BR.properties b/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/Bundle_pt_BR.properties deleted file mode 100644 index 3fe0d5e520..0000000000 --- a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/Bundle_pt_BR.properties +++ /dev/null @@ -1,17 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# C\u00e9lio CJr , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-05 16\:43+0000\nLast-Translator\: C\u00e9lio Faria Jr. \nLanguage-Team\: Portuguese (Brazil) (http\://www.transifex.com/projects/p/gephi/language/pt_BR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt_BR\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -OpenIDE-Module-Long-Description=A API de atributos fornece acesso aos valores de atributos por meio de um sistema eficiente de colunas e linhas. - -AttributeOrigin_property=Propriedade - -AttributeOrigin_data=Dado - -AttributeOrigin_computed_name=Calculado - -OpenIDE-Module-Short-Description=API de armazenamento e recupera\u00e7\u00e3o de dados diff --git a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/Bundle_ru.properties b/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/Bundle_ru.properties deleted file mode 100644 index 6a3f25ed8d..0000000000 --- a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/Bundle_ru.properties +++ /dev/null @@ -1,17 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-04 19\:14+0000\nLast-Translator\: gephi \nLanguage-Team\: Russian (http\://www.transifex.com/projects/p/gephi/language/ru/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ru\nPlural-Forms\: nplurals\=3; plural\=(n%10\=\=1 && n%100\!\=11 ? 0 \: n%10>\=2 && n%10<\=4 && (n%100<10 || n%100>\=20) ? 1 \: 2);\n - -OpenIDE-Module-Long-Description=API \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c\u0438 \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u0445 \u0441\u0442\u0440\u043e\u043a \u0438 \u043a\u043e\u043b\u043e\u043d\u043e\u043a. - -AttributeOrigin_property=\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u043e - -AttributeOrigin_data=\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 - -AttributeOrigin_computed_name=\u0420\u0430\u0441\u0447\u0438\u0442\u0430\u043d\u043e - -OpenIDE-Module-Short-Description=API \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c diff --git a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/Bundle_zh_CN.properties b/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/Bundle_zh_CN.properties deleted file mode 100644 index d756040e44..0000000000 --- a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/Bundle_zh_CN.properties +++ /dev/null @@ -1,16 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-08 00\:21+0000\nLast-Translator\: gephi \nLanguage-Team\: Chinese (China) (http\://www.transifex.com/projects/p/gephi/language/zh_CN/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: zh_CN\nPlural-Forms\: nplurals\=1; plural\=0;\n - -OpenIDE-Module-Long-Description=\u5c5e\u6027\u5e94\u7528\u7a0b\u5e8f\u63a5\u53e3\u63d0\u4f9b\u4e86\u4e00\u4e2a\u901a\u8fc7\u6709\u6548\u7684\u5217/\u884c\u7cfb\u7edf\u6765\u8bbf\u95ee\u5c5e\u6027\u503c\u3002 - -AttributeOrigin_property=\u5c5e\u6027 - -AttributeOrigin_data=\u6570\u636e - -AttributeOrigin_computed_name=\u8ba1\u7b97 - -OpenIDE-Module-Short-Description=\u7528\u4e8e\u5b58\u50a8\u548c\u63d0\u53d6\u5c5e\u6027\u7684\u5e94\u7528\u7a0b\u5e8f\u63a5\u53e3 diff --git a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/cs.po b/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/cs.po deleted file mode 100644 index c0310c2035..0000000000 --- a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/cs.po +++ /dev/null @@ -1,34 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# ZbynΔ›k Schwarz , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-02-29 19:39+0000\n" -"Last-Translator: ZbynΔ›k Schwarz \n" -"Language-Team: Czech (http://www.transifex.com/projects/p/gephi/language/cs/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: cs\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "API vlastnostΓ­ poskytuje pΕ™Γ­stup k hodnotΓ‘m vlastnostΓ­ pomocΓ­ účinnΓ©ho systΓ©mu sloupec/Ε™Γ‘dek." - -msgid "AttributeOrigin_property" -msgstr "Vlastnost" - -msgid "AttributeOrigin_data" -msgstr "Data" - -msgid "AttributeOrigin_computed_name" -msgstr "SpočítΓ‘no" - -msgid "OpenIDE-Module-Short-Description" -msgstr "API pro uklΓ‘dΓ‘nΓ­ a zΓ­skΓ‘vΓ‘nΓ­ vlastnostΓ­" diff --git a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/es.po b/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/es.po deleted file mode 100644 index 9c20403e7b..0000000000 --- a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/es.po +++ /dev/null @@ -1,34 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-04 19:12+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/gephi/language/es/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "Attributes API proporciona acceso a valores de atributos mediante un sistema eficiente de filas/columnas." - -msgid "AttributeOrigin_property" -msgstr "Propiedad" - -msgid "AttributeOrigin_data" -msgstr "Dato" - -msgid "AttributeOrigin_computed_name" -msgstr "Calculado" - -msgid "OpenIDE-Module-Short-Description" -msgstr "API para almacenar y recuperar atributos" diff --git a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/fr.po b/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/fr.po deleted file mode 100644 index 3ec84483d8..0000000000 --- a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/fr.po +++ /dev/null @@ -1,34 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-04 19:12+0000\n" -"Last-Translator: gephi \n" -"Language-Team: French (http://www.transifex.com/projects/p/gephi/language/fr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "Attributes API donne accΓ¨s aux valeurs d'attribut Γ  travers un systΓ¨me efficace de lignes/colonnes." - -msgid "AttributeOrigin_property" -msgstr "PropriΓ©tΓ©" - -msgid "AttributeOrigin_data" -msgstr "DonnΓ©e" - -msgid "AttributeOrigin_computed_name" -msgstr "CalculΓ©" - -msgid "OpenIDE-Module-Short-Description" -msgstr "API de stockage et de rΓ©cupΓ©ration d'attributs" diff --git a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/ja.po b/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/ja.po deleted file mode 100644 index 7cba586294..0000000000 --- a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/ja.po +++ /dev/null @@ -1,34 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-29 18:30+0000\n" -"Last-Translator: Siro Kida \n" -"Language-Team: Japanese (http://www.transifex.com/projects/p/gephi/language/ja/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ja\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "ε±žζ€§APIγ―γ€εŠΉηŽ‡ηš„γͺεˆ—/葌γγ‚·γ‚Ήγƒ†γƒ γ‚’δ½Ώη”¨γ—γ¦ε±žζ€§ε€€γΈγγ‚’クセスを提供します。" - -msgid "AttributeOrigin_property" -msgstr "プロパティ" - -msgid "AttributeOrigin_data" -msgstr "データ" - -msgid "AttributeOrigin_computed_name" -msgstr "計η—γ•γ‚ŒγŸ" - -msgid "OpenIDE-Module-Short-Description" -msgstr "ε±žζ€§γ‚’ζ Όη΄γŠγ‚ˆγ³ε–εΎ—γ™γ‚‹γŸγ‚γAPI" diff --git a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/org-gephi-data-attributes-api.pot b/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/org-gephi-data-attributes-api.pot deleted file mode 100644 index 14dcae5ed1..0000000000 --- a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/org-gephi-data-attributes-api.pot +++ /dev/null @@ -1,33 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# Gephi Team , 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: Gephi 0.8\n" -"Report-Msgid-Bugs-To: gephi.team@lists.launchpad.net\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-05 14:52+0200\n" -"Last-Translator: Mathieu Bastian \n" -"Language-Team: English \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "" -"Attributes API provides access to attributes values through an efficient " -"column/row system." - -msgid "AttributeOrigin_property" -msgstr "Property" - -msgid "AttributeOrigin_data" -msgstr "Data" - -msgid "AttributeOrigin_computed_name" -msgstr "Computed" - -msgid "OpenIDE-Module-Short-Description" -msgstr "API for storing and retrieving attributes" diff --git a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/package.html b/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/package.html deleted file mode 100644 index d7d215089c..0000000000 --- a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/package.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - General API that defines the data structure, attributes associated to elements. -

    - Gephi uses Attribute API to store all data for elements (nodes, edges) - that are specific to the data manipulated - i.e. imported from a file - or a datasource. -

    -

    - The AttributeController is managing models and is the - access door to the system. This controller is a service, and can be - retrieved by using the following command: -

    -

    AttributeController ac = Lookup.getDefault().lookup(AttributeController.class);

    -

    - Using the Attributes API, it is possible to add data columns of any type, - and push data to rows dynamically. -

    - - diff --git a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/pt_BR.po b/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/pt_BR.po deleted file mode 100644 index a64208a21e..0000000000 --- a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/pt_BR.po +++ /dev/null @@ -1,34 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# CΓ©lio CJr , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-05 16:43+0000\n" -"Last-Translator: CΓ©lio Faria Jr. \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/gephi/language/pt_BR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "A API de atributos fornece acesso aos valores de atributos por meio de um sistema eficiente de colunas e linhas." - -msgid "AttributeOrigin_property" -msgstr "Propriedade" - -msgid "AttributeOrigin_data" -msgstr "Dado" - -msgid "AttributeOrigin_computed_name" -msgstr "Calculado" - -msgid "OpenIDE-Module-Short-Description" -msgstr "API de armazenamento e recuperaΓ§Γ£o de dados" diff --git a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/ru.po b/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/ru.po deleted file mode 100644 index e53559b8b3..0000000000 --- a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/ru.po +++ /dev/null @@ -1,34 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-04 19:14+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Russian (http://www.transifex.com/projects/p/gephi/language/ru/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "API доступа ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ прСдоставляСт эффСктивный ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… строк ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ." - -msgid "AttributeOrigin_property" -msgstr "Бвойство" - -msgid "AttributeOrigin_data" -msgstr "Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅" - -msgid "AttributeOrigin_computed_name" -msgstr "Расчитано" - -msgid "OpenIDE-Module-Short-Description" -msgstr "API доступа ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ" diff --git a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/zh_CN.po b/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/zh_CN.po deleted file mode 100644 index 53ca8b4f4e..0000000000 --- a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/api/zh_CN.po +++ /dev/null @@ -1,33 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-08 00:21+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/gephi/language/zh_CN/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "ε±žζ€§εΊ”η”¨η¨‹εΊζŽ₯口提供了一δΈͺι€šθΏ‡ζœ‰ζ•ˆηš„εˆ—/葌系统ζ₯θΏι—ε±žζ€§ε€Όγ€‚" - -msgid "AttributeOrigin_property" -msgstr "ε±žζ€§" - -msgid "AttributeOrigin_data" -msgstr "ζ•°ζ" - -msgid "AttributeOrigin_computed_name" -msgstr "θ‘η—" - -msgid "OpenIDE-Module-Short-Description" -msgstr "η”¨δΊŽε­˜ε‚¨ε’Œζε–ε±žζ€§ηš„εΊ”η”¨η¨‹εΊζŽ₯口" diff --git a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/type/package.html b/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/type/package.html deleted file mode 100644 index 61335a99d7..0000000000 --- a/modules/AttributesAPI/src/main/resources/org/gephi/data/attributes/type/package.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - Defines new immutable types that can represent attributes. -

    - Defines more complex type of data than Java doesn't provide. Types defined - here may be supported by {@link org.gephi.data.attributes.api.AttributeType} and exploited by others - API. -

    - - diff --git a/modules/AttributesAPI/src/main/resources/overview.html b/modules/AttributesAPI/src/main/resources/overview.html deleted file mode 100644 index fb99d54574..0000000000 --- a/modules/AttributesAPI/src/main/resources/overview.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - Attributes API provides access to attributes values through an - efficient column/row system. -

    - Attributes are data associated to elements like node or edge. - Various kind of data can be set for each element. The API allows to - define data columns with a title and a type in tables - and then creates row to push data values. By default, there are two - tables: node and edge. -

    - - diff --git a/modules/AttributesAPI/src/test/java/org/gephi/data/attributes/type/DynamicParserTest.java b/modules/AttributesAPI/src/test/java/org/gephi/data/attributes/type/DynamicParserTest.java deleted file mode 100644 index 2c6f4a0460..0000000000 --- a/modules/AttributesAPI/src/test/java/org/gephi/data/attributes/type/DynamicParserTest.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - Copyright 2008-2012 Gephi - Authors : Eduardo Ramos - Website : http://www.gephi.org - - This file is part of Gephi. - - DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - - Copyright 2011 Gephi Consortium. All rights reserved. - - The contents of this file are subject to the terms of either the GNU - General Public License Version 3 only ("GPL") or the Common - Development and Distribution License("CDDL") (collectively, the - "License"). You may not use this file except in compliance with the - License. You can obtain a copy of the License at - http://gephi.org/about/legal/license-notice/ - or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the - specific language governing permissions and limitations under the - License. When distributing the software, include this License Header - Notice in each file and include the License files at - /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the - License Header, with the fields enclosed by brackets [] replaced by - your own identifying information: - "Portions Copyrighted [year] [name of copyright owner]" - - If you wish your version of this file to be governed by only the CDDL - or only the GPL Version 3, indicate your decision by adding - "[Contributor] elects to include this software in this distribution - under the [CDDL or GPL Version 3] license." If you do not indicate a - single choice of license, a recipient has the option to distribute - your version of this file under either the CDDL, the GPL Version 3 or - to extend the choice of license to its licensees as provided above. - However, if you add GPL Version 3 code and therefore, elected the GPL - Version 3 license, then the option applies only if the new code is - made subject to such option by the copyright holder. - - Contributor(s): - - Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.data.attributes.type; - -import org.gephi.data.attributes.api.AttributeType; -import static org.junit.Assert.*; -import org.junit.Test; - -/** - * - * @author Eduardo Ramos - */ -public class DynamicParserTest { - - private String parseDynamic(String str){ - return parseDynamic(str, AttributeType.DYNAMIC_STRING); - } - - private String parseDynamic(String str, AttributeType type){ - return type.parse(str).toString(); - } - - @Test - public void testParseIntervals() throws Exception { - assertEquals(parseDynamic("[2.0, 3.5, \"; A3R; JJG; JJG\"); [3.5, 8.0, \"; A3R; JJG; [ ] () , JJG\"]; [10,20,30]") - , "<[2.0, 3.5, \"; A3R; JJG; JJG\"); [3.5, 8.0, \"; A3R; JJG; [ ] () , JJG\"]; [10.0, 20.0, 30]>"); - - assertEquals(parseDynamic("<[' 2.0', '3.5', ';a b c')") - , "<[2.0, 3.5, \";a b c\")>"); - - assertEquals(parseDynamic(" ( 1, 2, ) (4,5, '[\\'a;b\\']']") - , "<(1.0, 2.0); (4.0, 5.0, \"['a;b']\"]>"); - - assertEquals(parseDynamic("[1.25,1.55, ]"), "<[1.25, 1.55, ]>"); - assertEquals(parseDynamic("[1.25,'1.55' ]"), "<[1.25, 1.55, ]>"); - - assertEquals(parseDynamic("[1.25,1.55, \"21.12 \" ]", AttributeType.DYNAMIC_DOUBLE), "<[1.25, 1.55, 21.12]>"); - - assertEquals(parseDynamic("[1.25,1.55]", AttributeType.DYNAMIC_DOUBLE), "<[1.25, 1.55]>"); - - assertEquals(parseDynamic("[1.25,1.55]", AttributeType.TIME_INTERVAL), "<[1.25, 1.55]>"); - } -} diff --git a/modules/AttributesImpl/pom.xml b/modules/AttributesImpl/pom.xml deleted file mode 100644 index 7cc6ed598c..0000000000 --- a/modules/AttributesImpl/pom.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - 4.0.0 - - gephi-parent - org.gephi - 0.9-SNAPSHOT - ../.. - - - org.gephi - attributes - 0.9-SNAPSHOT - nbm - - AttributesImpl - - - - ${project.groupId} - data-attributes-api - - - ${project.groupId} - graph-api - - - org.netbeans.api - org-openide-util - - - org.netbeans.api - org-openide-util-lookup - - - ${project.groupId} - project-api - - - - - - - org.codehaus.mojo - nbm-maven-plugin - - - org.gephi.data.attributes.spi - - - - - - diff --git a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/AbstractAttributeModel.java b/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/AbstractAttributeModel.java deleted file mode 100644 index 0765e0e1bd..0000000000 --- a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/AbstractAttributeModel.java +++ /dev/null @@ -1,195 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian , Martin Ε kurla -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.data.attributes; - -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentMap; -import org.gephi.data.attributes.api.AttributeListener; -import org.gephi.data.attributes.api.AttributeModel; -import org.gephi.data.attributes.api.AttributeRowFactory; -import org.gephi.data.attributes.api.AttributeTable; -import org.gephi.data.attributes.api.AttributeType; -import org.gephi.data.attributes.api.AttributeValueFactory; -import org.gephi.data.attributes.event.AbstractEvent; -import org.gephi.data.attributes.event.AttributeEventManager; -import org.gephi.data.properties.PropertiesColumn; -import org.gephi.project.api.Workspace; -import org.openide.util.NbBundle; - -/** - * - * @author Mathieu Bastian - * @author Martin Ε kurla - */ -public abstract class AbstractAttributeModel implements AttributeModel { - - private final Workspace workspace; - //Classes - private final ConcurrentMap tableMap; - private final AttributeTableImpl nodeTable; - private final AttributeTableImpl edgeTable; - private final AttributeTableImpl graphTable; - //Factory - private final AttributeFactoryImpl factory; - //Events - protected AttributeEventManager eventManager; - - //Data API - public AbstractAttributeModel(Workspace workspace) { - this.workspace = workspace; - tableMap = new ConcurrentHashMap(); - nodeTable = new AttributeTableImpl(this, NbBundle.getMessage(AttributeTableImpl.class, "NodeAttributeTable.name")); - edgeTable = new AttributeTableImpl(this, NbBundle.getMessage(AttributeTableImpl.class, "EdgeAttributeTable.name")); - graphTable = new AttributeTableImpl(this, NbBundle.getMessage(AttributeTableImpl.class, "GraphAttributeTable.name")); - tableMap.put(nodeTable.name, nodeTable); - tableMap.put(edgeTable.name, edgeTable); - tableMap.put(graphTable.name, graphTable); - factory = new AttributeFactoryImpl(this); - } - - protected void createPropertiesColumn() { - // !!! the position of PropertiesColumn enum constants in following arrays must be the same - // !!! as index in each constant - PropertiesColumn[] columnsForNodeTable = {PropertiesColumn.NODE_ID, - PropertiesColumn.NODE_LABEL}; - PropertiesColumn[] columnsForEdgeTable = {PropertiesColumn.EDGE_ID, - PropertiesColumn.EDGE_LABEL, - PropertiesColumn.EDGE_WEIGHT}; - PropertiesColumn[] columnsForGraphTable = {PropertiesColumn.GRAPH_NAME, - PropertiesColumn.GRAPH_DESCRIPTION}; - - for (PropertiesColumn columnForNodeTable : columnsForNodeTable) { - nodeTable.addPropertiesColumn(columnForNodeTable); - } - - for (PropertiesColumn columnForEdgeTable : columnsForEdgeTable) { - edgeTable.addPropertiesColumn(columnForEdgeTable); - } - - for (PropertiesColumn columnForGraphTable : columnsForGraphTable) { - graphTable.addPropertiesColumn(columnForGraphTable); - } - } - - public abstract Object getManagedValue(Object obj, AttributeType attributeType); - - public void clear() { - } - - public AttributeTableImpl getNodeTable() { - return nodeTable; - } - - public AttributeTableImpl getGraphTable() { - return graphTable; - } - - public AttributeTableImpl getEdgeTable() { - return edgeTable; - } - - public AttributeTableImpl getTable(String name) { - AttributeTableImpl attTable = tableMap.get(name); - if (attTable != null) { - return attTable; - } - return null; - } - - public AttributeTableImpl[] getTables() { - return tableMap.values().toArray(new AttributeTableImpl[0]); - } - - public AttributeRowFactory rowFactory() { - return factory; - } - - public AttributeValueFactory valueFactory() { - return factory; - } - - public AttributeFactoryImpl getFactory() { - return factory; - } - - public void addTable(AttributeTableImpl table) { - tableMap.put(table.getName(), table); - } - - public void addAttributeListener(AttributeListener listener) { - eventManager.addAttributeListener(listener); - } - - public void removeAttributeListener(AttributeListener listener) { - eventManager.removeAttributeListener(listener); - } - - public void fireAttributeEvent(AbstractEvent event) { - eventManager.fireEvent(event); - } - - public void mergeModel(AttributeModel model) { - if (model.getNodeTable() != null) { - nodeTable.mergeTable(model.getNodeTable()); - } - if (model.getEdgeTable() != null) { - edgeTable.mergeTable(model.getEdgeTable()); - } - - for (AttributeTable table : model.getTables()) { - if (table != model.getNodeTable() && table != model.getEdgeTable()) { - AttributeTable existingTable = tableMap.get(table.getName()); - if (existingTable != null) { - ((AttributeTableImpl) existingTable).mergeTable(table); - } else { - AttributeTableImpl newTable = new AttributeTableImpl(this, table.getName()); - tableMap.put(newTable.getName(), newTable); - newTable.mergeTable(table); - } - } - } - } - - public Workspace getWorkspace(){ - return this.workspace; - } -} diff --git a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/AttributeColumnImpl.java b/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/AttributeColumnImpl.java deleted file mode 100644 index 72b6069612..0000000000 --- a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/AttributeColumnImpl.java +++ /dev/null @@ -1,129 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian , Martin Ε kurla -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes; - -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeOrigin; -import org.gephi.data.attributes.api.AttributeType; -import org.gephi.data.attributes.spi.AttributeValueDelegateProvider; - -/** - * - * @author Mathieu Bastian - * @author Martin Ε kurla - */ -public class AttributeColumnImpl implements AttributeColumn { - - protected final AttributeTableImpl table; - protected int index; - protected final String id; - protected final String title; - protected final AttributeType type; - protected final AttributeOrigin origin; - protected final AttributeValueImpl defaultValue; - protected final AttributeValueDelegateProvider attributeValueDelegateProvider; - - public AttributeColumnImpl(AttributeTableImpl table, int index, String id, String title, AttributeType attributeType, AttributeOrigin origin, Object defaultValue, AttributeValueDelegateProvider attributeValueDelegateProvider) { - this.table = table; - this.index = index; - this.id = id; - this.type = attributeType; - this.title = title; - this.origin = origin; - this.attributeValueDelegateProvider = attributeValueDelegateProvider; - this.defaultValue = new AttributeValueImpl(this, defaultValue); - } - - public AttributeTableImpl getTable() { - return table; - } - - public AttributeType getType() { - return type; - } - - public String getTitle() { - return title; - } - - public int getIndex() { - return index; - } - - public AttributeOrigin getOrigin() { - return origin; - } - - public String getId() { - return id; - } - - public Object getDefaultValue() { - return defaultValue.getValue(); - } - - public AttributeValueDelegateProvider getProvider() { - return attributeValueDelegateProvider; - } - - @Override - public String toString() { - return title + " (" + type.toString() + ")"; - } - - @Override - public boolean equals(Object obj) { - if (obj instanceof AttributeColumn) { - AttributeColumnImpl o = (AttributeColumnImpl) obj; - return id.equals(o.id) && o.type == type; - } - return false; - } - - @Override - public int hashCode() { - int hash = 3; - hash = 53 * hash + (this.id != null ? this.id.hashCode() : 0); - hash = 53 * hash + (this.type != null ? this.type.hashCode() : 0); - return hash; - } -} diff --git a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/AttributeControllerImpl.java b/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/AttributeControllerImpl.java deleted file mode 100644 index 3dee13ae64..0000000000 --- a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/AttributeControllerImpl.java +++ /dev/null @@ -1,125 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.data.attributes; - -import org.gephi.data.attributes.api.AttributeController; -import org.gephi.data.attributes.api.AttributeModel; -import org.gephi.data.attributes.model.IndexedAttributeModel; -import org.gephi.data.attributes.model.TemporaryAttributeModel; -import org.gephi.project.api.ProjectController; -import org.gephi.project.api.Workspace; -import org.gephi.project.api.WorkspaceListener; -import org.gephi.project.api.WorkspaceProvider; -import org.openide.util.Lookup; -import org.openide.util.lookup.ServiceProvider; - -/** - * - * @author Mathieu Bastian - */ -@ServiceProvider(service = AttributeController.class) -public class AttributeControllerImpl implements AttributeController { - - private ProjectController projectController; - - public AttributeControllerImpl() { - projectController = Lookup.getDefault().lookup(ProjectController.class); - projectController.addWorkspaceListener(new WorkspaceListener() { - - public void initialize(Workspace workspace) { - AttributeModel m = workspace.getLookup().lookup(AttributeModel.class); - if (m == null) { - workspace.add(new IndexedAttributeModel(workspace)); - } - } - - public void select(Workspace workspace) { - } - - public void unselect(Workspace workspace) { - } - - public void close(Workspace workspace) { - } - - public void disable() { - } - }); - if (projectController.getCurrentProject() != null) { - for (Workspace workspace : projectController.getCurrentProject().getLookup().lookup(WorkspaceProvider.class).getWorkspaces()) { - AttributeModel m = workspace.getLookup().lookup(AttributeModel.class); - if (m == null) { - workspace.add(new IndexedAttributeModel(workspace)); - } - } - } - } - - public synchronized AttributeModel getModel() { - Workspace workspace = projectController.getCurrentWorkspace(); - if (workspace != null) { - AttributeModel model = workspace.getLookup().lookup(AttributeModel.class); - if (model != null) { - return model; - } - model = new IndexedAttributeModel(workspace); - workspace.add(model); - return model; - } - return null; - } - - public synchronized AttributeModel getModel(Workspace workspace) { - AttributeModel model = workspace.getLookup().lookup(AttributeModel.class); - if (model != null) { - return model; - } - model = new IndexedAttributeModel(workspace); - workspace.add(model); - return model; - } - - public AttributeModel newModel() { - TemporaryAttributeModel model = new TemporaryAttributeModel(null); - return model; - } -} diff --git a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/AttributeFactoryImpl.java b/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/AttributeFactoryImpl.java deleted file mode 100644 index cc4dc7ff80..0000000000 --- a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/AttributeFactoryImpl.java +++ /dev/null @@ -1,115 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.data.attributes; - -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeOrigin; -import org.gephi.data.attributes.api.AttributeRow; -import org.gephi.data.attributes.api.AttributeRowFactory; -import org.gephi.data.attributes.api.AttributeType; -import org.gephi.data.attributes.api.AttributeValue; -import org.gephi.data.attributes.api.AttributeValueFactory; -import org.gephi.graph.api.EdgeData; -import org.gephi.graph.api.GraphView; -import org.gephi.graph.api.NodeData; - -/** - * - * @author Mathieu Bastian - */ -public class AttributeFactoryImpl implements AttributeValueFactory, AttributeRowFactory { - - private AbstractAttributeModel model; - - public AttributeFactoryImpl(AbstractAttributeModel model) { - this.model = model; - } - - public AttributeValue newValue(AttributeColumn column, Object value) { - if (value == null) { - return new AttributeValueImpl((AttributeColumnImpl) column, null); - } - - //If the column is not a delegate (wrong type value allowed), try to convert value to correct type if necessary - if(!column.getOrigin().equals(AttributeOrigin.DELEGATE)){ - AttributeType targetType = column.getType(); - if (!value.getClass().equals(targetType.getType())) { - try { - value = targetType.parse(value.toString());//Try to convert to target type - } catch (Exception ex) { - return new AttributeValueImpl((AttributeColumnImpl) column, null);//Could not parse - } - } - } - - - Object managedValue = value; - if (!column.getOrigin().equals(AttributeOrigin.PROPERTY)) { - managedValue = model.getManagedValue(value, column.getType()); - } - return new AttributeValueImpl((AttributeColumnImpl) column, managedValue); - } - - public AttributeRowImpl newNodeRow(NodeData nodeData) { - return new AttributeRowImpl(model.getNodeTable(), nodeData); - } - - public AttributeRowImpl newEdgeRow(EdgeData edgeData) { - return new AttributeRowImpl(model.getEdgeTable(), edgeData); - } - - public AttributeRow newGraphRow(GraphView graphView) { - return new AttributeRowImpl(model.getGraphTable(), graphView); - } - - public AttributeRowImpl newRowForTable(String tableName, Object object) { - AttributeTableImpl attTable = model.getTable(tableName); - if (attTable != null) { - return new AttributeRowImpl(attTable, object); - } - return null; - } - - public void setModel(AbstractAttributeModel model) { - this.model = model; - } -} diff --git a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/AttributeModelDuplicateProvider.java b/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/AttributeModelDuplicateProvider.java deleted file mode 100644 index 5486195276..0000000000 --- a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/AttributeModelDuplicateProvider.java +++ /dev/null @@ -1,66 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.data.attributes; - -import org.gephi.data.attributes.api.AttributeController; -import org.gephi.data.attributes.api.AttributeModel; -import org.gephi.project.api.Workspace; -import org.gephi.project.spi.WorkspaceDuplicateProvider; -import org.openide.util.Lookup; -import org.openide.util.lookup.ServiceProvider; - -/** - * - * @author Mathieu Bastian - */ -@ServiceProvider(service = WorkspaceDuplicateProvider.class, position = 10) -public class AttributeModelDuplicateProvider implements WorkspaceDuplicateProvider { - - public void duplicate(Workspace source, Workspace destination) { - AttributeController controller = Lookup.getDefault().lookup(AttributeController.class); - AttributeModel sourceModel = controller.getModel(source); - AttributeModel destModel = controller.getModel(destination); - if (sourceModel != null && destModel != null) { - destModel.mergeModel(sourceModel); - } - } -} diff --git a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/AttributeRowImpl.java b/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/AttributeRowImpl.java deleted file mode 100644 index 0e9c3561ad..0000000000 --- a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/AttributeRowImpl.java +++ /dev/null @@ -1,268 +0,0 @@ -/* - Copyright 2008-2010 Gephi - Authors : Mathieu Bastian , Cezary Bartosiak - Website : http://www.gephi.org - - This file is part of Gephi. - - DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - - Copyright 2011 Gephi Consortium. All rights reserved. - - The contents of this file are subject to the terms of either the GNU - General Public License Version 3 only ("GPL") or the Common - Development and Distribution License("CDDL") (collectively, the - "License"). You may not use this file except in compliance with the - License. You can obtain a copy of the License at - http://gephi.org/about/legal/license-notice/ - or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the - specific language governing permissions and limitations under the - License. When distributing the software, include this License Header - Notice in each file and include the License files at - /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the - License Header, with the fields enclosed by brackets [] replaced by - your own identifying information: - "Portions Copyrighted [year] [name of copyright owner]" - - If you wish your version of this file to be governed by only the CDDL - or only the GPL Version 3, indicate your decision by adding - "[Contributor] elects to include this software in this distribution - under the [CDDL or GPL Version 3] license." If you do not indicate a - single choice of license, a recipient has the option to distribute - your version of this file under either the CDDL, the GPL Version 3 or - to extend the choice of license to its licensees as provided above. - However, if you add GPL Version 3 code and therefore, elected the GPL - Version 3 license, then the option applies only if the new code is - made subject to such option by the copyright holder. - - Contributor(s): - - Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.data.attributes; - -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeEvent.EventType; -import org.gephi.data.attributes.api.AttributeOrigin; -import org.gephi.data.attributes.api.AttributeRow; -import org.gephi.data.attributes.api.AttributeType; -import org.gephi.data.attributes.api.AttributeValue; -import org.gephi.data.attributes.event.ValueEvent; - -/** - * - * @author Mathieu Bastian - * @author Cezary Bartosiak - */ -public class AttributeRowImpl implements AttributeRow { - - protected final Object object; - protected final AttributeTableImpl attributeTable; - protected AttributeValueImpl[] values; - protected int rowVersion = -1; - - public AttributeRowImpl(AttributeTableImpl attributeTable, Object object) { - this.attributeTable = attributeTable; - this.object = object; - reset(); - } - - public void reset() { - rowVersion = attributeTable.getVersion(); - int attSize = attributeTable.countColumns(); - - if (values == null) { - values = new AttributeValueImpl[attSize]; - } else { - updateColumns(); - } - - for (int i = 0; i < attSize; i++) { - setValue(i, attributeTable.getColumn(i).defaultValue, false); - } - } - - public void setValues(AttributeRow attributeRow) { - if (attributeRow == null) { - throw new NullPointerException(); - } - AttributeValue[] attValues = attributeRow.getValues(); - for (int i = 0; i < attValues.length; i++) { - setValue(attValues[i]); - } - } - - public void setValue(int index, Object value) { - AttributeColumn column = attributeTable.getColumn(index); - if (column != null) { - setValue(column, value); - } else { - throw new IllegalArgumentException("The column doesn't exist"); - } - } - - public void setValue(String column, Object value) { - if (column == null) { - throw new NullPointerException("Column is null"); - } - AttributeColumn attributeColumn = attributeTable.getColumn(column); - if (attributeColumn != null) { - setValue(attributeColumn, value); - } else { - //add column - AttributeType type = AttributeType.parse(value); - //System.out.println("parsed value type: " + value.getClass()); - if (type != null) { - attributeColumn = attributeTable.addColumn(column, type); - setValue(attributeColumn, value); - } - } - } - - public void setValue(AttributeColumn column, Object value) { - if (column == null) { - throw new NullPointerException("Column is null"); - } - - AttributeValue attValue = attributeTable.getFactory().newValue(column, value); - setValue(attValue); - } - - public void setValue(AttributeValue value) { - AttributeColumn column = value.getColumn(); - if (attributeTable.getColumn(column.getIndex()) != column) { - column = attributeTable.getColumn(column); - if (column == null) { - throw new IllegalArgumentException("The " + attributeTable.getName() + " value column " + value.getColumn().getId() + " with index " + value.getColumn().getIndex() + " doesn't exist"); - } - value = attributeTable.getFactory().newValue(column, value.getValue()); - } - - setValue(column.getIndex(), (AttributeValueImpl) value, true); - } - - private void setValue(int index, AttributeValueImpl value, boolean doUpdateColumns) { - if (doUpdateColumns) { - updateColumns(); - } - - AttributeValueImpl oldValue = this.values[index]; - - this.values[index] = value; - - if (!(oldValue != null && oldValue.equals(value)) - && index > 0 && !value.getColumn().getOrigin().equals(AttributeOrigin.COMPUTED)) { //0 is the index of node id and edge id cols, not useful to send these events - if (oldValue != null) { - attributeTable.model.fireAttributeEvent(new ValueEvent(EventType.UNSET_VALUE, attributeTable, object, oldValue)); - } - attributeTable.model.fireAttributeEvent(new ValueEvent(EventType.SET_VALUE, attributeTable, object, value)); - } - } - - public Object getValue(AttributeColumn column) { - if (column == null) { - throw new NullPointerException(); - } - updateColumns(); - int index = column.getIndex(); - if (checkIndexRange(index)) { - AttributeValue val = values[index]; - if (val.getColumn() == column) { - return val.getValue(); - } - } - return null; - } - - public Object getValue(int index) { - updateColumns(); - if (checkIndexRange(index)) { - AttributeColumn attributeColumn = attributeTable.getColumn(index); - return getValue(attributeColumn); - } - return null; - } - - public Object getValue(String column) { - updateColumns(); - AttributeColumn attributeColumn = attributeTable.getColumn(column); - if (attributeColumn != null) { - return getValue(attributeColumn); - } - return null; - } - - public AttributeValue[] getValues() { - return values; - } - - public AttributeValue getAttributeValueAt(int index) { - if (checkIndexRange(index)) { - return values[index]; - } - return null; - } - - public int countValues() { - updateColumns(); - return values.length; - } - - public AttributeColumn getColumnAt(int index) { - updateColumns(); - return attributeTable.getColumn(index); - } - - public Object getObject() { - return object; - } - - private void updateColumns() { - int tableVersion = attributeTable.getVersion(); - if (rowVersion < tableVersion) { - - //Need to update - AttributeColumnImpl[] columns = attributeTable.getColumns(); - AttributeValueImpl[] oldValues = values; - - values = new AttributeValueImpl[columns.length]; - - for (int i = 0; i < columns.length; i++) { - AttributeColumnImpl tableCol = columns[i]; - boolean found = false; - int j = 0; - while (j < oldValues.length) { - AttributeValueImpl val = oldValues[j++]; - if (val.getColumn() == tableCol) { - values[i] = val; - found = true; - break; - } - } - - if (!found) { - setValue(i, tableCol.defaultValue, false); - } - } - - //Upd version - rowVersion = tableVersion; - } - } - - private boolean checkIndexRange(int index) { - return index < values.length && index >= 0; - } - - public int getRowVersion() { - return rowVersion; - } - - public void setRowVersion(int rowVersion) { - this.rowVersion = rowVersion; - } - - public void setValues(AttributeValueImpl[] values) { - this.values = values; - } -} diff --git a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/AttributeTableImpl.java b/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/AttributeTableImpl.java deleted file mode 100644 index bc50a9a4ea..0000000000 --- a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/AttributeTableImpl.java +++ /dev/null @@ -1,349 +0,0 @@ -/* - Copyright 2008-2010 Gephi - Authors : Mathieu Bastian , Martin Ε kurla - Website : http://www.gephi.org - - This file is part of Gephi. - - DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - - Copyright 2011 Gephi Consortium. All rights reserved. - - The contents of this file are subject to the terms of either the GNU - General Public License Version 3 only ("GPL") or the Common - Development and Distribution License("CDDL") (collectively, the - "License"). You may not use this file except in compliance with the - License. You can obtain a copy of the License at - http://gephi.org/about/legal/license-notice/ - or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the - specific language governing permissions and limitations under the - License. When distributing the software, include this License Header - Notice in each file and include the License files at - /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the - License Header, with the fields enclosed by brackets [] replaced by - your own identifying information: - "Portions Copyrighted [year] [name of copyright owner]" - - If you wish your version of this file to be governed by only the CDDL - or only the GPL Version 3, indicate your decision by adding - "[Contributor] elects to include this software in this distribution - under the [CDDL or GPL Version 3] license." If you do not indicate a - single choice of license, a recipient has the option to distribute - your version of this file under either the CDDL, the GPL Version 3 or - to extend the choice of license to its licensees as provided above. - However, if you add GPL Version 3 code and therefore, elected the GPL - Version 3 license, then the option applies only if the new code is - made subject to such option by the copyright holder. - - Contributor(s): - - Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.data.attributes; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.logging.Level; -import java.util.logging.Logger; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeEvent; -import org.gephi.data.attributes.api.AttributeOrigin; -import org.gephi.data.attributes.api.AttributeTable; -import org.gephi.data.attributes.api.AttributeType; -import org.gephi.data.attributes.api.AttributeUtils; -import org.gephi.data.attributes.event.ColumnEvent; -import org.gephi.data.attributes.spi.AttributeValueDelegateProvider; -import org.gephi.data.attributes.type.TypeConvertor; -import org.gephi.data.properties.PropertiesColumn; -import org.gephi.graph.api.Attributes; -import org.gephi.graph.api.Edge; -import org.gephi.graph.api.GraphController; -import org.gephi.graph.api.GraphModel; -import org.gephi.graph.api.Node; -import org.openide.util.Lookup; - -/** - * - * @author Mathieu Bastian - * @author Martin Ε kurla - */ -public class AttributeTableImpl implements AttributeTable { - - protected String name; - protected final AbstractAttributeModel model; - //Listeners - //Columns - protected final List columns = new ArrayList(); - protected final Map columnsSet = new HashMap(); - protected final Map columnsMap = new HashMap(); - //Version - protected int version = 0; - - public AttributeTableImpl(AbstractAttributeModel model, String name) { - this.name = name; - this.model = model; - } - - public synchronized AttributeColumnImpl[] getColumns() { - return columns.toArray(new AttributeColumnImpl[]{}); - } - - public synchronized int countColumns() { - return columns.size(); - } - - public AttributeColumn addPropertiesColumn(PropertiesColumn propertiesColumn) { - return addColumn(propertiesColumn.getId(), - propertiesColumn.getTitle(), - propertiesColumn.getType(), - propertiesColumn.getOrigin(), - propertiesColumn.getDefaultValue()); - } - - public AttributeColumnImpl addColumn(String id, AttributeType type) { - return addColumn(id, id, type, AttributeOrigin.DATA, null, null); - } - - public AttributeColumnImpl addColumn(String id, AttributeType type, AttributeOrigin origin) { - return addColumn(id, id, type, origin, null, null); - } - - public AttributeColumnImpl addColumn(String id, String title, AttributeType type, AttributeOrigin origin, Object defaultValue) { - return addColumn(id, title, type, origin, defaultValue, null); - } - - public AttributeColumn addColumn(String id, String title, AttributeType type, AttributeValueDelegateProvider attributeValueDelegateProvider, Object defaultValue) { - return addColumn(id, title, type, AttributeOrigin.DELEGATE, defaultValue, attributeValueDelegateProvider); - } - - private synchronized AttributeColumnImpl addColumn(String id, String title, AttributeType type, AttributeOrigin origin, Object defaultValue, AttributeValueDelegateProvider attributeValueDelegateProvider) { - if (id == null || id.isEmpty() || hasColumn(id)) { - throw new IllegalArgumentException("The column id can't be null, empty or already existing in the table"); - } - - if (title == null || title.isEmpty() || hasColumn(title)) { - //The id is correct, but the title may be invalid or repeated even when the id is valid - //Use id as title as a compromise so the column can still be added: - - Logger.getLogger(AttributeTableImpl.class.getName()).log(Level.WARNING, "Invalid or repeated column title ({0}), used column id as its title instead", title); - title = id; - } - - if (defaultValue != null) { - if (defaultValue.getClass() != type.getType()) { - if (defaultValue.getClass() == String.class) { - defaultValue = type.parse((String) defaultValue); - } else { - throw new IllegalArgumentException("The default value type cannot be cast to the type"); - } - } - defaultValue = model.getManagedValue(defaultValue, type); - } - AttributeColumnImpl column = new AttributeColumnImpl(this, columns.size(), id, title, type, origin, defaultValue, attributeValueDelegateProvider); - columns.add(column); - columnsMap.put(id.toLowerCase(), column); - if (title != null && !title.equals(id)) { - columnsMap.put(title.toLowerCase(), column); - } - columnsSet.put(column, column); - - //Version - version++; - - model.fireAttributeEvent( - new ColumnEvent(AttributeEvent.EventType.ADD_COLUMN, column)); - - return column; - } - - /** - * Sends unset events for all attribute rows of a column that is going to be removed. (This is basically necessary to correctly update Dynamic index of Dynamic API.) - * - * Events are only sent for node, edge and graph table columns. - * - * @param column Column that is being removed - */ - private boolean sendUnsetValueEventsForRemovedColumn(AttributeColumn column) { - if (this.model.getWorkspace() == null) { - return false; - } - - GraphModel graphModel = Lookup.getDefault().lookup(GraphController.class).getModel(this.model.getWorkspace()); - Attributes[] rows; - - if (AttributeUtils.getDefault().isNodeColumn(column)) { - Node[] nodes = graphModel.getGraph().getNodes().toArray(); - rows = new Attributes[nodes.length]; - - for (int i = 0; i < nodes.length; i++) { - rows[i] = nodes[i].getAttributes(); - } - } else if (AttributeUtils.getDefault().isEdgeColumn(column)) { - Edge[] edges = graphModel.getGraph().getEdges().toArray(); - rows = new Attributes[edges.length]; - - for (int i = 0; i < edges.length; i++) { - rows[i] = edges[i].getAttributes(); - } - } else if (AttributeUtils.getDefault().isGraphColumn(column)) { - rows = new Attributes[]{graphModel.getGraph().getAttributes()}; - } else { - return false; - } - - int columnIndex = column.getIndex(); - - for (Attributes row : rows) { - row.setValue(columnIndex, null); - } - - return true; - } - - public synchronized void removeColumn(AttributeColumn column) { - int index = columns.indexOf(column); - if (index == -1) { - return; - } - - sendUnsetValueEventsForRemovedColumn(column); - - //update indexes of the next columns of the one to delete: - AttributeColumnImpl c; - for (index = index + 1; index < columns.size(); index++) { - c = columns.get(index); - c.index--; - } - //Remove from collections - columns.remove((AttributeColumnImpl) column); - columnsMap.remove(column.getId().toLowerCase()); - if (column.getTitle() != null && !column.getTitle().equals(column.getId())) { - columnsMap.remove(column.getTitle().toLowerCase()); - } - columnsSet.remove(column); - - model.fireAttributeEvent( - new ColumnEvent(AttributeEvent.EventType.REMOVE_COLUMN, (AttributeColumnImpl) column)); - - //Version - version++; - } - - public synchronized AttributeColumn replaceColumn(AttributeColumn source, AttributeColumnImpl targetImpl) { - int index = columns.indexOf(source); - if (index == -1) { - return null; - } - - sendUnsetValueEventsForRemovedColumn(source); - - //Remove from collections - columnsMap.remove(source.getId().toLowerCase()); - if (source.getTitle() != null && !source.getTitle().equals(source.getId())) { - columnsMap.remove(source.getTitle().toLowerCase()); - } - columnsSet.remove(source); - - //Add - targetImpl.index = index; - columns.set(index, targetImpl); - columnsMap.put(targetImpl.id.toLowerCase(), targetImpl); - if (targetImpl.title != null && !targetImpl.title.equals(targetImpl.id)) { - columnsMap.put(targetImpl.title.toLowerCase(), targetImpl); - } - columnsSet.put(targetImpl, targetImpl); - - model.fireAttributeEvent( - new ColumnEvent(AttributeEvent.EventType.REPLACE_COLUMN, (AttributeColumnImpl) source)); - - //Version - version++; - return targetImpl; - } - - public synchronized AttributeColumn replaceColumn(AttributeColumn source, String id, String title, AttributeType type, AttributeOrigin origin, Object defaultValue) { - if (defaultValue != null) { - if (defaultValue.getClass() != type.getType()) { - if (defaultValue.getClass() == String.class) { - defaultValue = type.parse((String) defaultValue); - } else { - throw new IllegalArgumentException("The default value type cannot be cast to the type"); - } - } - defaultValue = model.getManagedValue(defaultValue, type); - } - AttributeColumnImpl targetImpl = new AttributeColumnImpl(this, columns.size(), id, title, type, origin, defaultValue, null); - return replaceColumn(source, targetImpl); - } - - public synchronized AttributeColumnImpl getColumn(int index) { - if (index >= 0 && index < columns.size()) { - return columns.get(index); - } - - return null; - } - - public synchronized AttributeColumnImpl getColumn(String id) { - return columnsMap.get(id.toLowerCase()); - } - - public synchronized AttributeColumnImpl getColumn(String title, AttributeType type) { - AttributeColumnImpl c = columnsMap.get(title.toLowerCase()); - if (c != null && c.getType().equals(type)) { - return c; - } - return null; - } - - public synchronized AttributeColumn getColumn(AttributeColumn column) { - return columnsSet.get(column); - } - - public synchronized boolean hasColumn(String title) { - return columnsMap.containsKey(title.toLowerCase()); - } - - public synchronized int getVersion() { - return version; - } - - public void setVersion(int version) { - this.version = version; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public AttributeFactoryImpl getFactory() { - return model.getFactory(); - } - - public AbstractAttributeModel getModel() { - return model; - } - - public synchronized void mergeTable(AttributeTable table) { - for (AttributeColumn column : table.getColumns()) { - AttributeColumn existingCol = getColumn(column); - if (existingCol == null) { - existingCol = getColumn(column.getTitle()); - } - if (existingCol == null) { - addColumn(column.getId(), column.getTitle(), column.getType(), column.getOrigin(), column.getDefaultValue()); - } else if (column.getType().isDynamicType() && TypeConvertor.getStaticType(column.getType()).equals(existingCol.getType())) { - //The column exists but has the underlying static type - //Change type - AttributeColumnImpl newCol = new AttributeColumnImpl(this, existingCol.getIndex(), existingCol.getId(), existingCol.getTitle(), column.getType(), existingCol.getOrigin(), column.getDefaultValue(), null); - replaceColumn(existingCol, newCol); - } - } - } -} diff --git a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/AttributeUtilsImpl.java b/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/AttributeUtilsImpl.java deleted file mode 100644 index d1377ac462..0000000000 --- a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/AttributeUtilsImpl.java +++ /dev/null @@ -1,297 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian , Martin Ε kurla -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.data.attributes; - -import java.util.ArrayList; -import java.util.List; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeModel; -import org.gephi.data.attributes.api.AttributeTable; -import org.gephi.data.attributes.api.AttributeType; -import org.gephi.data.attributes.api.AttributeUtils; -import org.gephi.data.attributes.type.NumberList; -import org.openide.util.lookup.ServiceProvider; - -/** - * - * @author Mathieu Bastian - * @author Martin Ε kurla - */ -@ServiceProvider(service = AttributeUtils.class) -public class AttributeUtilsImpl extends AttributeUtils { - - @Override - public boolean isColumnOfType(AttributeColumn column, AttributeType type) { - return column.getType() == type; - } - - @Override - public boolean areAllColumnsOfType(AttributeColumn[] columns, AttributeType type) { - for (AttributeColumn column : columns) { - if (!isColumnOfType(column, type)) { - return false; - } - } - return true; - } - - @Override - public boolean areAllColumnsOfSameType(AttributeColumn[] columns) { - if (columns.length == 0) { - return false; - } - AttributeType type = columns[0].getType(); - return areAllColumnsOfType(columns, type); - } - - @Override - public boolean isStringColumn(AttributeColumn column) { - return column.getType().equals(AttributeType.STRING) || column.getType().equals(AttributeType.LIST_STRING); - } - - @Override - public boolean areAllStringColumns(AttributeColumn[] columns) { - for (AttributeColumn column : columns) { - if (!isStringColumn(column)) { - return false; - } - } - return true; - } - - @Override - public boolean isNumberColumn(AttributeColumn column) { - AttributeType attributeType = column.getType(); - return Number.class.isAssignableFrom(attributeType.getType()); - } - - @Override - public boolean areAllNumberColumns(AttributeColumn[] columns) { - for (AttributeColumn column : columns) { - if (!isNumberColumn(column)) { - return false; - } - } - return true; - } - - @Override - public boolean isNumberListColumn(AttributeColumn column) { - AttributeType attributeType = column.getType(); - return NumberList.class.isAssignableFrom(attributeType.getType()); - } - - @Override - public boolean areAllNumberListColumns(AttributeColumn[] columns) { - for (AttributeColumn column : columns) { - if (!isNumberListColumn(column)) { - return false; - } - } - return true; - } - - @Override - public boolean isNumberOrNumberListColumn(AttributeColumn column) { - return isNumberColumn(column) || isNumberListColumn(column); - } - - @Override - public boolean areAllNumberOrNumberListColumns(AttributeColumn[] columns) { - for (AttributeColumn column : columns) { - if (!isNumberOrNumberListColumn(column)) { - return false; - } - } - return true; - } - - public boolean isDynamicNumberColumn(AttributeColumn column) { - switch (column.getType()) { - case DYNAMIC_BIGDECIMAL: - case DYNAMIC_BIGINTEGER: - case DYNAMIC_BYTE: - case DYNAMIC_DOUBLE: - case DYNAMIC_FLOAT: - case DYNAMIC_INT: - case DYNAMIC_LONG: - case DYNAMIC_SHORT: - return true; - default: - return false; - } - } - - public boolean areAllDynamicNumberColumns(AttributeColumn[] columns) { - for (AttributeColumn column : columns) { - if (!isDynamicNumberColumn(column)) { - return false; - } - } - return true; - } - - @Override - @SuppressWarnings({"rawtypes", "unchecked"}) - public Comparable getMin(AttributeColumn column, Comparable[] values) { - if (!isNumberColumn(column) && !isDynamicNumberColumn(column)) { - throw new IllegalArgumentException("Colun must be a number column"); - } - - switch (values.length) { - case 0: - return null; - case 1: - return values[0]; - // values.length > 1 - default: - Comparable min = values[0]; - - for (int index = 1; index < values.length; index++) { - Comparable o = values[index]; - if (o.compareTo(min) < 0) { - min = o; - } - } - - return min; - } - } - - @Override - @SuppressWarnings({"rawtypes", "unchecked"}) - public Comparable getMax(AttributeColumn column, Comparable[] values) { - if (!isNumberColumn(column) && !isDynamicNumberColumn(column)) { - throw new IllegalArgumentException("Colun must be a number column"); - } - - switch (values.length) { - case 0: - return null; - case 1: - return values[0]; - // values.length > 1 - default: - Comparable max = values[0]; - - for (int index = 1; index < values.length; index++) { - Comparable o = values[index]; - if (o.compareTo(max) > 0) { - max = o; - } - } - - return max; - } - } - - @Override - public boolean isNodeColumn(AttributeColumn column) { - if (column == null) { - throw new NullPointerException(); - } - AttributeColumnImpl columnImpl = (AttributeColumnImpl) column; - AttributeTableImpl table = columnImpl.getTable(); - if (table == table.getModel().getNodeTable()) { - return true; - } - return false; - } - - @Override - public boolean isEdgeColumn(AttributeColumn column) { - if (column == null) { - throw new NullPointerException(); - } - AttributeColumnImpl columnImpl = (AttributeColumnImpl) column; - AttributeTableImpl table = columnImpl.getTable(); - if (table == table.getModel().getEdgeTable()) { - return true; - } - return false; - } - - @Override - public boolean isGraphColumn(AttributeColumn column) { - if (column == null) { - throw new NullPointerException(); - } - AttributeColumnImpl columnImpl = (AttributeColumnImpl) column; - AttributeTableImpl table = columnImpl.getTable(); - if (table == table.getModel().getGraphTable()) { - return true; - } - return false; - } - - @Override - public AttributeColumn[] getNumberColumns(AttributeTable table) { - List res = new ArrayList(); - for (AttributeColumn c : table.getColumns()) { - if (isNumberColumn(c)) { - res.add(c); - } - } - return res.toArray(new AttributeColumn[0]); - } - - @Override - public AttributeColumn[] getStringColumns(AttributeTable table) { - List res = new ArrayList(); - for (AttributeColumn c : table.getColumns()) { - if (isStringColumn(c)) { - res.add(c); - } - } - return res.toArray(new AttributeColumn[0]); - } - - @Override - public AttributeColumn[] getAllCollums(AttributeModel model) { - List cols = new ArrayList(); - for (AttributeTable t : model.getTables()) { - AttributeTableImpl tableImpl = (AttributeTableImpl) t; - cols.addAll(tableImpl.columns); - } - return cols.toArray(new AttributeColumn[0]); - } -} diff --git a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/AttributeValueImpl.java b/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/AttributeValueImpl.java deleted file mode 100644 index 4463f511cf..0000000000 --- a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/AttributeValueImpl.java +++ /dev/null @@ -1,123 +0,0 @@ -/* - Copyright 2008-2010 Gephi - Authors : Mathieu Bastian , Martin Ε kurla - Website : http://www.gephi.org - - This file is part of Gephi. - - DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - - Copyright 2011 Gephi Consortium. All rights reserved. - - The contents of this file are subject to the terms of either the GNU - General Public License Version 3 only ("GPL") or the Common - Development and Distribution License("CDDL") (collectively, the - "License"). You may not use this file except in compliance with the - License. You can obtain a copy of the License at - http://gephi.org/about/legal/license-notice/ - or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the - specific language governing permissions and limitations under the - License. When distributing the software, include this License Header - Notice in each file and include the License files at - /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the - License Header, with the fields enclosed by brackets [] replaced by - your own identifying information: - "Portions Copyrighted [year] [name of copyright owner]" - - If you wish your version of this file to be governed by only the CDDL - or only the GPL Version 3, indicate your decision by adding - "[Contributor] elects to include this software in this distribution - under the [CDDL or GPL Version 3] license." If you do not indicate a - single choice of license, a recipient has the option to distribute - your version of this file under either the CDDL, the GPL Version 3 or - to extend the choice of license to its licensees as provided above. - However, if you add GPL Version 3 code and therefore, elected the GPL - Version 3 license, then the option applies only if the new code is - made subject to such option by the copyright holder. - - Contributor(s): - - Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.data.attributes; - -import org.gephi.data.attributes.api.AttributeOrigin; -import org.gephi.data.attributes.api.AttributeValue; -import org.gephi.data.attributes.spi.AttributeValueDelegateProvider; - -/** - * - * @author Mathieu Bastian - * @author Martin Ε kurla - */ -public final class AttributeValueImpl implements AttributeValue { - - private final AttributeColumnImpl column; - private final Object value; - - public AttributeValueImpl(AttributeColumnImpl column, Object value) { - this.column = column; - this.value = value; - } - - public AttributeColumnImpl getColumn() { - return column; - } - - public Object getValue() { - if (column.getOrigin() != AttributeOrigin.DELEGATE) { - return value; - } else { - if (value == null) { - return null; - } - - AttributeValueDelegateProvider attributeValueDelegateProvider = column.getProvider(); - - Object result; - if (AttributeUtilsImpl.getDefault().isEdgeColumn(column)) { - result = attributeValueDelegateProvider.getEdgeAttributeValue(value, column); - } else if (AttributeUtilsImpl.getDefault().isNodeColumn(column)) { - result = attributeValueDelegateProvider.getNodeAttributeValue(value, column); - } else { - throw new AssertionError(); - } - - if(result != null && result.getClass() != column.getType().getType()){ - //Try to parse to correct column type if the delegate provides a wrong type value: - Object convertedValue = column.getType().parse(value.toString()); - if(convertedValue != null){ - result = convertedValue; - } - } - - // important for Neo4j and in future also for other storing engines - // the conversion can be necessary because of types mismatch - // for Neo4j return type can be array of primitive type which must be - // converted into List type - if (result != null && result.getClass().isArray()) { - result = ListFactory.fromArray(result); - } - - return result; - } - } - - @Override - public boolean equals(Object obj) { - if (obj != null && obj instanceof AttributeValue) { - if (this == obj) { - return true; - } - Object thisVal = this.getValue(); - Object objVal = ((AttributeValue) obj).getValue(); - if (thisVal == null && objVal == null) { - return true; - } - if (thisVal != null && objVal != null && thisVal.equals(objVal)) { - return true; - } - } - return false; - } -} diff --git a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/ListFactory.java b/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/ListFactory.java deleted file mode 100644 index 03371eae98..0000000000 --- a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/ListFactory.java +++ /dev/null @@ -1,121 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Martin Ε kurla -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ - -package org.gephi.data.attributes; - -import java.math.BigDecimal; -import java.math.BigInteger; -import org.gephi.data.attributes.type.AbstractList; -import org.gephi.data.attributes.type.BigDecimalList; -import org.gephi.data.attributes.type.BigIntegerList; -import org.gephi.data.attributes.type.BooleanList; -import org.gephi.data.attributes.type.ByteList; -import org.gephi.data.attributes.type.CharacterList; -import org.gephi.data.attributes.type.DoubleList; -import org.gephi.data.attributes.type.FloatList; -import org.gephi.data.attributes.type.IntegerList; -import org.gephi.data.attributes.type.LongList; -import org.gephi.data.attributes.type.ShortList; -import org.gephi.data.attributes.type.StringList; - -/** - * - * @author Martin Ε kurla - */ -public class ListFactory { - private ListFactory() {} - - public static AbstractList fromArray(Object array) { - Class componentType = array.getClass().getComponentType(); - - if (componentType == byte.class) - return new ByteList((byte[]) array); - else if (componentType == Byte.class) - return new ByteList((Byte[]) array); - - else if (componentType == short.class) - return new ShortList((short[]) array); - else if (componentType == Short.class) - return new ShortList((Short[]) array); - - else if (componentType == int.class) - return new IntegerList((int[]) array); - else if (componentType == Integer.class) - return new IntegerList((Integer[]) array); - - else if (componentType == long.class) - return new LongList((long[]) array); - else if (componentType == Long.class) - return new LongList((Long[]) array); - - else if (componentType == float.class) - return new FloatList((float[]) array); - else if (componentType == Float.class) - return new FloatList((Float[]) array); - - else if (componentType == double.class) - return new DoubleList((double[]) array); - else if (componentType == Double.class) - return new DoubleList((Double[]) array); - - else if (componentType == boolean.class) - return new BooleanList((boolean[]) array); - else if (componentType == Boolean.class) - return new BooleanList((Boolean[]) array); - - else if (componentType == char.class) - return new CharacterList((char[]) array); - else if (componentType == Character.class) - return new CharacterList((Character[]) array); - - else if (componentType == String.class) - return new StringList((String[]) array); - - else if (componentType == BigInteger.class) - return new BigIntegerList((BigInteger[]) array); - - else if (componentType == BigDecimal.class) - return new BigDecimalList((BigDecimal[]) array); - - throw new AssertionError(); - } -} diff --git a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/event/AbstractEvent.java b/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/event/AbstractEvent.java deleted file mode 100644 index dce9da6bc9..0000000000 --- a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/event/AbstractEvent.java +++ /dev/null @@ -1,76 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ - -package org.gephi.data.attributes.event; - -import org.gephi.data.attributes.api.AttributeEvent; -import org.gephi.data.attributes.api.AttributeEvent.EventType; -import org.gephi.data.attributes.api.AttributeTable; - -/** - * - * @author Mathieu Bastian - */ -public abstract class AbstractEvent { - - private final AttributeEvent.EventType eventType; - private final AttributeTable table; - private final T data; - - public AbstractEvent(EventType eventType, AttributeTable table, T data) { - this.eventType = eventType; - this.table = table; - this.data = data; - } - - public T getData() { - return data; - } - - public EventType getEventType() { - return eventType; - } - - public AttributeTable getAttributeTable() { - return table; - } -} diff --git a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/event/AttributeEventDataImpl.java b/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/event/AttributeEventDataImpl.java deleted file mode 100644 index 0480ae098b..0000000000 --- a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/event/AttributeEventDataImpl.java +++ /dev/null @@ -1,85 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.data.attributes.event; - -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeEventData; -import org.gephi.data.attributes.api.AttributeValue; - -/** - * - * @author Mathieu Bastian - */ -public class AttributeEventDataImpl implements AttributeEventData { - - private AttributeColumn[] columns; - private AttributeValue[] values; - private Object[] objects; - - public AttributeColumn[] getAddedColumns() { - return columns; - } - - public AttributeColumn[] getRemovedColumns() { - return columns; - } - - public AttributeValue[] getTouchedValues() { - return values; - } - - public Object[] getTouchedObjects() { - return objects; - } - - public void setColumns(AttributeColumn[] columns) { - this.columns = columns; - } - - public void setValues(AttributeValue[] values) { - this.values = values; - } - - public void setObjects(Object[] objects) { - this.objects = objects; - } -} diff --git a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/event/AttributeEventImpl.java b/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/event/AttributeEventImpl.java deleted file mode 100644 index 0c7ae8effb..0000000000 --- a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/event/AttributeEventImpl.java +++ /dev/null @@ -1,84 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.data.attributes.event; - -import org.gephi.data.attributes.api.AttributeEvent; -import org.gephi.data.attributes.api.AttributeEventData; -import org.gephi.data.attributes.api.AttributeTable; - -/** - * - * @author Mathieu Bastian - */ -public final class AttributeEventImpl implements AttributeEvent { - - private final EventType type; - private final AttributeTable source; - private final AttributeEventData data; - - public AttributeEventImpl(EventType type, AttributeTable source, AttributeEventData data) { - this.type = type; - this.source = source; - this.data = data; - } - - public EventType getEventType() { - return type; - } - - public AttributeTable getSource() { - return source; - } - - public AttributeEventData getData() { - return data; - } - - public boolean is(EventType... type) { - for (EventType t : type) { - if (t.equals(this.type)) { - return true; - } - } - return false; - } -} diff --git a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/event/AttributeEventManager.java b/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/event/AttributeEventManager.java deleted file mode 100644 index 5809c3b62d..0000000000 --- a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/event/AttributeEventManager.java +++ /dev/null @@ -1,216 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.data.attributes.event; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; -import java.util.concurrent.LinkedBlockingQueue; -import java.util.concurrent.atomic.AtomicReference; -import org.gephi.data.attributes.AbstractAttributeModel; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeEvent; -import org.gephi.data.attributes.api.AttributeListener; -import org.gephi.data.attributes.api.AttributeValue; - -/** - * - * @author Mathieu Bastian - */ -public class AttributeEventManager implements Runnable { - - //Const - private final static long DELAY = 100; - //Architecture - private final AbstractAttributeModel model; - private final List listeners; - private final AtomicReference thread = new AtomicReference(); - private final LinkedBlockingQueue eventQueue; - private final Object lock = new Object(); - private final LinkedList rateList = new LinkedList(); - private double avgRate = 1.0; - //Flag - private boolean stop; - - public AttributeEventManager(AbstractAttributeModel model) { - this.model = model; - this.eventQueue = new LinkedBlockingQueue(); - this.listeners = Collections.synchronizedList(new ArrayList()); - } - - @Override - public void run() { - int rate = 0; - while (!stop) { - if (rate == (int) avgRate) { - try { - Thread.sleep(DELAY); - } catch (InterruptedException ex) { - ex.printStackTrace(); - } - int w = (int) (eventQueue.size() * 0.1f); - w = Math.max(1, w); - updateRate(w); - rate++; - } - List eventCompress = null; - List eventCompressObjects = null; - - AbstractEvent precEvt = null; - AbstractEvent evt = null; - while ((evt = eventQueue.peek()) != null) { - if (precEvt != null) { - if ((evt instanceof ValueEvent || evt instanceof ColumnEvent) && precEvt.getEventType().equals(evt.getEventType()) && precEvt.getAttributeTable() == evt.getAttributeTable()) { //Same type - if (eventCompress == null) { - eventCompress = new ArrayList(); - eventCompress.add(precEvt.getData()); - } - if (evt instanceof ValueEvent) { - if (eventCompressObjects == null) { - eventCompressObjects = new ArrayList(); - eventCompressObjects.add(((ValueEvent) precEvt).getObject()); - } - eventCompressObjects.add(((ValueEvent) evt).getObject()); - } - - eventCompress.add(evt.getData()); - } else { - break; - } - } - eventQueue.poll(); - precEvt = evt; - } - - if (precEvt != null) { - AttributeEvent event = createEvent(precEvt, eventCompress, eventCompressObjects); - for (AttributeListener l : listeners.toArray(new AttributeListener[0])) { - l.attributesChanged(event); - } - } - rate++; - - while (eventQueue.isEmpty()) { - rate = (int) avgRate; - try { - synchronized (lock) { - lock.wait(); - } - } catch (InterruptedException e) { - } - } - } - } - - private AttributeEvent createEvent(AbstractEvent event, List compress, List compressObjects) { - final AttributeEventDataImpl eventData = new AttributeEventDataImpl(); - final AttributeEventImpl attributeEvent = new AttributeEventImpl(event.getEventType(), event.getAttributeTable(), eventData); - if (event instanceof ValueEvent) { - AttributeValue[] values; - Object[] objects; - if (compress != null) { - values = compress.toArray(new AttributeValue[0]); - objects = compressObjects.toArray(); - } else { - values = new AttributeValue[]{(AttributeValue) event.getData()}; - objects = new Object[]{((ValueEvent) event).getObject()}; - } - eventData.setValues(values); - eventData.setObjects(objects); - } else if (event instanceof ColumnEvent) { - AttributeColumn[] columns; - if (compress != null) { - columns = compress.toArray(new AttributeColumn[0]); - } else { - columns = new AttributeColumn[]{(AttributeColumn) event.getData()}; - } - eventData.setColumns(columns); - } - return attributeEvent; - } - - private double updateRate(int n) { - int windowLength = 10; - if (rateList.size() == windowLength) { - Integer oldest = rateList.poll(); - avgRate = ((avgRate * windowLength) - oldest) / (windowLength - 1); - } - avgRate = ((avgRate * rateList.size()) + n) / (rateList.size() + 1); - rateList.add(n); - return avgRate; - } - - public void stop(boolean stop) { - this.stop = stop; - } - - public void fireEvent(AbstractEvent event) { - eventQueue.add(event); - synchronized (lock) { - lock.notifyAll(); - } - } - - public void start() { - Thread t = new Thread(this); - t.setDaemon(true); - t.setName("attribute-event-bus"); - if (this.thread.compareAndSet(null, t)) { - t.start(); - } - } - - public boolean isRunning() { - return thread.get() != null; - } - - public void addAttributeListener(AttributeListener listener) { - if (!listeners.contains(listener)) { - listeners.add(listener); - } - } - - public void removeAttributeListener(AttributeListener listener) { - listeners.remove(listener); - } -} diff --git a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/event/ColumnEvent.java b/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/event/ColumnEvent.java deleted file mode 100644 index 13da3e524f..0000000000 --- a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/event/ColumnEvent.java +++ /dev/null @@ -1,57 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.data.attributes.event; - -import org.gephi.data.attributes.AttributeColumnImpl; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeEvent.EventType; - -/** - * - * @author Mathieu Bastian - */ -public class ColumnEvent extends AbstractEvent { - - public ColumnEvent(EventType eventType, AttributeColumnImpl data) { - super(eventType, data.getTable(), data); - } -} diff --git a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/event/ValueEvent.java b/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/event/ValueEvent.java deleted file mode 100644 index ce6ec79b07..0000000000 --- a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/event/ValueEvent.java +++ /dev/null @@ -1,64 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.data.attributes.event; - -import org.gephi.data.attributes.AttributeValueImpl; -import org.gephi.data.attributes.api.AttributeEvent.EventType; -import org.gephi.data.attributes.api.AttributeTable; - -/** - * - * @author Mathieu Bastian - */ -public class ValueEvent extends AbstractEvent { - - private Object object; - - public ValueEvent(EventType eventType, AttributeTable table, Object object, AttributeValueImpl data) { - super(eventType, table, data); - this.object = object; - } - - public Object getObject() { - return object; - } -} diff --git a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/model/DataIndex.java b/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/model/DataIndex.java deleted file mode 100644 index 73447bdb1d..0000000000 --- a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/model/DataIndex.java +++ /dev/null @@ -1,129 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian , Martin Ε kurla -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.model; - -import java.lang.ref.WeakReference; -import java.math.BigDecimal; -import java.math.BigInteger; -import java.util.HashMap; -import java.util.Map; -import java.util.WeakHashMap; -import org.gephi.data.attributes.api.AttributeRow; -import org.gephi.data.attributes.api.AttributeType; -import org.gephi.data.attributes.type.BigDecimalList; -import org.gephi.data.attributes.type.BigIntegerList; -import org.gephi.data.attributes.type.BooleanList; -import org.gephi.data.attributes.type.ByteList; -import org.gephi.data.attributes.type.CharacterList; -import org.gephi.data.attributes.type.DoubleList; -import org.gephi.data.attributes.type.FloatList; -import org.gephi.data.attributes.type.IntegerList; -import org.gephi.data.attributes.type.LongList; -import org.gephi.data.attributes.type.ShortList; -import org.gephi.data.attributes.type.StringList; -import org.gephi.data.attributes.type.TimeInterval; - -/** - * The index where values of the current {@link IndexedAttributeManager} are. This index stores the objects - * as {@link WeakReference}, so the {@link AttributeRow} may share the objects reference with this index. - * Moreover when no more objects possess a reference to a value, the {@link WeakReference} system - * (i.e. Garbage collector) will automatically clean the old references. - * - * @author Mathieu Bastian - * @author Martin Ε kurla - * @see AttributeType - */ -public class DataIndex { - @SuppressWarnings("rawtypes") - private static final Class[] SUPPORTED_TYPES = { - String.class, BigInteger.class, BigDecimal.class, TimeInterval.class, - ByteList.class, ShortList.class, IntegerList.class, LongList.class, - FloatList.class, DoubleList.class, BooleanList.class, CharacterList.class, - StringList.class, BigIntegerList.class, BigDecimalList.class}; - - @SuppressWarnings("rawtypes") - private static Map, WeakHashMap> centralHashMap; - - @SuppressWarnings("rawtypes") - public DataIndex() { - centralHashMap = new HashMap, WeakHashMap>(); - - for (Class supportedType : SUPPORTED_TYPES) - putInCentralMap(supportedType); - } - - private static void putInCentralMap(Class supportedType) { - centralHashMap.put(supportedType, new WeakHashMap>()); - } - - public int countEntries() { - int entries = 0; - - for (WeakHashMap weakHashMap : centralHashMap.values()) - entries += weakHashMap.size(); - - return entries; - } - - @SuppressWarnings("unchecked") - T pushData(T data) { - Class classObjectKey = data.getClass(); - WeakHashMap> weakHashMap = centralHashMap.get(classObjectKey); - - if (weakHashMap == null) - return data; - - WeakReference value = weakHashMap.get(data); - if (value == null) { - WeakReference weakRef = new WeakReference(data); - weakHashMap.put(data, weakRef); - return data; - } - - return value.get(); - } - - public void clear() { - for (WeakHashMap weakHashMap : centralHashMap.values()) - weakHashMap.clear(); - } -} diff --git a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/model/IndexedAttributeModel.java b/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/model/IndexedAttributeModel.java deleted file mode 100644 index a69ebf18a6..0000000000 --- a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/model/IndexedAttributeModel.java +++ /dev/null @@ -1,77 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian , Martin Ε kurla -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.data.attributes.model; - -import org.gephi.data.attributes.AbstractAttributeModel; -import org.gephi.data.attributes.api.AttributeType; -import org.gephi.data.attributes.event.AttributeEventManager; -import org.gephi.project.api.Workspace; - -/** - * - * @author Mathieu Bastian - * @author Martin Ε kurla - */ -public class IndexedAttributeModel extends AbstractAttributeModel { - - protected DataIndex dataIndex; - - public IndexedAttributeModel(Workspace workspace) { - super(workspace); - dataIndex = new DataIndex(); - eventManager = new AttributeEventManager(this); - createPropertiesColumn(); - - eventManager.start(); - } - - @Override - public Object getManagedValue(Object obj, AttributeType attributeType) { - return dataIndex.pushData(obj); - } - - @Override - public void clear() { - super.clear(); - dataIndex.clear(); - } -} diff --git a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/model/TemporaryAttributeModel.java b/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/model/TemporaryAttributeModel.java deleted file mode 100644 index 727b989c6a..0000000000 --- a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/model/TemporaryAttributeModel.java +++ /dev/null @@ -1,83 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.data.attributes.model; - -import org.gephi.data.attributes.AbstractAttributeModel; -import org.gephi.data.attributes.api.AttributeListener; -import org.gephi.data.attributes.api.AttributeType; -import org.gephi.data.attributes.event.AbstractEvent; -import org.gephi.project.api.Workspace; - -/** - * Specific manager for temporary storing of attributes. This is typically used when new attributes are - * imported in the system. No index system is required. - *

    - * - * @author Mathieu Bastian - * @see IndexedAttributeManager - */ -public class TemporaryAttributeModel extends AbstractAttributeModel { - - public TemporaryAttributeModel(Workspace workspace) { - super(workspace); - createPropertiesColumn(); - } - - @Override - public Object getManagedValue(Object obj, AttributeType attributeType) { - return obj; - } - - @Override - public void addAttributeListener(AttributeListener listener) { - throw new UnsupportedOperationException("Temporary Attribute Model doens't supper events"); - } - - @Override - public void removeAttributeListener(AttributeListener listener) { - throw new UnsupportedOperationException("Temporary Attribute Model doens't supper events"); - } - - @Override - public void fireAttributeEvent(AbstractEvent event) { - } -} diff --git a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/serialization/AttributeModelPersistenceProvider.java b/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/serialization/AttributeModelPersistenceProvider.java deleted file mode 100644 index 2cb4dd45cd..0000000000 --- a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/serialization/AttributeModelPersistenceProvider.java +++ /dev/null @@ -1,90 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.data.attributes.serialization; - -import javax.xml.stream.XMLStreamException; -import javax.xml.stream.XMLStreamReader; -import javax.xml.stream.XMLStreamWriter; -import org.gephi.data.attributes.AbstractAttributeModel; -import org.gephi.data.attributes.api.AttributeModel; -import org.gephi.data.attributes.model.IndexedAttributeModel; -import org.gephi.project.api.Workspace; -import org.gephi.project.spi.WorkspacePersistenceProvider; -import org.openide.util.lookup.ServiceProvider; - -/** - * - * @author Mathieu Bastian - */ -@ServiceProvider(service = WorkspacePersistenceProvider.class, position = 10) -public class AttributeModelPersistenceProvider implements WorkspacePersistenceProvider { - - public void writeXML(XMLStreamWriter writer, Workspace workspace) { - AttributeModel model = workspace.getLookup().lookup(AttributeModel.class); - AttributeModelSerializer serializer = new AttributeModelSerializer(); - if (model instanceof AbstractAttributeModel) { - try { - serializer.writeModel(writer, (AbstractAttributeModel) model); - } catch (XMLStreamException ex) { - throw new RuntimeException(ex); - } - } - } - - public void readXML(XMLStreamReader reader, Workspace workspace) { - IndexedAttributeModel model = workspace.getLookup().lookup(IndexedAttributeModel.class); - if (model == null) { - model = new IndexedAttributeModel(workspace); - workspace.add(model); - } - AttributeModelSerializer serializer = new AttributeModelSerializer(); - try { - serializer.readModel(reader, model); - } catch (XMLStreamException ex) { - throw new RuntimeException(ex); - } - } - - public String getIdentifier() { - return "attributemodel"; - } -} diff --git a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/serialization/AttributeModelSerializer.java b/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/serialization/AttributeModelSerializer.java deleted file mode 100644 index 9691a18124..0000000000 --- a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/serialization/AttributeModelSerializer.java +++ /dev/null @@ -1,239 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.data.attributes.serialization; - -import javax.xml.stream.XMLStreamException; -import javax.xml.stream.XMLStreamReader; -import javax.xml.stream.XMLStreamWriter; -import org.gephi.data.attributes.AbstractAttributeModel; -import org.gephi.data.attributes.AttributeColumnImpl; -import org.gephi.data.attributes.AttributeTableImpl; -import org.gephi.data.attributes.api.AttributeOrigin; -import org.gephi.data.attributes.api.AttributeType; - -/** - * - * @author Mathieu Bastian - */ -public class AttributeModelSerializer { - - private static final String ELEMENT_MODEL = "attributemodel"; - private static final String ELEMENT_TABLE = "table"; - private static final String ELEMENT_COLUMN = "column"; - private static final String ELEMENT_COLUMN_INDEX = "index"; - private static final String ELEMENT_COLUMN_ID = "id"; - private static final String ELEMENT_COLUMN_TITLE = "title"; - private static final String ELEMENT_COLUMN_TYPE = "type"; - private static final String ELEMENT_COLUMN_ORIGIN = "origin"; - private static final String ELEMENT_COLUMN_DEFAULT = "default"; - - public void writeModel(XMLStreamWriter writer, AbstractAttributeModel model) throws XMLStreamException { - writer.writeStartElement(ELEMENT_MODEL); - - if (model != null) { - for (AttributeTableImpl table : model.getTables()) { - writeTable(writer, table, model); - } - } - - writer.writeEndElement(); - } - - public void readModel(XMLStreamReader reader, AbstractAttributeModel model) throws XMLStreamException { - boolean end = false; - while (reader.hasNext() && !end) { - int type = reader.next(); - - switch (type) { - case XMLStreamReader.START_ELEMENT: - String name = reader.getLocalName(); - if (ELEMENT_TABLE.equalsIgnoreCase(name)) { - AttributeTableImpl table; - if (Boolean.parseBoolean(reader.getAttributeValue(null, "nodetable"))) { - table = model.getNodeTable(); - } else if (Boolean.parseBoolean(reader.getAttributeValue(null, "edgetable"))) { - table = model.getEdgeTable(); - } else if (Boolean.parseBoolean(reader.getAttributeValue(null, "graphtable"))) { - table = model.getGraphTable(); - } else { - table = new AttributeTableImpl(model, ""); - } - readTable(reader, table); - if (table != model.getNodeTable() && table != model.getEdgeTable() && table != model.getGraphTable()) { - model.addTable(table); - } - } - break; - case XMLStreamReader.END_ELEMENT: - if (ELEMENT_MODEL.equalsIgnoreCase(reader.getLocalName())) { - end = true; - } - break; - } - } - } - - public void writeTable(XMLStreamWriter writer, AttributeTableImpl table, AbstractAttributeModel model) throws XMLStreamException { - writer.writeStartElement(ELEMENT_TABLE); - - writer.writeAttribute("name", table.getName()); - writer.writeAttribute("version", String.valueOf(table.getVersion())); - writer.writeAttribute("nodetable", String.valueOf(table == model.getNodeTable())); - writer.writeAttribute("edgetable", String.valueOf(table == model.getEdgeTable())); - writer.writeAttribute("graphtable", String.valueOf(table == model.getGraphTable())); - - for (AttributeColumnImpl columnImpl : table.getColumns()) { - writeColumn(writer, columnImpl); - } - writer.writeEndElement(); - } - - public void readTable(XMLStreamReader reader, AttributeTableImpl table) throws XMLStreamException { - table.setName(reader.getAttributeValue(null, "name")); - int version = Integer.parseInt(reader.getAttributeValue(null, "version")); - - boolean end = false; - while (reader.hasNext() && !end) { - int type = reader.next(); - - switch (type) { - case XMLStreamReader.START_ELEMENT: - String name = reader.getLocalName(); - if (ELEMENT_COLUMN.equalsIgnoreCase(name)) { - readColumn(reader, table); - } - break; - case XMLStreamReader.END_ELEMENT: - if (ELEMENT_TABLE.equalsIgnoreCase(reader.getLocalName())) { - end = true; - } - break; - } - } - - table.setVersion(version); - } - - public void writeColumn(XMLStreamWriter writer, AttributeColumnImpl column) throws XMLStreamException { - writer.writeStartElement(ELEMENT_COLUMN); - - writer.writeStartElement(ELEMENT_COLUMN_INDEX); - writer.writeCharacters(String.valueOf(column.getIndex())); - writer.writeEndElement(); - - writer.writeStartElement(ELEMENT_COLUMN_ID); - writer.writeCharacters(String.valueOf(column.getId())); - writer.writeEndElement(); - - writer.writeStartElement(ELEMENT_COLUMN_TITLE); - writer.writeCharacters(String.valueOf(column.getTitle())); - writer.writeEndElement(); - - writer.writeStartElement(ELEMENT_COLUMN_TYPE); - writer.writeCharacters(column.getType().getTypeString()); - writer.writeEndElement(); - - writer.writeStartElement(ELEMENT_COLUMN_ORIGIN); - writer.writeCharacters(column.getOrigin().name()); - writer.writeEndElement(); - - writer.writeStartElement(ELEMENT_COLUMN_DEFAULT); - if (column.getDefaultValue() != null) { - writer.writeCharacters(column.getDefaultValue().toString()); - } - writer.writeEndElement(); - - writer.writeEndElement(); - } - - public void readColumn(XMLStreamReader reader, AttributeTableImpl table) throws XMLStreamException { - - int index = 0; - String id = ""; - String title = ""; - AttributeType type = AttributeType.STRING; - AttributeOrigin origin = AttributeOrigin.DATA; - String defaultValue = ""; - - boolean end = false; - String name = null; - while (reader.hasNext() && !end) { - int t = reader.next(); - - switch (t) { - case XMLStreamReader.START_ELEMENT: - name = reader.getLocalName(); - break; - case XMLStreamReader.CHARACTERS: - if (!reader.isWhiteSpace()) { - if (ELEMENT_COLUMN_INDEX.equalsIgnoreCase(name)) { - index = Integer.parseInt(reader.getText()); - } else if (ELEMENT_COLUMN_ID.equalsIgnoreCase(name)) { - id += reader.getText(); - } else if (ELEMENT_COLUMN_TITLE.equalsIgnoreCase(name)) { - title += reader.getText(); - } else if (ELEMENT_COLUMN_TYPE.equalsIgnoreCase(name)) { - type = AttributeType.valueOf(reader.getText()); - } else if (ELEMENT_COLUMN_ORIGIN.equalsIgnoreCase(name)) { - origin = AttributeOrigin.valueOf(reader.getText()); - } else if (ELEMENT_COLUMN_DEFAULT.equalsIgnoreCase(name)) { - if (!reader.getText().isEmpty()) { - defaultValue += reader.getText(); - } - } - } - break; - case XMLStreamReader.END_ELEMENT: - if (ELEMENT_COLUMN.equalsIgnoreCase(reader.getLocalName())) { - end = true; - } - break; - } - } - Object defaultVal = !defaultValue.isEmpty() ? type.parse(defaultValue) : null; - if (!table.hasColumn(title)) { - table.addColumn(id, title, type, origin, defaultVal); - } else { - table.replaceColumn(table.getColumn(title), id, title, type, origin, defaultVal); - } - } -} diff --git a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/serialization/AttributeRowPersistenceProvider.java b/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/serialization/AttributeRowPersistenceProvider.java deleted file mode 100644 index 56a222dddc..0000000000 --- a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/serialization/AttributeRowPersistenceProvider.java +++ /dev/null @@ -1,90 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.data.attributes.serialization; - -import javax.xml.stream.XMLStreamException; -import javax.xml.stream.XMLStreamReader; -import javax.xml.stream.XMLStreamWriter; -import org.gephi.data.attributes.AbstractAttributeModel; -import org.gephi.data.attributes.api.AttributeModel; -import org.gephi.graph.api.GraphModel; -import org.gephi.project.api.Workspace; -import org.gephi.project.spi.WorkspacePersistenceProvider; -import org.openide.util.lookup.ServiceProvider; - -/** - * - * @author Mathieu Bastian - */ -@ServiceProvider(service = WorkspacePersistenceProvider.class, position = 15000) -public class AttributeRowPersistenceProvider implements WorkspacePersistenceProvider { - - public void writeXML(XMLStreamWriter writer, Workspace workspace) { - AttributeModel model = workspace.getLookup().lookup(AttributeModel.class); - GraphModel graphModel = workspace.getLookup().lookup(GraphModel.class); - AttributeRowSerializer serializer = new AttributeRowSerializer(); - if (model != null && graphModel != null && model instanceof AbstractAttributeModel) { - try { - serializer.writeRows(writer, graphModel); - } catch (XMLStreamException ex) { - throw new RuntimeException(ex); - } - } - } - - public void readXML(XMLStreamReader reader, Workspace workspace) { - AttributeModel model = workspace.getLookup().lookup(AttributeModel.class); - GraphModel graphModel = workspace.getLookup().lookup(GraphModel.class); - AttributeRowSerializer serializer = new AttributeRowSerializer(); - if (model != null && graphModel != null && model instanceof AbstractAttributeModel) { - try { - serializer.readRows(reader, graphModel, (AbstractAttributeModel) model); - } catch (XMLStreamException ex) { - throw new RuntimeException(ex); - } - } - } - - public String getIdentifier() { - return "attributerows"; - } -} diff --git a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/serialization/AttributeRowSerializer.java b/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/serialization/AttributeRowSerializer.java deleted file mode 100644 index c560aa3edb..0000000000 --- a/modules/AttributesImpl/src/main/java/org/gephi/data/attributes/serialization/AttributeRowSerializer.java +++ /dev/null @@ -1,192 +0,0 @@ -/* - Copyright 2008-2010 Gephi - Authors : Mathieu Bastian - Website : http://www.gephi.org - - This file is part of Gephi. - - DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - - Copyright 2011 Gephi Consortium. All rights reserved. - - The contents of this file are subject to the terms of either the GNU - General Public License Version 3 only ("GPL") or the Common - Development and Distribution License("CDDL") (collectively, the - "License"). You may not use this file except in compliance with the - License. You can obtain a copy of the License at - http://gephi.org/about/legal/license-notice/ - or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the - specific language governing permissions and limitations under the - License. When distributing the software, include this License Header - Notice in each file and include the License files at - /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the - License Header, with the fields enclosed by brackets [] replaced by - your own identifying information: - "Portions Copyrighted [year] [name of copyright owner]" - - If you wish your version of this file to be governed by only the CDDL - or only the GPL Version 3, indicate your decision by adding - "[Contributor] elects to include this software in this distribution - under the [CDDL or GPL Version 3] license." If you do not indicate a - single choice of license, a recipient has the option to distribute - your version of this file under either the CDDL, the GPL Version 3 or - to extend the choice of license to its licensees as provided above. - However, if you add GPL Version 3 code and therefore, elected the GPL - Version 3 license, then the option applies only if the new code is - made subject to such option by the copyright holder. - - Contributor(s): - - Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.data.attributes.serialization; - -import java.util.logging.Level; -import java.util.logging.Logger; -import javax.xml.stream.XMLStreamException; -import javax.xml.stream.XMLStreamReader; -import javax.xml.stream.XMLStreamWriter; -import org.gephi.data.attributes.AbstractAttributeModel; -import org.gephi.data.attributes.AttributeRowImpl; -import org.gephi.data.attributes.AttributeTableImpl; -import org.gephi.data.attributes.api.AttributeType; -import org.gephi.data.attributes.api.AttributeValue; -import org.gephi.graph.api.Edge; -import org.gephi.graph.api.GraphModel; -import org.gephi.graph.api.HierarchicalGraph; -import org.gephi.graph.api.Node; - -/** - * - * @author Mathieu Bastian - */ -public class AttributeRowSerializer { - - private static final String ELEMENT_ROWS = "attributerows"; - private static final String ELEMENT_NODE_ROW = "noderow"; - private static final String ELEMENT_EDGE_ROW = "edgerow"; - private static final String ELEMENT_VALUE = "attvalue"; - - public void writeRows(XMLStreamWriter writer, GraphModel graphModel) throws XMLStreamException { - writer.writeStartElement(ELEMENT_ROWS); - - HierarchicalGraph hierarchicalGraph = graphModel.getHierarchicalGraph(); - for (Node node : hierarchicalGraph.getNodesTree()) { - if (node.getNodeData().getAttributes() != null && node.getNodeData().getAttributes() instanceof AttributeRowImpl) { - AttributeRowImpl row = (AttributeRowImpl) node.getNodeData().getAttributes(); - writer.writeStartElement(ELEMENT_NODE_ROW); - writer.writeAttribute("for", String.valueOf(node.getId())); - if (writeRow(writer, row)) { - writer.writeEndElement(); - } - } - } - - for (Edge edge : hierarchicalGraph.getEdges()) { - if (edge.getEdgeData().getAttributes() != null && edge.getEdgeData().getAttributes() instanceof AttributeRowImpl) { - AttributeRowImpl row = (AttributeRowImpl) edge.getEdgeData().getAttributes(); - writer.writeStartElement(ELEMENT_EDGE_ROW); - writer.writeAttribute("for", String.valueOf(edge.getId())); - if (writeRow(writer, row)) { - writer.writeEndElement(); - } - } - } - - writer.writeEndElement(); - } - - public void readRows(XMLStreamReader reader, GraphModel graphModel, AbstractAttributeModel attributeModel) throws XMLStreamException { - HierarchicalGraph hierarchicalGraph = graphModel.getHierarchicalGraph(); - - boolean end = false; - while (reader.hasNext() && !end) { - int type = reader.next(); - - switch (type) { - case XMLStreamReader.START_ELEMENT: - String name = reader.getLocalName(); - if (ELEMENT_NODE_ROW.equalsIgnoreCase(name)) { - int id = Integer.parseInt(reader.getAttributeValue(null, "for")); - Node node = hierarchicalGraph.getNode(id); - if (node.getNodeData().getAttributes() != null && node.getNodeData().getAttributes() instanceof AttributeRowImpl) { - AttributeRowImpl row = (AttributeRowImpl) node.getNodeData().getAttributes(); - readRow(reader, attributeModel, attributeModel.getNodeTable(), row); - } - } else if (ELEMENT_EDGE_ROW.equalsIgnoreCase(name)) { - int id = Integer.parseInt(reader.getAttributeValue(null, "for")); - Edge edge = hierarchicalGraph.getEdge(id); - if (edge.getEdgeData().getAttributes() != null && edge.getEdgeData().getAttributes() instanceof AttributeRowImpl) { - AttributeRowImpl row = (AttributeRowImpl) edge.getEdgeData().getAttributes(); - readRow(reader, attributeModel, attributeModel.getEdgeTable(), row); - } - } - break; - case XMLStreamReader.END_ELEMENT: - if (ELEMENT_ROWS.equalsIgnoreCase(reader.getLocalName())) { - end = true; - } - break; - } - } - } - - public boolean writeRow(XMLStreamWriter writer, AttributeRowImpl row) throws XMLStreamException { - writer.writeAttribute("version", String.valueOf(row.getRowVersion())); - int writtenRows = 0; - for (AttributeValue value : row.getValues()) { - int index = value.getColumn().getIndex(); - Object obj = value.getValue(); - if (obj != null) { - writtenRows++; - writer.writeStartElement(ELEMENT_VALUE); - writer.writeAttribute("index", String.valueOf(index)); - writer.writeCharacters(obj.toString()); - writer.writeEndElement(); - } - } - return writtenRows > 0; - } - - public void readRow(XMLStreamReader reader, AbstractAttributeModel model, AttributeTableImpl table, AttributeRowImpl row) throws XMLStreamException { - row.setRowVersion(Integer.parseInt(reader.getAttributeValue(null, "version"))); - Integer index = null; - String value = ""; - - boolean end = false; - while (reader.hasNext() && !end) { - int t = reader.next(); - - switch (t) { - case XMLStreamReader.START_ELEMENT: - String name = reader.getLocalName(); - if (ELEMENT_VALUE.equalsIgnoreCase(name)) { - index = Integer.parseInt(reader.getAttributeValue(null, "index")); - } - break; - case XMLStreamReader.CHARACTERS: - if (!reader.isWhiteSpace() && index != null) { - value += reader.getText(); - } - break; - case XMLStreamReader.END_ELEMENT: - if (ELEMENT_NODE_ROW.equalsIgnoreCase(reader.getLocalName()) || ELEMENT_EDGE_ROW.equalsIgnoreCase(reader.getLocalName())) { - end = true; - } - if (!value.isEmpty() && index != null) { - AttributeType type = table.getColumn(index).getType(); - Object v = type.parse(value); - if (v != null) { - v = model.getManagedValue(v, type); - } else { - Logger.getLogger(AttributeRowSerializer.class.getName()).log(Level.WARNING, "Unable to parse \"{0}\" as type {1}", new Object[]{value, type.toString()}); - } - row.setValue(index, v); - } - value = ""; - index = null; - break; - } - } - } -} diff --git a/modules/AttributesImpl/src/main/nbm/manifest.mf b/modules/AttributesImpl/src/main/nbm/manifest.mf deleted file mode 100644 index 75c904d965..0000000000 --- a/modules/AttributesImpl/src/main/nbm/manifest.mf +++ /dev/null @@ -1,4 +0,0 @@ -Manifest-Version: 1.0 -AutoUpdate-Essential-Module: true -OpenIDE-Module-Localizing-Bundle: org/gephi/data/attributes/Bundle.properties -OpenIDE-Module-Specification-Version: ${gephi.modules.specification.version} \ No newline at end of file diff --git a/modules/AttributesImpl/src/main/nbm/module.xml b/modules/AttributesImpl/src/main/nbm/module.xml deleted file mode 100644 index a21d3290fd..0000000000 --- a/modules/AttributesImpl/src/main/nbm/module.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - diff --git a/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/Bundle.properties b/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/Bundle.properties deleted file mode 100644 index 9dc0cd8084..0000000000 --- a/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/Bundle.properties +++ /dev/null @@ -1,6 +0,0 @@ -OpenIDE-Module-Display-Category=Gephi Core -OpenIDE-Module-Name=Attributes Impl -NodeAttributeTable.name = Nodes -EdgeAttributeTable.name = Edges -GraphAttributeTable.name = Graph -OpenIDE-Module-Short-Description=Attributes API default implementation. diff --git a/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/Bundle_cs.properties b/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/Bundle_cs.properties deleted file mode 100644 index d73ac2343f..0000000000 --- a/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/Bundle_cs.properties +++ /dev/null @@ -1,15 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Zbyn\u011bk Schwarz , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-02-29 20\:31+0000\nLast-Translator\: Zbyn\u011bk Schwarz \nLanguage-Team\: Czech (http\://www.transifex.com/projects/p/gephi/language/cs/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: cs\nPlural-Forms\: nplurals\=3; plural\=(n\=\=1) ? 0 \: (n>\=2 && n<\=4) ? 1 \: 2;\n - -NodeAttributeTable.name=Uzly - -EdgeAttributeTable.name=Hrany - -GraphAttributeTable.name=Graf - -OpenIDE-Module-Short-Description=V\u00fdchoz\u00ed zaveden\u00e9 API vlastnost\u00ed diff --git a/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/Bundle_es.properties b/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/Bundle_es.properties deleted file mode 100644 index 8d748062d0..0000000000 --- a/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/Bundle_es.properties +++ /dev/null @@ -1,16 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Eduardo Ramos , 2012. -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-16 23\:07+0000\nLast-Translator\: Eduardo Ramos \nLanguage-Team\: Spanish (http\://www.transifex.com/projects/p/gephi/language/es/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: es\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n - -NodeAttributeTable.name=Nodos - -EdgeAttributeTable.name=Aristas - -GraphAttributeTable.name=Grafo - -OpenIDE-Module-Short-Description=Implementaci\u00f3n por defecto del m\u00f3dulo Attributes API diff --git a/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/Bundle_fr.properties b/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/Bundle_fr.properties deleted file mode 100644 index 78b768f648..0000000000 --- a/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/Bundle_fr.properties +++ /dev/null @@ -1,16 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -# , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-03-08 15\:11+0000\nLast-Translator\: gephi \nLanguage-Team\: French (http\://www.transifex.com/projects/p/gephi/language/fr/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fr\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -NodeAttributeTable.name=Noeuds - -EdgeAttributeTable.name=Liens - -GraphAttributeTable.name=Graphe - -OpenIDE-Module-Short-Description=Impl\u00e9mentation standard du module Attributes API diff --git a/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/Bundle_ja.properties b/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/Bundle_ja.properties deleted file mode 100644 index aba0133c4d..0000000000 --- a/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/Bundle_ja.properties +++ /dev/null @@ -1,15 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011, 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-15 02\:15+0000\nLast-Translator\: Siro Kida \nLanguage-Team\: Japanese (http\://www.transifex.com/projects/p/gephi/language/ja/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ja\nPlural-Forms\: nplurals\=1; plural\=0;\n - -NodeAttributeTable.name=\u30ce\u30fc\u30c9 - -EdgeAttributeTable.name=\u8fba - -GraphAttributeTable.name=\u30b0\u30e9\u30d5 - -OpenIDE-Module-Short-Description=\u5c5e\u6027API\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u5b9f\u88c5 diff --git a/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/Bundle_oc.properties b/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/Bundle_oc.properties deleted file mode 100644 index 72cec5b30a..0000000000 --- a/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/Bundle_oc.properties +++ /dev/null @@ -1,12 +0,0 @@ -# Occitan (post 1500) translation for gephi -# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 -# This file is distributed under the same license as the gephi package. -# FIRST AUTHOR , 2010. -# -!=Project-Id-Version\: gephi\nReport-Msgid-Bugs-To\: FULL NAME \nPOT-Creation-Date\: 2010-04-07 13\:16+0200\nPO-Revision-Date\: 2010-10-21 13\:36+0000\nLast-Translator\: C\u00e9dric VALMARY (Tot en \u00f2c) \nLanguage-Team\: Occitan (post 1500) \nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nX-Launchpad-Export-Date\: 2011-03-13 04\:46+0000\nX-Generator\: Launchpad (build 12559)\n - -NodeAttributeTable.name=Nos\u00e8ls - -EdgeAttributeTable.name=Ligams - -OpenIDE-Module-Short-Description=Implementacion estandarda del modul Attributes API diff --git a/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/Bundle_pt_BR.properties b/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/Bundle_pt_BR.properties deleted file mode 100644 index ea829feafe..0000000000 --- a/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/Bundle_pt_BR.properties +++ /dev/null @@ -1,16 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# C\u00e9lio CJr , 2011. -# C\u00e9lio Faria Jr. , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-17 13\:08+0000\nLast-Translator\: C\u00e9lio Faria Jr. \nLanguage-Team\: Portuguese (Brazil) (http\://www.transifex.com/projects/p/gephi/language/pt_BR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt_BR\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -NodeAttributeTable.name=N\u00f3s - -EdgeAttributeTable.name=Arestas - -GraphAttributeTable.name=Grafo - -OpenIDE-Module-Short-Description=Implementa\u00e7\u00e3o padr\u00e3o da API Attributes. diff --git a/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/Bundle_ru.properties b/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/Bundle_ru.properties deleted file mode 100644 index 62a69e0da1..0000000000 --- a/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/Bundle_ru.properties +++ /dev/null @@ -1,16 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# , 2012. -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-15 08\:32+0000\nLast-Translator\: Altsoph \nLanguage-Team\: Russian (http\://www.transifex.com/projects/p/gephi/language/ru/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ru\nPlural-Forms\: nplurals\=3; plural\=(n%10\=\=1 && n%100\!\=11 ? 0 \: n%10>\=2 && n%10<\=4 && (n%100<10 || n%100>\=20) ? 1 \: 2);\n - -NodeAttributeTable.name=\u0423\u0437\u043b\u044b - -EdgeAttributeTable.name=\u0420\u0451\u0431\u0440\u0430 - -GraphAttributeTable.name=\u0413\u0440\u0430\u0444 - -OpenIDE-Module-Short-Description=\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 API \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c\u0438 diff --git a/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/Bundle_zh_CN.properties b/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/Bundle_zh_CN.properties deleted file mode 100644 index 7029dff5c0..0000000000 --- a/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/Bundle_zh_CN.properties +++ /dev/null @@ -1,15 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Xi-Nian Zuo , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-03-15 09\:34+0000\nLast-Translator\: Xi-Nian Zuo \nLanguage-Team\: Chinese (China) (http\://www.transifex.com/projects/p/gephi/language/zh_CN/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: zh_CN\nPlural-Forms\: nplurals\=1; plural\=0;\n - -NodeAttributeTable.name=\u8282\u70b9 - -EdgeAttributeTable.name=\u8fb9 - -GraphAttributeTable.name=\u56fe - -OpenIDE-Module-Short-Description=\u5c5e\u6027API\u7684\u9ed8\u8ba4\u5b9e\u73b0\u3002 diff --git a/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/cs.po b/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/cs.po deleted file mode 100644 index b83d16a817..0000000000 --- a/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/cs.po +++ /dev/null @@ -1,31 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# ZbynΔ›k Schwarz , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-02-29 20:31+0000\n" -"Last-Translator: ZbynΔ›k Schwarz \n" -"Language-Team: Czech (http://www.transifex.com/projects/p/gephi/language/cs/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: cs\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" - -msgid "NodeAttributeTable.name" -msgstr "Uzly" - -msgid "EdgeAttributeTable.name" -msgstr "Hrany" - -msgid "GraphAttributeTable.name" -msgstr "Graf" - -msgid "OpenIDE-Module-Short-Description" -msgstr "VΓ½chozΓ­ zavedenΓ© API vlastnostΓ­" diff --git a/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/es.po b/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/es.po deleted file mode 100644 index 643ff1c2c8..0000000000 --- a/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/es.po +++ /dev/null @@ -1,32 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Eduardo Ramos , 2012. -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-16 23:07+0000\n" -"Last-Translator: Eduardo Ramos \n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/gephi/language/es/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -msgid "NodeAttributeTable.name" -msgstr "Nodos" - -msgid "EdgeAttributeTable.name" -msgstr "Aristas" - -msgid "GraphAttributeTable.name" -msgstr "Grafo" - -msgid "OpenIDE-Module-Short-Description" -msgstr "ImplementaciΓ³n por defecto del mΓ³dulo Attributes API" diff --git a/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/fr.po b/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/fr.po deleted file mode 100644 index 7f49c6912b..0000000000 --- a/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/fr.po +++ /dev/null @@ -1,32 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -# , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-03-08 15:11+0000\n" -"Last-Translator: gephi \n" -"Language-Team: French (http://www.transifex.com/projects/p/gephi/language/fr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "NodeAttributeTable.name" -msgstr "Noeuds" - -msgid "EdgeAttributeTable.name" -msgstr "Liens" - -msgid "GraphAttributeTable.name" -msgstr "Graphe" - -msgid "OpenIDE-Module-Short-Description" -msgstr "ImplΓ©mentation standard du module Attributes API" diff --git a/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/ja.po b/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/ja.po deleted file mode 100644 index 0290b93b92..0000000000 --- a/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/ja.po +++ /dev/null @@ -1,31 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011, 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-15 02:15+0000\n" -"Last-Translator: Siro Kida \n" -"Language-Team: Japanese (http://www.transifex.com/projects/p/gephi/language/ja/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ja\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "NodeAttributeTable.name" -msgstr "γƒŽγƒΌγƒ‰" - -msgid "EdgeAttributeTable.name" -msgstr "θΎΊ" - -msgid "GraphAttributeTable.name" -msgstr "グラフ" - -msgid "OpenIDE-Module-Short-Description" -msgstr "ε±žζ€§APIγγƒ‡γƒ•γ‚©γƒ«γƒˆγεŸθ£…" diff --git a/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/org-gephi-data-attributes.pot b/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/org-gephi-data-attributes.pot deleted file mode 100644 index 5e71070074..0000000000 --- a/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/org-gephi-data-attributes.pot +++ /dev/null @@ -1,28 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# Gephi Team , 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: Gephi 0.8\n" -"Report-Msgid-Bugs-To: gephi.team@lists.launchpad.net\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-05 14:52+0200\n" -"Last-Translator: Mathieu Bastian \n" -"Language-Team: English \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "NodeAttributeTable.name" -msgstr "Nodes" - -msgid "EdgeAttributeTable.name" -msgstr "Edges" - -msgid "GraphAttributeTable.name" -msgstr "Graph" - -msgid "OpenIDE-Module-Short-Description" -msgstr "Attributes API default implementation." diff --git a/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/pt_BR.po b/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/pt_BR.po deleted file mode 100644 index 8554be0b1e..0000000000 --- a/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/pt_BR.po +++ /dev/null @@ -1,32 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# CΓ©lio CJr , 2011. -# CΓ©lio Faria Jr. , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-17 13:08+0000\n" -"Last-Translator: CΓ©lio Faria Jr. \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/gephi/language/pt_BR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "NodeAttributeTable.name" -msgstr "NΓ³s" - -msgid "EdgeAttributeTable.name" -msgstr "Arestas" - -msgid "GraphAttributeTable.name" -msgstr "Grafo" - -msgid "OpenIDE-Module-Short-Description" -msgstr "ImplementaΓ§Γ£o padrΓ£o da API Attributes." diff --git a/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/ru.po b/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/ru.po deleted file mode 100644 index ceb45840d8..0000000000 --- a/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/ru.po +++ /dev/null @@ -1,32 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# , 2012. -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-15 08:32+0000\n" -"Last-Translator: Altsoph \n" -"Language-Team: Russian (http://www.transifex.com/projects/p/gephi/language/ru/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -msgid "NodeAttributeTable.name" -msgstr "Π£Π·Π»Ρ‹" - -msgid "EdgeAttributeTable.name" -msgstr "Π Ρ‘Π±Ρ€Π°" - -msgid "GraphAttributeTable.name" -msgstr "Π“Ρ€Π°Ρ„" - -msgid "OpenIDE-Module-Short-Description" -msgstr "Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΎΠ΅ API для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ" diff --git a/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/zh_CN.po b/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/zh_CN.po deleted file mode 100644 index 394d175b94..0000000000 --- a/modules/AttributesImpl/src/main/resources/org/gephi/data/attributes/zh_CN.po +++ /dev/null @@ -1,31 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Xi-Nian Zuo , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-03-15 09:34+0000\n" -"Last-Translator: Xi-Nian Zuo \n" -"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/gephi/language/zh_CN/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "NodeAttributeTable.name" -msgstr "θŠ‚η‚Ή" - -msgid "EdgeAttributeTable.name" -msgstr "θΎΉ" - -msgid "GraphAttributeTable.name" -msgstr "ε›Ύ" - -msgid "OpenIDE-Module-Short-Description" -msgstr "ε±žζ€§APIηš„ι»˜θ€εžηŽ°γ€‚" diff --git a/modules/BatikWrapper/pom.xml b/modules/BatikWrapper/pom.xml new file mode 100644 index 0000000000..d95bf06c86 --- /dev/null +++ b/modules/BatikWrapper/pom.xml @@ -0,0 +1,64 @@ + + + 4.0.0 + + gephi-parent + org.gephi + 0.11.3-SNAPSHOT + ../.. + + + org.gephi + batik-wrapper + 0.11.3-SNAPSHOT + nbm + + BatikWrapper + + + 1.19 + + + + + org.apache.xmlgraphics + batik-transcoder + ${gephi.batik.version} + + + + xml-apis + xml-apis + + + xalan + xalan + + + commons-logging + commons-logging + + + commons-io + commons-io + + + + + + + + + org.apache.netbeans.utilities + nbm-maven-plugin + + autoload + + org.w3c.* + org.apache.batik.* + + + + + + diff --git a/modules/BatikWrapper/src/main/nbm/manifest.mf b/modules/BatikWrapper/src/main/nbm/manifest.mf new file mode 100644 index 0000000000..8c68aeff0f --- /dev/null +++ b/modules/BatikWrapper/src/main/nbm/manifest.mf @@ -0,0 +1,5 @@ +Manifest-Version: 1.0 +AutoUpdate-Essential-Module: true +OpenIDE-Module-Specification-Version: ${gephi.modules.specification.version} +OpenIDE-Module-Display-Category: Libraries +OpenIDE-Module-Name: Batik Wrapper \ No newline at end of file diff --git a/modules/ClusteringAPI/pom.xml b/modules/ClusteringAPI/pom.xml deleted file mode 100644 index 020b89ae48..0000000000 --- a/modules/ClusteringAPI/pom.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - 4.0.0 - - gephi-parent - org.gephi - 0.9-SNAPSHOT - ../.. - - - org.gephi - clustering-api - 0.9-SNAPSHOT - nbm - - ClusteringAPI - - - - ${project.groupId} - graph-api - - - - - - - org.codehaus.mojo - nbm-maven-plugin - - - org.gephi.clustering.api - org.gephi.clustering.spi - - - - - - diff --git a/modules/ClusteringAPI/src/main/java/org/gephi/clustering/api/Cluster.java b/modules/ClusteringAPI/src/main/java/org/gephi/clustering/api/Cluster.java deleted file mode 100644 index 42aa999af6..0000000000 --- a/modules/ClusteringAPI/src/main/java/org/gephi/clustering/api/Cluster.java +++ /dev/null @@ -1,61 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.clustering.api; - -import org.gephi.graph.api.Node; - -/** - * - * @author Mathieu Bastian - */ -public interface Cluster { - - public Node[] getNodes(); - - public int getNodesCount(); - - public String getName(); - - public Node getMetaNode(); - - public void setMetaNode(Node node); -} diff --git a/modules/ClusteringAPI/src/main/java/org/gephi/clustering/api/ClusteringController.java b/modules/ClusteringAPI/src/main/java/org/gephi/clustering/api/ClusteringController.java deleted file mode 100644 index eebf364b87..0000000000 --- a/modules/ClusteringAPI/src/main/java/org/gephi/clustering/api/ClusteringController.java +++ /dev/null @@ -1,65 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.clustering.api; - -import org.gephi.clustering.spi.Clusterer; - -/** - * - * @author Mathieu Bastian - */ -public interface ClusteringController { - - public void clusterize(Clusterer clusterer); - - public void cancelClusterize(Clusterer clusterer); - - public void selectCluster(Cluster cluster); - - public void groupCluster(Cluster cluster); - - public void ungroupCluster(Cluster cluster); - - public boolean canGroup(Cluster cluster); - - public boolean canUngroup(Cluster cluster); -} diff --git a/modules/ClusteringAPI/src/main/java/org/gephi/clustering/api/ClusteringModel.java b/modules/ClusteringAPI/src/main/java/org/gephi/clustering/api/ClusteringModel.java deleted file mode 100644 index 3c674a00ec..0000000000 --- a/modules/ClusteringAPI/src/main/java/org/gephi/clustering/api/ClusteringModel.java +++ /dev/null @@ -1,64 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.clustering.api; - -import javax.swing.event.ChangeListener; -import org.gephi.clustering.spi.Clusterer; - -/** - * - * @author Mathieu Bastian - */ -public interface ClusteringModel { - - public Clusterer getSelectedClusterer(); - - public Clusterer[] getClusterers(); - - public void setRunning(boolean running); - - public boolean isRunning(); - - public void addChangeListener(ChangeListener changeListener); - - public void removeChangeListener(ChangeListener changeListener); -} diff --git a/modules/ClusteringAPI/src/main/java/org/gephi/clustering/spi/Clusterer.java b/modules/ClusteringAPI/src/main/java/org/gephi/clustering/spi/Clusterer.java deleted file mode 100644 index fa567f3ddc..0000000000 --- a/modules/ClusteringAPI/src/main/java/org/gephi/clustering/spi/Clusterer.java +++ /dev/null @@ -1,56 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.clustering.spi; - -import org.gephi.clustering.api.Cluster; -import org.gephi.graph.api.GraphModel; - -/** - * - * @author Mathieu Bastian - */ -public interface Clusterer { - - public void execute(GraphModel graphModel); - - public Cluster[] getClusters(); -} diff --git a/modules/ClusteringAPI/src/main/java/org/gephi/clustering/spi/ClustererBuilder.java b/modules/ClusteringAPI/src/main/java/org/gephi/clustering/spi/ClustererBuilder.java deleted file mode 100644 index c74ff8bb0a..0000000000 --- a/modules/ClusteringAPI/src/main/java/org/gephi/clustering/spi/ClustererBuilder.java +++ /dev/null @@ -1,59 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.clustering.spi; - -/** - * - * @author Mathieu Bastian - */ -public interface ClustererBuilder { - - public Clusterer getClusterer(); - - public String getName(); - - public String getDescription(); - - public Class getClustererClass(); - - public ClustererUI getUI(); -} diff --git a/modules/ClusteringAPI/src/main/java/org/gephi/clustering/spi/ClustererUI.java b/modules/ClusteringAPI/src/main/java/org/gephi/clustering/spi/ClustererUI.java deleted file mode 100644 index 834cc64ab5..0000000000 --- a/modules/ClusteringAPI/src/main/java/org/gephi/clustering/spi/ClustererUI.java +++ /dev/null @@ -1,57 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.clustering.spi; - -import javax.swing.JPanel; - -/** - * - * @author Mathieu Bastian - */ -public interface ClustererUI { - - public JPanel getPanel(); - - public void setup(Clusterer clusterer); - - public void unsetup(); -} diff --git a/modules/ClusteringAPI/src/main/nbm/manifest.mf b/modules/ClusteringAPI/src/main/nbm/manifest.mf deleted file mode 100644 index 92f3750d95..0000000000 --- a/modules/ClusteringAPI/src/main/nbm/manifest.mf +++ /dev/null @@ -1,4 +0,0 @@ -Manifest-Version: 1.0 -AutoUpdate-Essential-Module: true -OpenIDE-Module-Localizing-Bundle: org/gephi/clustering/api/Bundle.properties -OpenIDE-Module-Specification-Version: ${gephi.modules.specification.version} \ No newline at end of file diff --git a/modules/ClusteringAPI/src/main/nbm/module.xml b/modules/ClusteringAPI/src/main/nbm/module.xml deleted file mode 100644 index 86b1182c46..0000000000 --- a/modules/ClusteringAPI/src/main/nbm/module.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - diff --git a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/Bundle.properties b/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/Bundle.properties deleted file mode 100644 index 093382605e..0000000000 --- a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/Bundle.properties +++ /dev/null @@ -1,5 +0,0 @@ -OpenIDE-Module-Display-Category=Gephi Core -OpenIDE-Module-Long-Description=\ - API/SPI for clustering algorithms (experimental) -OpenIDE-Module-Name=Clustering API -OpenIDE-Module-Short-Description=API/SPI for clustering algorithms (experimental) diff --git a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/Bundle_cs.properties b/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/Bundle_cs.properties deleted file mode 100644 index fac17ff00b..0000000000 --- a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/Bundle_cs.properties +++ /dev/null @@ -1,11 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Zbyn\u011bk Schwarz , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-02-29 20\:30+0000\nLast-Translator\: Zbyn\u011bk Schwarz \nLanguage-Team\: Czech (http\://www.transifex.com/projects/p/gephi/language/cs/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: cs\nPlural-Forms\: nplurals\=3; plural\=(n\=\=1) ? 0 \: (n>\=2 && n<\=4) ? 1 \: 2;\n - -OpenIDE-Module-Long-Description=API/SPI pro algoritmy shlukov\u00e1n\u00ed (experiment\u00e1ln\u00ed) - -OpenIDE-Module-Short-Description=API/SPI pro algoritmy shlukov\u00e1n\u00ed (experiment\u00e1ln\u00ed) diff --git a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/Bundle_es.properties b/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/Bundle_es.properties deleted file mode 100644 index b3e56c78ba..0000000000 --- a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/Bundle_es.properties +++ /dev/null @@ -1,11 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 14\:30+0000\nLast-Translator\: gephi \nLanguage-Team\: Spanish (http\://www.transifex.com/projects/p/gephi/language/es/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: es\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n - -OpenIDE-Module-Long-Description=API/SPI para algoritmos de clustering (experimental) - -OpenIDE-Module-Short-Description=API/SPI para algoritmos de clustering (experimental) diff --git a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/Bundle_fr.properties b/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/Bundle_fr.properties deleted file mode 100644 index 94923fc222..0000000000 --- a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/Bundle_fr.properties +++ /dev/null @@ -1,11 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 14\:30+0000\nLast-Translator\: gephi \nLanguage-Team\: French (http\://www.transifex.com/projects/p/gephi/language/fr/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fr\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -OpenIDE-Module-Long-Description=API/SPI pour algorithmes de clustering (exp\u00e9rimental) - -OpenIDE-Module-Short-Description=API/SPI pour algorithmes de clustering (exp\u00e9rimental) diff --git a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/Bundle_ja.properties b/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/Bundle_ja.properties deleted file mode 100644 index 58102a1699..0000000000 --- a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/Bundle_ja.properties +++ /dev/null @@ -1,11 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-13 08\:44+0000\nLast-Translator\: Siro Kida \nLanguage-Team\: Japanese (http\://www.transifex.com/projects/p/gephi/language/ja/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ja\nPlural-Forms\: nplurals\=1; plural\=0;\n - -OpenIDE-Module-Long-Description=\u30af\u30e9\u30b9\u30bf\u30fc\u5316\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u306eAPI/SPI(\u5b9f\u9a13\u7684) - -OpenIDE-Module-Short-Description=\u30af\u30e9\u30b9\u30bf\u30fc\u5316\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u306eAPI/SPI(\u5b9f\u9a13\u7684) diff --git a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/Bundle_oc.properties b/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/Bundle_oc.properties deleted file mode 100644 index ac1749d60a..0000000000 --- a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/Bundle_oc.properties +++ /dev/null @@ -1,10 +0,0 @@ -# Occitan (post 1500) translation for gephi -# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 -# This file is distributed under the same license as the gephi package. -# FIRST AUTHOR , 2010. -# -!=Project-Id-Version\: gephi\nReport-Msgid-Bugs-To\: FULL NAME \nPOT-Creation-Date\: 2010-04-07 13\:16+0200\nPO-Revision-Date\: 2010-10-21 13\:36+0000\nLast-Translator\: C\u00e9dric VALMARY (Tot en \u00f2c) \nLanguage-Team\: Occitan (post 1500) \nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nX-Launchpad-Export-Date\: 2011-03-13 04\:46+0000\nX-Generator\: Launchpad (build 12559)\n - -OpenIDE-Module-Long-Description=API/SPI per algoritmes de clustering (experimental) - -OpenIDE-Module-Short-Description=API/SPI per algoritmes de clustering (experimental) diff --git a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/Bundle_pt_BR.properties b/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/Bundle_pt_BR.properties deleted file mode 100644 index 269cdf0991..0000000000 --- a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/Bundle_pt_BR.properties +++ /dev/null @@ -1,11 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# C\u00e9lio CJr , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-08 19\:24+0000\nLast-Translator\: C\u00e9lio Faria Jr. \nLanguage-Team\: Portuguese (Brazil) (http\://www.transifex.com/projects/p/gephi/language/pt_BR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt_BR\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -OpenIDE-Module-Long-Description=API/SPI de algoritmos de clustering (experimental) - -OpenIDE-Module-Short-Description=API/SPI de algoritmos de clustering (experimental) diff --git a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/Bundle_ru.properties b/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/Bundle_ru.properties deleted file mode 100644 index bbcf59b467..0000000000 --- a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/Bundle_ru.properties +++ /dev/null @@ -1,11 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 14\:30+0000\nLast-Translator\: gephi \nLanguage-Team\: Russian (http\://www.transifex.com/projects/p/gephi/language/ru/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ru\nPlural-Forms\: nplurals\=3; plural\=(n%10\=\=1 && n%100\!\=11 ? 0 \: n%10>\=2 && n%10<\=4 && (n%100<10 || n%100>\=20) ? 1 \: 2);\n - -OpenIDE-Module-Long-Description=API/SPI \u0434\u043b\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 (\u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f) - -OpenIDE-Module-Short-Description=API/SPI \u0434\u043b\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 (\u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f) diff --git a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/Bundle_zh_CN.properties b/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/Bundle_zh_CN.properties deleted file mode 100644 index 7ec52191a7..0000000000 --- a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/Bundle_zh_CN.properties +++ /dev/null @@ -1,10 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-08 00\:20+0000\nLast-Translator\: gephi \nLanguage-Team\: Chinese (China) (http\://www.transifex.com/projects/p/gephi/language/zh_CN/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: zh_CN\nPlural-Forms\: nplurals\=1; plural\=0;\n - -OpenIDE-Module-Long-Description=\u805a\u7c7b\u7b97\u6cd5\u7684\u5e94\u7528\u7a0b\u5e8f\u63a5\u53e3API\u548c\u670d\u52a1\u63d0\u4f9b\u501f\u53e3SPI(\u8bd5\u9a8c\u9636\u6bb5\u529f\u80fd) - -OpenIDE-Module-Short-Description=\u805a\u7c7b\u7b97\u6cd5\u7684\u5e94\u7528\u7a0b\u5e8f\u63a5\u53e3API\u548c\u670d\u52a1\u63d0\u4f9b\u501f\u53e3SPI(\u8bd5\u9a8c\u9636\u6bb5\u529f\u80fd) diff --git a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/cs.po b/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/cs.po deleted file mode 100644 index f71d0e60df..0000000000 --- a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/cs.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# ZbynΔ›k Schwarz , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-02-29 20:30+0000\n" -"Last-Translator: ZbynΔ›k Schwarz \n" -"Language-Team: Czech (http://www.transifex.com/projects/p/gephi/language/cs/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: cs\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "API/SPI pro algoritmy shlukovΓ‘nΓ­ (experimentΓ‘lnΓ­)" - -msgid "OpenIDE-Module-Short-Description" -msgstr "API/SPI pro algoritmy shlukovΓ‘nΓ­ (experimentΓ‘lnΓ­)" diff --git a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/es.po b/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/es.po deleted file mode 100644 index 98907c9785..0000000000 --- a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/es.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 14:30+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/gephi/language/es/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "API/SPI para algoritmos de clustering (experimental)" - -msgid "OpenIDE-Module-Short-Description" -msgstr "API/SPI para algoritmos de clustering (experimental)" diff --git a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/fr.po b/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/fr.po deleted file mode 100644 index 06c592ba65..0000000000 --- a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/fr.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 14:30+0000\n" -"Last-Translator: gephi \n" -"Language-Team: French (http://www.transifex.com/projects/p/gephi/language/fr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "API/SPI pour algorithmes de clustering (expΓ©rimental)" - -msgid "OpenIDE-Module-Short-Description" -msgstr "API/SPI pour algorithmes de clustering (expΓ©rimental)" diff --git a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/ja.po b/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/ja.po deleted file mode 100644 index 6d48b3e159..0000000000 --- a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/ja.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-13 08:44+0000\n" -"Last-Translator: Siro Kida \n" -"Language-Team: Japanese (http://www.transifex.com/projects/p/gephi/language/ja/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ja\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "γ‚―γƒ©γ‚Ήγ‚ΏγƒΌεŒ–γ‚’γƒ«γ‚΄γƒͺγ‚Ίγƒ γAPI/SPI(εŸι¨“ηš„)" - -msgid "OpenIDE-Module-Short-Description" -msgstr "γ‚―γƒ©γ‚Ήγ‚ΏγƒΌεŒ–γ‚’γƒ«γ‚΄γƒͺγ‚Ίγƒ γAPI/SPI(εŸι¨“ηš„)" diff --git a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/org-gephi-clustering-api.pot b/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/org-gephi-clustering-api.pot deleted file mode 100644 index aaab0fc8ea..0000000000 --- a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/org-gephi-clustering-api.pot +++ /dev/null @@ -1,22 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# Gephi Team , 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: Gephi 0.8\n" -"Report-Msgid-Bugs-To: gephi.team@lists.launchpad.net\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-05 14:52+0200\n" -"Last-Translator: Mathieu Bastian \n" -"Language-Team: English \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "API/SPI for clustering algorithms (experimental)" - -msgid "OpenIDE-Module-Short-Description" -msgstr "API/SPI for clustering algorithms (experimental)" diff --git a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/package.html b/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/package.html deleted file mode 100644 index d8992fa828..0000000000 --- a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/package.html +++ /dev/null @@ -1,6 +0,0 @@ - - - - API for clustering algorithm execution. - - \ No newline at end of file diff --git a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/pt_BR.po b/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/pt_BR.po deleted file mode 100644 index 10f47b51f6..0000000000 --- a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/pt_BR.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# CΓ©lio CJr , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-08 19:24+0000\n" -"Last-Translator: CΓ©lio Faria Jr. \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/gephi/language/pt_BR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "API/SPI de algoritmos de clustering (experimental)" - -msgid "OpenIDE-Module-Short-Description" -msgstr "API/SPI de algoritmos de clustering (experimental)" diff --git a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/ru.po b/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/ru.po deleted file mode 100644 index a7fb8ea149..0000000000 --- a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/ru.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 14:30+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Russian (http://www.transifex.com/projects/p/gephi/language/ru/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "API/SPI для Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² кластСризации (ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ функция)" - -msgid "OpenIDE-Module-Short-Description" -msgstr "API/SPI для Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² кластСризации (ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ функция)" diff --git a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/zh_CN.po b/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/zh_CN.po deleted file mode 100644 index 7f26dc247e..0000000000 --- a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/api/zh_CN.po +++ /dev/null @@ -1,24 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-08 00:20+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/gephi/language/zh_CN/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "聚类η—ζ³•ηš„εΊ”η”¨η¨‹εΊζŽ₯口APIε’ŒζœεŠ‘ζδΎ›ε€Ÿε£SPI(θ―•ιͺŒι˜Άζ΅εŠŸθƒ½)" - -msgid "OpenIDE-Module-Short-Description" -msgstr "聚类η—ζ³•ηš„εΊ”η”¨η¨‹εΊζŽ₯口APIε’ŒζœεŠ‘ζδΎ›ε€Ÿε£SPI(θ―•ιͺŒι˜Άζ΅εŠŸθƒ½)" diff --git a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/spi/package.html b/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/spi/package.html deleted file mode 100644 index c07f23d9bd..0000000000 --- a/modules/ClusteringAPI/src/main/resources/org/gephi/clustering/spi/package.html +++ /dev/null @@ -1,9 +0,0 @@ - - - - Interfaces for clustering algorithms definition. -

    - The algorithm is defined by the ClustererBuilder interface. -

    - - \ No newline at end of file diff --git a/modules/ClusteringPlugin/pom.xml b/modules/ClusteringPlugin/pom.xml deleted file mode 100644 index 10308ebbd1..0000000000 --- a/modules/ClusteringPlugin/pom.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - 4.0.0 - - gephi-parent - org.gephi - 0.9-SNAPSHOT - ../.. - - - org.gephi - clustering-plugin - 0.9-SNAPSHOT - nbm - - ClusteringPlugin - - - - ${project.groupId} - graph-api - - - ${project.groupId} - clustering-api - - - ${project.groupId} - utils-longtask - - - org.netbeans.api - org-openide-util - - - org.netbeans.api - org-openide-util-lookup - - - - - - - org.codehaus.mojo - nbm-maven-plugin - - - org.gephi.clustering.plugin.mcl - - - - - - diff --git a/modules/ClusteringPlugin/src/main/java/org/gephi/clustering/plugin/mcl/MarkovClustering.java b/modules/ClusteringPlugin/src/main/java/org/gephi/clustering/plugin/mcl/MarkovClustering.java deleted file mode 100644 index 1fdf9e3935..0000000000 --- a/modules/ClusteringPlugin/src/main/java/org/gephi/clustering/plugin/mcl/MarkovClustering.java +++ /dev/null @@ -1,454 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.clustering.plugin.mcl; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import org.gephi.clustering.api.Cluster; -import org.gephi.clustering.spi.Clusterer; -import org.gephi.graph.api.Edge; -import org.gephi.graph.api.Graph; -import org.gephi.graph.api.GraphModel; -import org.gephi.graph.api.Node; -import org.gephi.utils.longtask.spi.LongTask; -import org.gephi.utils.progress.Progress; -import org.gephi.utils.progress.ProgressTicket; - -/** - * MarkovClustering implements the Markov clustering (MCL) algorithm for graphs, - * using a HashMap-based sparse representation of a Markov matrix, i.e., an - * adjacency matrix m that is normalised to one. Elements in a column / node can - * be interpreted as decision probabilities of a random walker being at that - * node. Note: whereas we explain the algorithms with columns, the actual - * implementation works with rows because the used sparse matrix has row-major - * format. - *

    - * The basic idea underlying the MCL algorithm is that dense regions in sparse - * graphs correspond with regions in which the number of k-length paths is - * relatively large, for small k in N, which corresponds to multiplying - * probabilities in the matrix appropriately. Random walks of length k have - * higher probability (product) for paths with beginning and ending in the same - * dense region than for other paths. - *

    - * The algorithm starts by creating a Markov matrix from the graph, for which - * first the adjacency matrix is added diagonal elements to include self-loops - * for all nodes, i.e., probabilities that the random walker stays at a - * particular node. After this initialisation, the algorithm works by - * alternating two operations, expansion and inflation, iteratively recomputing - * the set of transition probabilities. The expansion step corresponds to matrix - * multiplication (on stochastic matrices), the inflation step corresponds with - * a parametrized inflation operator Gamma_r, which acts column-wise on (column) - * stochastic matrices (here, we use row-wise operation, which is analogous). - *

    - * The inflation operator transforms a stochastic matrix into another one by - * raising each element to a positive power p and re-normalising columns to keep - * the matrix stochastic. The effect is that larger probabilities in each column - * are emphasised and smaller ones deemphasised. On the other side, the matrix - * multiplication in the expansion step creates new non-zero elements, i.e., - * edges. The algorithm converges very fast, and the result is an idempotent - * Markov matrix, M = M * M, which represents a hard clustering of the graph - * into components. - *

    - * Expansion and inflation have two opposing effects: While expansion flattens - * the stochastic distributions in the columns and thus causes paths of a random - * walker to become more evenly spread, inflation contracts them to favoured - * paths. - *

    - * Description is based on the introduction of Stijn van Dongen's thesis Graph - * Clustering by Flow Simulation (2000); for a mathematical treatment of the - * algorithm and the associated MCL process, see there. - */ -//Original author Gregor Heinrich -public class MarkovClustering implements Clusterer, LongTask { - - private double maxResidual = 0.001; - private double gammaExp = 2.0; - private double loopGain = 0.; - private double zeroMax = 0.001; - private Cluster[] clusters; - //LongTask - private ProgressTicket progressTicket; - private boolean cancelled; - - public void execute(GraphModel graphModel) { - cancelled = false; - Progress.start(progressTicket); - Progress.setDisplayName(progressTicket, "MCL Clustering"); - - HashMap nodeMap = new HashMap(); - HashMap intMap = new HashMap(); - - Graph graph = graphModel.getGraphVisible(); - graph.readLock(); - - //Load matrix - SparseMatrix matrix = new SparseMatrix(); - int nodeId = 0; - for (Edge e : graph.getEdges()) { - Node source = e.getSource(); - Node target = e.getTarget(); - Integer sourceId; - Integer targetId; - if ((sourceId = intMap.get(source)) == null) { - sourceId = nodeId++; - intMap.put(source, sourceId); - nodeMap.put(sourceId, source); - } - if ((targetId = intMap.get(target)) == null) { - targetId = nodeId++; - intMap.put(target, targetId); - nodeMap.put(targetId, target); - } - double weight = e.getWeight(); - matrix.add(sourceId, targetId, weight); - - if (cancelled) { - graph.readUnlockAll(); - return; - } - } - - graph.readUnlock(); - - matrix = matrix.transpose(); - matrix = run(matrix, maxResidual, gammaExp, loopGain, zeroMax); - - if (cancelled) { - return; - } - - Map> map = getClusters(matrix); - - if (cancelled) { - return; - } - - int clusterNumber = 1; - List clustersList = new ArrayList(); - Set> sortedClusters = new HashSet>(); - for (ArrayList c : map.values()) { - if (!sortedClusters.contains(c)) { - sortedClusters.add(c); - Node[] nodes = new Node[c.size()]; - int i = 0; - for (Integer in : c) { - Node node = nodeMap.get(in); - nodes[i] = node; - i++; - } - clustersList.add(new MCLCluster(nodes, clusterNumber)); - clusterNumber++; - } - if (cancelled) { - return; - } - } - clusters = clustersList.toArray(new Cluster[0]); - - Progress.finish(progressTicket); - } - - public Cluster[] getClusters() { - return clusters; - } - - public boolean cancel() { - cancelled = true; - return true; - } - - public void setProgressTicket(ProgressTicket progressTicket) { - this.progressTicket = progressTicket; - } - - private static class MCLCluster implements Cluster { - - private Node[] nodes; - private String name; - private Node metaNode; - - public MCLCluster(Node[] nodes, int number) { - this.nodes = nodes; - this.name = "Cluster " + number; - } - - public Node[] getNodes() { - return nodes; - } - - public int getNodesCount() { - return nodes.length; - } - - public String getName() { - return name; - } - - public Node getMetaNode() { - return metaNode; - } - - public void setMetaNode(Node node) { - this.metaNode = node; - } - } - - /** - * run the MCL process. - * - * @param a matrix - * @param maxResidual maximum difference between row elements and row square - * sum (measure of idempotence) - * @param pGamma inflation exponent for Gamma operator - * @param loopGain values for cycles - * @param maxZero maximum value considered zero for pruning operations - * @return the resulting matrix - */ - public SparseMatrix run(SparseMatrix a, double maxResidual, double pGamma, double loopGain, double maxZero) { - - //System.out.println("original matrix\n" + a.transpose().toStringDense()); - - // add cycles - addLoops(a, loopGain); - - // make stochastic - a.normaliseRows(); - //System.out.println("normalised\n" + a.transpose().toStringDense()); - - double residual = 1.; - int i = 0; - - if (cancelled) { - return a; - } - - // main iteration - while (residual > maxResidual) { - i++; - a = expand(a); - residual = inflate(a, pGamma, maxZero); - System.out.println("residual energy = " + residual); - if (cancelled) { - return a; - } - } - return a; - } - - /** - * inflate stochastic matrix by Hadamard (elementwise) exponentiation, - * pruning and normalisation : - *

    - * result = Gamma ( m, p ) = normalise ( prune ( m .^ p ) ). - *

    - * By convention, normalisation is done along rows (SparseMatrix has - * row-major representation) - * - * @param m matrix (mutable) - * @param p exponent as a double - * @param zeromax below which elements are pruned from the sparse matrix - * @return residuum value, m is modified. - */ - public double inflate(SparseMatrix m, double p, double zeromax) { - double res = 0.; - - // matlab: m = m .^ p - m.hadamardPower(p); - // matlab: m(find(m < threshold)) = 0 - m.prune(zeromax); - // matlab [for cols]: dinv = diag(1./sum(m)); m = m * dinv; return - // sum(m) - SparseVector rowsums = m.normalise(1.); - - // check if done: if the maximum element - for (int i : rowsums.keySet()) { - SparseVector row = m.get(i); - double max = row.max(); - double sumsq = row.sum(2.); - res = Math.max(res, max - sumsq); - if (cancelled) { - return res; - } - } - return res; - } - - /** - * expand stochastic quadratic matrix by sqaring it with itself: result = m * - * m. Here normalisation is rowwise. - * - * @param matrix - * @return new matrix (pointer != argument) - */ - public SparseMatrix expand(SparseMatrix m) { - m = m.times(m); - return m; - } - - /** - * add loops with specific energy, which corresponds to adding loopGain to - * the diagonal elements. - * - * @param a - * @param loopGain - */ - private void addLoops(SparseMatrix a, double loopGain) { - if (loopGain <= 0) { - return; - } - for (int i = 0; i < a.size(); i++) { - a.add(i, i, loopGain); - if (cancelled) { - return; - } - } - } - - public double getGammaExp() { - return gammaExp; - } - - /** - * Set inflation exponent for Gamma operator. Default is 2.0 - */ - public void setGammaExp(double gammaExp) { - this.gammaExp = gammaExp; - } - - public double getLoopGain() { - return loopGain; - } - - /** - * Set values for cycles. Default is 0.0 - */ - public void setLoopGain(double loopGain) { - this.loopGain = loopGain; - } - - public double getMaxResidual() { - return maxResidual; - } - - /** - * Set the maximum difference between row elements and row square sum (measure of idempotence). Default is 0.001 - */ - public void setMaxResidual(double maxResidual) { - this.maxResidual = maxResidual; - } - - public double getZeroMax() { - return zeroMax; - } - - /** - * Set the maximum value considered zero for pruning operations. Default is 0.001 - */ - public void setZeroMax(double zeroMax) { - this.zeroMax = zeroMax; - } - - private Map> getClusters(SparseMatrix matrix) { - - Map> clusters = new HashMap>(); - int clusterCount = 0; - - double[][] mat = matrix.getDense(); - for (int i = 0; i < mat.length; i++) { - for (int j = 0; j < mat[0].length; j++) { - double value = mat[i][j]; - if (value != 0.0) { - if (i == j) { - continue; - } - - if (clusters.containsKey(j)) { - // Already seen "column" -- get the cluster and add column - ArrayList columnCluster = clusters.get(j); - if (clusters.containsKey(i)) { - // We've already seen row also -- join them - ArrayList rowCluster = clusters.get(i); - if (rowCluster == columnCluster) { - continue; - } - columnCluster.addAll(rowCluster); - clusterCount--; - } else { - // debugln("Adding "+row+" to "+columnCluster.getClusterNumber()); - columnCluster.add(i); - } - for (Integer in : columnCluster) { - clusters.put(in, columnCluster); - } - } else { - ArrayList rowCluster; - // First time we've seen "column" -- have we already seen "row" - if (clusters.containsKey(i)) { - // Yes, just add column to row's cluster - rowCluster = clusters.get(i); - // debugln("Adding "+column+" to "+rowCluster.getClusterNumber()); - rowCluster.add(j); - } else { - rowCluster = new ArrayList(); - clusterCount++; - // debugln("Created new cluster "+rowCluster.getClusterNumber()+" with "+row+" and "+column); - rowCluster.add(j); - rowCluster.add(i); - } - for (Integer in : rowCluster) { - clusters.put(in, rowCluster); - } - } - } - if (cancelled) { - return clusters; - } - } - } - - return clusters; - } -} diff --git a/modules/ClusteringPlugin/src/main/java/org/gephi/clustering/plugin/mcl/MarkovClusteringBuilder.java b/modules/ClusteringPlugin/src/main/java/org/gephi/clustering/plugin/mcl/MarkovClusteringBuilder.java deleted file mode 100644 index 93ace7bc75..0000000000 --- a/modules/ClusteringPlugin/src/main/java/org/gephi/clustering/plugin/mcl/MarkovClusteringBuilder.java +++ /dev/null @@ -1,96 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.clustering.plugin.mcl; - -import javax.swing.JPanel; -import org.gephi.clustering.spi.Clusterer; -import org.gephi.clustering.spi.ClustererBuilder; -import org.gephi.clustering.spi.ClustererUI; -import org.openide.util.NbBundle; -import org.openide.util.lookup.ServiceProvider; - -/** - * - * @author Mathieu Bastian - */ -@ServiceProvider(service = ClustererBuilder.class) -public class MarkovClusteringBuilder implements ClustererBuilder { - - public Clusterer getClusterer() { - return new MarkovClustering(); - } - - public String getName() { - return "MCL (experimental)"; - } - - public String getDescription() { - return NbBundle.getMessage(MarkovClusteringBuilder.class, "MarkovClustering.description"); - } - - public Class getClustererClass() { - return MarkovClustering.class; - } - - public ClustererUI getUI() { - return new MarkovClusteringUI(); - } - - private static class MarkovClusteringUI implements ClustererUI { - - MarkovClusteringPanel panel; - - public JPanel getPanel() { - panel = new MarkovClusteringPanel(); - return panel; - } - - public void setup(Clusterer clusterer) { - panel.setup(clusterer); - } - - public void unsetup() { - panel.unsetup(); - panel = null; - } - } -} diff --git a/modules/ClusteringPlugin/src/main/java/org/gephi/clustering/plugin/mcl/MarkovClusteringPanel.form b/modules/ClusteringPlugin/src/main/java/org/gephi/clustering/plugin/mcl/MarkovClusteringPanel.form deleted file mode 100644 index ae42640101..0000000000 --- a/modules/ClusteringPlugin/src/main/java/org/gephi/clustering/plugin/mcl/MarkovClusteringPanel.form +++ /dev/null @@ -1,124 +0,0 @@ - - -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    diff --git a/modules/ClusteringPlugin/src/main/java/org/gephi/clustering/plugin/mcl/MarkovClusteringPanel.java b/modules/ClusteringPlugin/src/main/java/org/gephi/clustering/plugin/mcl/MarkovClusteringPanel.java deleted file mode 100644 index e734b8f88d..0000000000 --- a/modules/ClusteringPlugin/src/main/java/org/gephi/clustering/plugin/mcl/MarkovClusteringPanel.java +++ /dev/null @@ -1,170 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.clustering.plugin.mcl; - -import org.gephi.clustering.spi.Clusterer; - -/** - * - * @author Mathieu Bastian - */ -public class MarkovClusteringPanel extends javax.swing.JPanel { - - private MarkovClustering markovClustering; - - public MarkovClusteringPanel() { - initComponents(); - } - - public void setup(Clusterer clusterer) { - markovClustering = (MarkovClustering) clusterer; - gamma.setText("" + markovClustering.getGammaExp()); - maxresidual.setText("" + markovClustering.getMaxResidual()); - loop.setText("" + markovClustering.getLoopGain()); - zeromax.setText("" + markovClustering.getZeroMax()); - } - - public void unsetup() { - try { - markovClustering.setGammaExp(Double.parseDouble(gamma.getText())); - } catch (Exception e) { - } - try { - markovClustering.setLoopGain(Double.parseDouble(loop.getText())); - } catch (Exception e) { - } - try { - markovClustering.setMaxResidual(Double.parseDouble(maxresidual.getText())); - } catch (Exception e) { - } - try { - markovClustering.setZeroMax(Double.parseDouble(zeromax.getText())); - } catch (Exception e) { - } - } - - /** This method is called from within the constructor to - * initialize the form. - * WARNING: Do NOT modify this code. The content of this method is - * always regenerated by the Form Editor. - */ - @SuppressWarnings("unchecked") - // //GEN-BEGIN:initComponents - private void initComponents() { - - jLabel4 = new javax.swing.JLabel(); - maxresidual = new javax.swing.JTextField(); - loop = new javax.swing.JTextField(); - jLabel3 = new javax.swing.JLabel(); - jLabel2 = new javax.swing.JLabel(); - gamma = new javax.swing.JTextField(); - zeromax = new javax.swing.JTextField(); - jLabel1 = new javax.swing.JLabel(); - - jLabel4.setText(org.openide.util.NbBundle.getMessage(MarkovClusteringPanel.class, "MarkovClusteringPanel.jLabel4.text")); // NOI18N - - maxresidual.setText(org.openide.util.NbBundle.getMessage(MarkovClusteringPanel.class, "MarkovClusteringPanel.maxresidual.text")); // NOI18N - - loop.setText(org.openide.util.NbBundle.getMessage(MarkovClusteringPanel.class, "MarkovClusteringPanel.loop.text")); // NOI18N - - jLabel3.setText(org.openide.util.NbBundle.getMessage(MarkovClusteringPanel.class, "MarkovClusteringPanel.jLabel3.text")); // NOI18N - - jLabel2.setText(org.openide.util.NbBundle.getMessage(MarkovClusteringPanel.class, "MarkovClusteringPanel.jLabel2.text")); // NOI18N - - gamma.setText(org.openide.util.NbBundle.getMessage(MarkovClusteringPanel.class, "MarkovClusteringPanel.gamma.text")); // NOI18N - - zeromax.setText(org.openide.util.NbBundle.getMessage(MarkovClusteringPanel.class, "MarkovClusteringPanel.zeromax.text")); // NOI18N - - jLabel1.setText(org.openide.util.NbBundle.getMessage(MarkovClusteringPanel.class, "MarkovClusteringPanel.jLabel1.text")); // NOI18N - - javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); - this.setLayout(layout); - layout.setHorizontalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jLabel4) - .addComponent(jLabel3) - .addComponent(jLabel2) - .addComponent(jLabel1)) - .addGap(18, 18, 18) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(loop) - .addComponent(gamma) - .addComponent(zeromax) - .addComponent(maxresidual, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - ); - layout.setVerticalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel1) - .addComponent(zeromax, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel2) - .addComponent(gamma, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel3) - .addComponent(loop, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel4) - .addComponent(maxresidual, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - ); - }// //GEN-END:initComponents - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JTextField gamma; - private javax.swing.JLabel jLabel1; - private javax.swing.JLabel jLabel2; - private javax.swing.JLabel jLabel3; - private javax.swing.JLabel jLabel4; - private javax.swing.JTextField loop; - private javax.swing.JTextField maxresidual; - private javax.swing.JTextField zeromax; - // End of variables declaration//GEN-END:variables -} diff --git a/modules/ClusteringPlugin/src/main/java/org/gephi/clustering/plugin/mcl/SparseMatrix.java b/modules/ClusteringPlugin/src/main/java/org/gephi/clustering/plugin/mcl/SparseMatrix.java deleted file mode 100644 index 2f1e69c32e..0000000000 --- a/modules/ClusteringPlugin/src/main/java/org/gephi/clustering/plugin/mcl/SparseMatrix.java +++ /dev/null @@ -1,434 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.clustering.plugin.mcl; - -import java.util.ArrayList; -import java.util.Collections; - -/** - * SparseMatrix is a sparse matrix with row-major format. - *

    - * Conventions: except for the inherited methods and normalise(double), - * operations leave this ummodified (immutable) if there is a return - * value. Within operations, no pruning of values close to zero is done. Pruning - * can be controlled via the prune() method. - */ -//Original author Gregor Heinrich -public class SparseMatrix extends ArrayList { - - private static final long serialVersionUID = 1L; - private int maxVLength; - - /** - * empty sparse matrix - */ - public SparseMatrix() { - super(); - } - - /** - * empty sparse matrix with allocated number of rows - * - * @param rows - * @param cols - */ - public SparseMatrix(int rows, int cols) { - this(); - adjustMaxIndex(rows - 1, cols - 1); - } - - /** - * create sparse matrix from full matrix - * - * @param x - */ - public SparseMatrix(double[][] x) { - this(x.length - 1, x[0].length - 1); - for (int i = 0; i < x.length; i++) { - SparseVector v = new SparseVector(x[i]); - set(i, v); - } - } - - /** - * copy contructor - * - * @param matrix - */ - public SparseMatrix(SparseMatrix matrix) { - for (SparseVector s : matrix) { - add(s.copy()); - } - } - - /** - * create dense representation - * - * @return - */ - public double[][] getDense() { - double[][] aa = new double[size()][]; - for (int i = 0; i < size(); i++) { - aa[i] = new double[maxVLength]; - for (int j : get(i).keySet()) { - aa[i][j] = get(i).get(j); - } - } - return aa; - } - - /** - * set the sparse vector at index i. - * - * @param i - * @param x - * @return the old value of the element - */ - public SparseVector set(int i, SparseVector x) { - adjustMaxIndex(i, x.getLength() - 1); - return super.set(i, x); - } - - /** - * get number at index or 0. if not set. If index > size, returns 0. - * - * @param i - * @param j - * @return - */ - public double get(int i, int j) { - if (i > size() - 1) { - return 0.; - } - return get(i).get(j); - } - - /** - * set the value at the index i,j, returning the old value or 0. Increase - * matrix size if index exceeds the dimension. - * - * @param i - * @param j - * @param a - * @return - */ - public double set(int i, int j, double a) { - adjustMaxIndex(i, j); - double b = get(i).get(j); - get(i).put(j, a); - return b; - } - - /** - * adjusts the size of the matrix. - * - * @param i index addressed - * @param j index addressed - */ - public void adjustMaxIndex(int i, int j) { - if (i > size() - 1) { - increase(i); - } - if (j >= maxVLength) { - maxVLength = j + 1; - for (int row = 0; row < size(); row++) { - get(row).setLength(maxVLength); - } - } - } - - /** - * increase the size of the matrix with empty element SparseVectors. - * - * @param i - */ - private void increase(int i) { - addAll(Collections.nCopies(i - size() + 1, new SparseVector())); - } - - /** - * get the size of the matrix - * - * @return - */ - public int[] getSize() { - return new int[]{size(), maxVLength}; - - } - - /** - * adds a to the specified element, growing the matrix if necessary. - * - * @param i - * @param j - * @param a - * @return new value - */ - public double add(int i, int j, double a) { - adjustMaxIndex(i, j); - double b = get(i, j); - a += b; - set(i, j, a); - return a; - } - - /** - * normalise rows to rowsum - * - * @param rowsum for each row - * @return vector of old row sums - */ - public SparseVector normalise(double rowsum) { - SparseVector sums = new SparseVector(); - int i = 0; - for (SparseVector vec : this) { - sums.put(i, vec.normalise(rowsum)); - i++; - } - return sums; - } - - /** - * normalise by major dimension (rows) - */ - public void normaliseRows() { - for (SparseVector vec : this) { - vec.normalise(); - } - } - - /** - * normalise by minor dimension (columns), expensive. - */ - public void normaliseCols() { - double[] sums = new double[maxVLength]; - for (int row = 0; row < size(); row++) { - for (int col = 0; col < get(row).getLength(); col++) { - sums[col] += get(row).get(col); - } - } - for (int row = 0; row < size(); row++) { - for (int col = 0; col < get(row).getLength(); col++) { - get(row).mult(col, 1 / sums[col]); - } - } - } - - /** - * copy the matrix and its elements - */ - public SparseMatrix copy() { - return new SparseMatrix(this); - } - - /** - * immutable multiply this times the vector: A * x, i.e., rowwise. - * - * @param v - * @return - */ - public SparseVector times(SparseVector v) { - SparseVector w = new SparseVector(); - for (int i = 0; i < size(); i++) { - w.add(i, get(i).times(v)); - } - return w; - } - - /** - * immutable multiply the vector times this: x' * A, i.e., colwise. - * - * @param v - * @return - */ - public SparseVector vectorTimes(SparseVector v) { - SparseVector w = new SparseVector(); - // only the rows in A that v is nonzero - for (int i : v.keySet()) { - SparseVector a = get(i).copy(); - a.factor(v.get(i)); - w.add(a); - } - return w; - } - - /** - * mutable multiply this matrix (A) with M : A * M' - * - * @param m - * @return modified this - */ - public SparseMatrix timesTransposed(SparseMatrix m) { - // A*M = ;( A(i,:) * M ) - for (int i = 0; i < size(); i++) { - set(i, m.times(get(i))); - } - return this; - } - - /** - * immutable multiply this matrix (A) with M : A * M - * - * @param m - * @return matrix product - */ - public SparseMatrix times(SparseMatrix m) { - SparseMatrix s = new SparseMatrix(); - for (int i = 0; i < size(); i++) { - for (int j = 0; j < m.size(); j++) { - for (int k : get(i).keySet()) { - double a = m.get(k, j); - if (a != 0.) { - s.add(i, j, get(i, k) * a); - } - } - } - } - return s; - } - - /** - * immutable multiply matrix M with this (A) : M * A - * - * @param m - * @return - */ - public SparseMatrix matrixTimes(SparseMatrix m) { - return m.times(this); - } - - /** - * immutable transpose. - * - * @return - */ - public SparseMatrix transpose() { - SparseMatrix s = new SparseMatrix(); - for (int i = 0; i < size(); i++) { - s.set(i, getColum(i)); - } - return s; - } - - /** - * get a column of the sparse matrix (expensive). - * - * @return - */ - public SparseVector getColum(int i) { - SparseVector s = new SparseVector(); - for (int row = 0; row < size(); row++) { - double v = get(row, i); - if (v != 0.) { - s.put(row, v); - } - } - return s; - } - - /** - * mutable Hadamard product - * - * @param m - */ - public void hadamardProduct(SparseMatrix m) { - for (int i = 0; i < size(); i++) { - get(i).hadamardProduct(m.get(i)); - } - } - - /** - * mutable m2 = m .^ s - * - * @param s - * @return - */ - public void hadamardPower(double s) { - for (int i = 0; i < size(); i++) { - get(i).hadamardPower(s); - } - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - StringBuffer sb = new StringBuffer(); - for (int i = 0; i < size(); i++) { - sb.append(i).append(" => ").append(get(i)).append("\n"); - } - return sb.toString(); - } - - /** - * prints a dense representation - * - * @return - */ - public String toStringDense() { - double[][] dense = getDense(); - StringBuffer b = new StringBuffer(); - for (int i = 0; i < dense.length - 1; i++) { - for (int j = 0; j < dense[i].length; j++) { - b.append(Double.toString(dense[i][j])).append(" "); - } - b.append("\n"); - } - return b.toString(); - } - - /** - * prune all values whose magnitude is below threshold - */ - public void prune(double threshold) { - // for (SparseVector v : this) { - for (int i = 0; i < size(); i++) { - SparseVector a = get(i); - a.prune(threshold); - } - - } -} - diff --git a/modules/ClusteringPlugin/src/main/java/org/gephi/clustering/plugin/mcl/SparseVector.java b/modules/ClusteringPlugin/src/main/java/org/gephi/clustering/plugin/mcl/SparseVector.java deleted file mode 100644 index 55ebae367d..0000000000 --- a/modules/ClusteringPlugin/src/main/java/org/gephi/clustering/plugin/mcl/SparseVector.java +++ /dev/null @@ -1,356 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.clustering.plugin.mcl; - -import java.util.HashMap; -import java.util.Iterator; - -/** - * SparseVector represents a sparse vector. - *

    - * Conventions: except for the inherited methods and normalise(double), - * operations leave this ummodified (immutable) if there is a return - * value. Within operations, no pruning of values close to zero is done. Pruning - * can be controlled via the prune() method. - */ -//Original author Gregor Heinrich -public class SparseVector extends HashMap { - - private static final long serialVersionUID = 1L; - private int length = 0; - - /** - * create empty vector - */ - public SparseVector() { - super(); - } - - /** - * create empty vector with length - */ - public SparseVector(int i) { - this(); - length = i; - } - - /** - * create vector from dense vector - * - * @param x - */ - public SparseVector(double[] x) { - this(x.length); - for (int i = 0; i < x.length; i++) { - if (x[i] != 0) { - put(i, x[i]); - } - } - } - - /** - * copy constructor - * - * @param v - */ - public SparseVector(SparseVector v) { - super(v); - this.length = v.length; - } - - /** - * get ensures it returns 0 for empty hash values or if index exceeds - * length. - * - * @param key - * @return val - */ - @Override - public Double get(Object key) { - Double b = super.get(key); - if (b == null) { - return 0.; - } - return b; - } - - /** - * put increases the matrix size if the index exceeds the current size. - * - * @param key - * @param value - * @return - */ - @Override - public Double put(Integer key, Double value) { - length = Math.max(length, key + 1); - if (value == 0) { - return remove(key); - } - return super.put(key, value); - } - - /** - * normalises the vector to 1. - */ - public void normalise() { - double invsum = 1. / sum(); - for (int i : keySet()) { - mult(i, invsum); - } - } - - /** - * normalises the vector to newsum - * - * @param the value to which the element sum - * @return the old element sum - */ - public double normalise(double newsum) { - double sum = sum(); - double invsum = newsum / sum; - for (int i : keySet()) { - mult(i, invsum); - } - return sum; - } - - /** - * sum of the elements - * - * @return - */ - private double sum() { - double sum = 0; - for (double a : values()) { - sum += a; - } - return sum; - } - - /** - * power sum of the elements - * - * @return - */ - public double sum(double s) { - double sum = 0; - for (double a : values()) { - sum += Math.pow(a, s); - } - return sum; - } - - /** - * mutable add - * - * @param v - */ - public void add(SparseVector v) { - for (int i : keySet()) { - add(i, v.get(i)); - } - } - - /** - * mutable mult - * - * @param i index - * @param a value - */ - public void mult(int i, double a) { - Double c = get(i); - c *= a; - put(i, c); - } - - /** - * mutable factorisation - * - * @param a - */ - public void factor(double a) { - SparseVector s = copy(); - for (int i : keySet()) { - s.mult(i, a); - } - } - - /** - * immutable scalar product - * - * @param v - * @return scalar product - */ - public double times(SparseVector v) { - double sum = 0; - for (int i : keySet()) { - sum += get(i) * v.get(i); - } - return sum; - } - - /** - * mutable Hadamard product (elementwise multiplication) - * - * @param v - */ - public void hadamardProduct(SparseVector v) { - for (int i : keySet()) { - put(i, v.get(i) * get(i)); - } - } - - /** - * mutable Hadamard power - * - * @param s - */ - public void hadamardPower(double s) { - for (int i : keySet().toArray(new Integer[0])) { - put(i, Math.pow(get(i), s)); - } - } - - /** - * mutable add - * - * @param i - * @param a - */ - public void add(int i, double a) { - length = Math.max(length, i + 1); - double c = get(i); - c += a; - put(i, c); - } - - /** - * get the length of the vector - * - * @return - */ - public final int getLength() { - return length; - } - - /** - * set the new length of the vector (regardless of the maximum index). - * - * @param length - */ - public final void setLength(int length) { - this.length = length; - } - - /** - * copy the contents of the sparse vector - * - * @return - */ - public SparseVector copy() { - return new SparseVector(this); - } - - @Override - public String toString() { - StringBuffer sb = new StringBuffer(); - for (int i : keySet()) { - sb.append(i).append("->").append(get(i)).append(", "); - } - return sb.toString(); - } - - /** - * get dense represenation - * - * @return - */ - public double[] getDense() { - double[] a = new double[length]; - for (int i : keySet()) { - a[i] = get(i); - } - return a; - } - - /** - * maximum element value - * - * @return - */ - public double max() { - double max = 0; - for (int i : keySet()) { - max = Math.max(get(i), max); - } - return max; - } - - /** - * exponential sum, i.e., sum (elements^p) - * - * @param p - * @return - */ - public double expSum(int p) { - double sum = 0; - for (double a : values()) { - sum += Math.pow(a, p); - } - return sum; - } - - /** - * remove all elements whose magnitude is < threshold - * - * @param threshold - */ - public void prune(double threshold) { - for (Iterator it = keySet().iterator(); it.hasNext();) { - int key = it.next(); - if (Math.abs(get(key)) < threshold) { - it.remove(); - } - } - } -} diff --git a/modules/ClusteringPlugin/src/main/nbm/manifest.mf b/modules/ClusteringPlugin/src/main/nbm/manifest.mf deleted file mode 100644 index e40e3026d7..0000000000 --- a/modules/ClusteringPlugin/src/main/nbm/manifest.mf +++ /dev/null @@ -1,4 +0,0 @@ -Manifest-Version: 1.0 -AutoUpdate-Essential-Module: true -OpenIDE-Module-Localizing-Bundle: org/gephi/clustering/plugin/Bundle.properties -OpenIDE-Module-Specification-Version: ${gephi.modules.specification.version} \ No newline at end of file diff --git a/modules/ClusteringPlugin/src/main/nbm/module.xml b/modules/ClusteringPlugin/src/main/nbm/module.xml deleted file mode 100644 index b5154d7435..0000000000 --- a/modules/ClusteringPlugin/src/main/nbm/module.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - diff --git a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/Bundle.properties b/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/Bundle.properties deleted file mode 100644 index 5c351a1184..0000000000 --- a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/Bundle.properties +++ /dev/null @@ -1,5 +0,0 @@ -OpenIDE-Module-Display-Category=Gephi Core -OpenIDE-Module-Long-Description=\ - Standard clustering algorithms -OpenIDE-Module-Name=Clustering Plugin -OpenIDE-Module-Short-Description=Standard clustering algorithms diff --git a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/Bundle_cs.properties b/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/Bundle_cs.properties deleted file mode 100644 index d19eeb65e2..0000000000 --- a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/Bundle_cs.properties +++ /dev/null @@ -1,11 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Zbyn\u011bk Schwarz , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-02-29 20\:29+0000\nLast-Translator\: Zbyn\u011bk Schwarz \nLanguage-Team\: Czech (http\://www.transifex.com/projects/p/gephi/language/cs/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: cs\nPlural-Forms\: nplurals\=3; plural\=(n\=\=1) ? 0 \: (n>\=2 && n<\=4) ? 1 \: 2;\n - -OpenIDE-Module-Long-Description=Standardn\u00ed algoritmy shlukov\u00e1n\u00ed - -OpenIDE-Module-Short-Description=Standardn\u00ed algoritmy shlukov\u00e1n\u00ed diff --git a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/Bundle_es.properties b/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/Bundle_es.properties deleted file mode 100644 index 1ba7ef8bba..0000000000 --- a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/Bundle_es.properties +++ /dev/null @@ -1,11 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 14\:30+0000\nLast-Translator\: gephi \nLanguage-Team\: Spanish (http\://www.transifex.com/projects/p/gephi/language/es/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: es\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n - -OpenIDE-Module-Long-Description=Algoritmos est\u00e1ndar de clustering - -OpenIDE-Module-Short-Description=Algoritmos est\u00e1ndar de clustering diff --git a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/Bundle_fr.properties b/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/Bundle_fr.properties deleted file mode 100644 index a0d0da6d5d..0000000000 --- a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/Bundle_fr.properties +++ /dev/null @@ -1,11 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 14\:29+0000\nLast-Translator\: gephi \nLanguage-Team\: French (http\://www.transifex.com/projects/p/gephi/language/fr/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fr\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -OpenIDE-Module-Long-Description=Algorithmes classiques de clustering - -OpenIDE-Module-Short-Description=Algorithmes classiques de clustering diff --git a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/Bundle_ja.properties b/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/Bundle_ja.properties deleted file mode 100644 index b6176ea7ac..0000000000 --- a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/Bundle_ja.properties +++ /dev/null @@ -1,11 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-13 08\:47+0000\nLast-Translator\: Siro Kida \nLanguage-Team\: Japanese (http\://www.transifex.com/projects/p/gephi/language/ja/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ja\nPlural-Forms\: nplurals\=1; plural\=0;\n - -OpenIDE-Module-Long-Description=\u6a19\u6e96\u7684\u30af\u30e9\u30b9\u30bf\u30fc\u5316\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0 - -OpenIDE-Module-Short-Description=\u6a19\u6e96\u7684\u30af\u30e9\u30b9\u30bf\u30fc\u5316\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0 diff --git a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/Bundle_oc.properties b/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/Bundle_oc.properties deleted file mode 100644 index 3c741c8171..0000000000 --- a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/Bundle_oc.properties +++ /dev/null @@ -1,10 +0,0 @@ -# Occitan (post 1500) translation for gephi -# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 -# This file is distributed under the same license as the gephi package. -# FIRST AUTHOR , 2010. -# -!=Project-Id-Version\: gephi\nReport-Msgid-Bugs-To\: FULL NAME \nPOT-Creation-Date\: 2010-04-07 13\:16+0200\nPO-Revision-Date\: 2010-10-21 13\:36+0000\nLast-Translator\: C\u00e9dric VALMARY (Tot en \u00f2c) \nLanguage-Team\: Occitan (post 1500) \nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nX-Launchpad-Export-Date\: 2011-03-13 04\:46+0000\nX-Generator\: Launchpad (build 12559)\n - -OpenIDE-Module-Long-Description=Algoritmes classics de clustering - -OpenIDE-Module-Short-Description=Algoritmes classics de clustering diff --git a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/Bundle_pt_BR.properties b/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/Bundle_pt_BR.properties deleted file mode 100644 index 2727f9157f..0000000000 --- a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/Bundle_pt_BR.properties +++ /dev/null @@ -1,11 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# C\u00e9lio CJr , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 23\:47+0000\nLast-Translator\: C\u00e9lio Faria Jr. \nLanguage-Team\: Portuguese (Brazil) (http\://www.transifex.com/projects/p/gephi/language/pt_BR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt_BR\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -OpenIDE-Module-Long-Description=Algoritmos padr\u00e3o de clustering - -OpenIDE-Module-Short-Description=Algoritmos padr\u00e3o de clustering diff --git a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/Bundle_ru.properties b/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/Bundle_ru.properties deleted file mode 100644 index 01148874e7..0000000000 --- a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/Bundle_ru.properties +++ /dev/null @@ -1,11 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 14\:29+0000\nLast-Translator\: gephi \nLanguage-Team\: Russian (http\://www.transifex.com/projects/p/gephi/language/ru/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ru\nPlural-Forms\: nplurals\=3; plural\=(n%10\=\=1 && n%100\!\=11 ? 0 \: n%10>\=2 && n%10<\=4 && (n%100<10 || n%100>\=20) ? 1 \: 2);\n - -OpenIDE-Module-Long-Description=\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 - -OpenIDE-Module-Short-Description=\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 diff --git a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/Bundle_zh_CN.properties b/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/Bundle_zh_CN.properties deleted file mode 100644 index 15a5fdb409..0000000000 --- a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/Bundle_zh_CN.properties +++ /dev/null @@ -1,10 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-08 00\:20+0000\nLast-Translator\: gephi \nLanguage-Team\: Chinese (China) (http\://www.transifex.com/projects/p/gephi/language/zh_CN/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: zh_CN\nPlural-Forms\: nplurals\=1; plural\=0;\n - -OpenIDE-Module-Long-Description=\u6807\u51c6\u805a\u7c7b\u7b97\u6cd5 - -OpenIDE-Module-Short-Description=\u6807\u51c6\u805a\u7c7b\u7b97\u6cd5 diff --git a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/cs.po b/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/cs.po deleted file mode 100644 index 53737b405f..0000000000 --- a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/cs.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# ZbynΔ›k Schwarz , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-02-29 20:29+0000\n" -"Last-Translator: ZbynΔ›k Schwarz \n" -"Language-Team: Czech (http://www.transifex.com/projects/p/gephi/language/cs/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: cs\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "StandardnΓ­ algoritmy shlukovΓ‘nΓ­" - -msgid "OpenIDE-Module-Short-Description" -msgstr "StandardnΓ­ algoritmy shlukovΓ‘nΓ­" diff --git a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/es.po b/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/es.po deleted file mode 100644 index 8df726593d..0000000000 --- a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/es.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 14:30+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/gephi/language/es/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "Algoritmos estΓ‘ndar de clustering" - -msgid "OpenIDE-Module-Short-Description" -msgstr "Algoritmos estΓ‘ndar de clustering" diff --git a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/fr.po b/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/fr.po deleted file mode 100644 index b9f46903d9..0000000000 --- a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/fr.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 14:29+0000\n" -"Last-Translator: gephi \n" -"Language-Team: French (http://www.transifex.com/projects/p/gephi/language/fr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "Algorithmes classiques de clustering" - -msgid "OpenIDE-Module-Short-Description" -msgstr "Algorithmes classiques de clustering" diff --git a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/ja.po b/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/ja.po deleted file mode 100644 index 6d52d309fd..0000000000 --- a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/ja.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-13 08:47+0000\n" -"Last-Translator: Siro Kida \n" -"Language-Team: Japanese (http://www.transifex.com/projects/p/gephi/language/ja/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ja\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "ζ¨™ζΊ–ηš„γ‚―γƒ©γ‚Ήγ‚ΏγƒΌεŒ–γ‚’γƒ«γ‚΄γƒͺγ‚Ίγƒ " - -msgid "OpenIDE-Module-Short-Description" -msgstr "ζ¨™ζΊ–ηš„γ‚―γƒ©γ‚Ήγ‚ΏγƒΌεŒ–γ‚’γƒ«γ‚΄γƒͺγ‚Ίγƒ " diff --git a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/Bundle.properties b/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/Bundle.properties deleted file mode 100644 index 83d58f1a2f..0000000000 --- a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/Bundle.properties +++ /dev/null @@ -1,10 +0,0 @@ -MarkovClustering.description = Markov Cluster Algorithm, a fast and scalable unsupervised cluster algorithm - -MarkovClusteringPanel.jLabel4.text=max-residual -MarkovClusteringPanel.jLabel1.text=zero-Max -MarkovClusteringPanel.zeromax.text=0.001 -MarkovClusteringPanel.gamma.text=2.0 -MarkovClusteringPanel.jLabel2.text=gamma -MarkovClusteringPanel.jLabel3.text=loop -MarkovClusteringPanel.loop.text=0 -MarkovClusteringPanel.maxresidual.text=0.001 \ No newline at end of file diff --git a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/Bundle_cs.properties b/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/Bundle_cs.properties deleted file mode 100644 index fe847cd435..0000000000 --- a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/Bundle_cs.properties +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Zbyn\u011bk Schwarz , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-02-28 21\:38+0000\nLast-Translator\: Zbyn\u011bk Schwarz \nLanguage-Team\: Czech (http\://www.transifex.com/projects/p/gephi/language/cs/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: cs\nPlural-Forms\: nplurals\=3; plural\=(n\=\=1) ? 0 \: (n>\=2 && n<\=4) ? 1 \: 2;\n - -MarkovClustering.description=Markov\u016fv klastrov\u00fd algoritmus, rychl\u00fd a \u0161k\u00e1lovateln\u00fd nehl\u00eddan\u00fd algoritmus klastru - -MarkovClusteringPanel.jLabel4.text=max-zbytkov\u00e9 - -MarkovClusteringPanel.jLabel1.text=nula-Max - -MarkovClusteringPanel.zeromax.text=0.001 - -MarkovClusteringPanel.gamma.text=2.0 - -MarkovClusteringPanel.jLabel2.text=gama - -MarkovClusteringPanel.jLabel3.text=smy\u010dka - -MarkovClusteringPanel.loop.text=0 - -MarkovClusteringPanel.maxresidual.text=0.001 diff --git a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/Bundle_es.properties b/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/Bundle_es.properties deleted file mode 100644 index 0c329464e9..0000000000 --- a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/Bundle_es.properties +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 14\:30+0000\nLast-Translator\: gephi \nLanguage-Team\: Spanish (http\://www.transifex.com/projects/p/gephi/language/es/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: es\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n - -MarkovClustering.description=Algoritmo Markov Cluster (MCL), un algoritmo de cl\u00fastering no supervisado, r\u00e1pido y escalable - -MarkovClusteringPanel.jLabel4.text=max-residual - -MarkovClusteringPanel.jLabel1.text=zero-Max - -MarkovClusteringPanel.zeromax.text=0.001 - -MarkovClusteringPanel.gamma.text=2.0 - -MarkovClusteringPanel.jLabel2.text=gamma - -MarkovClusteringPanel.jLabel3.text=loop - -MarkovClusteringPanel.loop.text=0 - -MarkovClusteringPanel.maxresidual.text=0.001 diff --git a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/Bundle_fr.properties b/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/Bundle_fr.properties deleted file mode 100644 index 0b95e7a277..0000000000 --- a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/Bundle_fr.properties +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 14\:30+0000\nLast-Translator\: gephi \nLanguage-Team\: French (http\://www.transifex.com/projects/p/gephi/language/fr/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fr\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -MarkovClustering.description=Algorithme Markov Cluster (MCL), un algorithme non supervis\u00e9 de clustering rapide et scalable - -MarkovClusteringPanel.jLabel4.text=max-residual - -MarkovClusteringPanel.jLabel1.text=zero-Max - -MarkovClusteringPanel.zeromax.text=0.001 - -MarkovClusteringPanel.gamma.text=2.0 - -MarkovClusteringPanel.jLabel2.text=gamma - -MarkovClusteringPanel.jLabel3.text=loop - -MarkovClusteringPanel.loop.text=0 - -MarkovClusteringPanel.maxresidual.text=0.001 diff --git a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/Bundle_ja.properties b/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/Bundle_ja.properties deleted file mode 100644 index 7907fd9c03..0000000000 --- a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/Bundle_ja.properties +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-09-03 10\:52+0000\nLast-Translator\: Siro Kida \nLanguage-Team\: Japanese (http\://www.transifex.com/projects/p/gephi/language/ja/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ja\nPlural-Forms\: nplurals\=1; plural\=0;\n - -MarkovClustering.description=\u30de\u30eb\u30b3\u30d5\u30af\u30e9\u30b9\u30bf\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u3001\u901f\u304f\u30b9\u30b1\u30fc\u30e9\u30d6\u30eb\u306a\u6559\u5e2b\u306a\u3057\u5206\u985e\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0 - -MarkovClusteringPanel.jLabel4.text=\u6700\u5927\u6b8b\u4f59 - -MarkovClusteringPanel.jLabel1.text=\u30bc\u30ed\u30de\u30c3\u30af\u30b9 - -MarkovClusteringPanel.zeromax.text=0.001 - -MarkovClusteringPanel.gamma.text=2.0 - -MarkovClusteringPanel.jLabel2.text=\u30ac\u30f3\u30de - -MarkovClusteringPanel.jLabel3.text=\u30eb\u30fc\u30d7 - -MarkovClusteringPanel.loop.text=0 - -MarkovClusteringPanel.maxresidual.text=0.001 diff --git a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/Bundle_pt_BR.properties b/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/Bundle_pt_BR.properties deleted file mode 100644 index 387b25a9ed..0000000000 --- a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/Bundle_pt_BR.properties +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# C\u00e9lio CJr , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-07 00\:17+0000\nLast-Translator\: C\u00e9lio Faria Jr. \nLanguage-Team\: Portuguese (Brazil) (http\://www.transifex.com/projects/p/gephi/language/pt_BR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt_BR\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -MarkovClustering.description=Algoritmo de Cluster de Markov, um algoritmo de clustering r\u00e1pido e escal\u00e1vel sem supervis\u00e3o - -MarkovClusteringPanel.jLabel4.text=max-residual - -MarkovClusteringPanel.jLabel1.text=zero-Max - -MarkovClusteringPanel.zeromax.text=0.001 - -MarkovClusteringPanel.gamma.text=2.0 - -MarkovClusteringPanel.jLabel2.text=gamma - -MarkovClusteringPanel.jLabel3.text=loop - -MarkovClusteringPanel.loop.text=0 - -MarkovClusteringPanel.maxresidual.text=0.001 diff --git a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/Bundle_ru.properties b/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/Bundle_ru.properties deleted file mode 100644 index 6b107025ea..0000000000 --- a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/Bundle_ru.properties +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-09-20 21\:39+0000\nLast-Translator\: Altsoph \nLanguage-Team\: Russian (http\://www.transifex.com/projects/p/gephi/language/ru/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ru\nPlural-Forms\: nplurals\=3; plural\=(n%10\=\=1 && n%100\!\=11 ? 0 \: n%10>\=2 && n%10<\=4 && (n%100<10 || n%100>\=20) ? 1 \: 2);\n - -MarkovClustering.description=\u041a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u041c\u0430\u0440\u043a\u043e\u0432\u0430, \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c - -MarkovClusteringPanel.jLabel4.text=\u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u043d\u0435\u0432\u044f\u0437\u043a\u0430 - -MarkovClusteringPanel.jLabel1.text=zero-Max - -MarkovClusteringPanel.zeromax.text=0,001 - -MarkovClusteringPanel.gamma.text=2.0 - -MarkovClusteringPanel.jLabel2.text=gamma - -MarkovClusteringPanel.jLabel3.text=loop - -MarkovClusteringPanel.loop.text=0 - -MarkovClusteringPanel.maxresidual.text=0.001 diff --git a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/Bundle_zh_CN.properties b/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/Bundle_zh_CN.properties deleted file mode 100644 index 2afa274047..0000000000 --- a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/Bundle_zh_CN.properties +++ /dev/null @@ -1,24 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-08 00\:20+0000\nLast-Translator\: gephi \nLanguage-Team\: Chinese (China) (http\://www.transifex.com/projects/p/gephi/language/zh_CN/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: zh_CN\nPlural-Forms\: nplurals\=1; plural\=0;\n - -MarkovClustering.description=\u9a6c\u5c14\u53ef\u592b\u805a\u7c7b\u7b97\u6cd5\uff0c\u4e00\u79cd\u5feb\u901f\u548c\u53ef\u53d8\u5c3a\u5ea6\u7684\u65e0\u76d1\u7763\u805a\u7c7b\u7b97\u6cd5 - -MarkovClusteringPanel.jLabel4.text=\u6700\u5927\u6b8b\u5dee - -MarkovClusteringPanel.jLabel1.text=\u96f6\u6700\u5927 - -MarkovClusteringPanel.zeromax.text=0.001 - -MarkovClusteringPanel.gamma.text=2.0 - -MarkovClusteringPanel.jLabel2.text=gamma - -MarkovClusteringPanel.jLabel3.text=\u5faa\u73af - -MarkovClusteringPanel.loop.text=0 - -MarkovClusteringPanel.maxresidual.text=0.001 diff --git a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/cs.po b/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/cs.po deleted file mode 100644 index 593925fb32..0000000000 --- a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/cs.po +++ /dev/null @@ -1,46 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# ZbynΔ›k Schwarz , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-02-28 21:38+0000\n" -"Last-Translator: ZbynΔ›k Schwarz \n" -"Language-Team: Czech (http://www.transifex.com/projects/p/gephi/language/cs/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: cs\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" - -msgid "MarkovClustering.description" -msgstr "MarkovΕ―v klastrovΓ½ algoritmus, rychlΓ½ a Ε‘kΓ‘lovatelnΓ½ nehlΓ­danΓ½ algoritmus klastru" - -msgid "MarkovClusteringPanel.jLabel4.text" -msgstr "max-zbytkovΓ©" - -msgid "MarkovClusteringPanel.jLabel1.text" -msgstr "nula-Max" - -msgid "MarkovClusteringPanel.zeromax.text" -msgstr "0.001" - -msgid "MarkovClusteringPanel.gamma.text" -msgstr "2.0" - -msgid "MarkovClusteringPanel.jLabel2.text" -msgstr "gama" - -msgid "MarkovClusteringPanel.jLabel3.text" -msgstr "smyčka" - -msgid "MarkovClusteringPanel.loop.text" -msgstr "0" - -msgid "MarkovClusteringPanel.maxresidual.text" -msgstr "0.001" diff --git a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/es.po b/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/es.po deleted file mode 100644 index e52da908ed..0000000000 --- a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/es.po +++ /dev/null @@ -1,46 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 14:30+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/gephi/language/es/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -msgid "MarkovClustering.description" -msgstr "Algoritmo Markov Cluster (MCL), un algoritmo de clΓΊstering no supervisado, rΓ‘pido y escalable" - -msgid "MarkovClusteringPanel.jLabel4.text" -msgstr "max-residual" - -msgid "MarkovClusteringPanel.jLabel1.text" -msgstr "zero-Max" - -msgid "MarkovClusteringPanel.zeromax.text" -msgstr "0.001" - -msgid "MarkovClusteringPanel.gamma.text" -msgstr "2.0" - -msgid "MarkovClusteringPanel.jLabel2.text" -msgstr "gamma" - -msgid "MarkovClusteringPanel.jLabel3.text" -msgstr "loop" - -msgid "MarkovClusteringPanel.loop.text" -msgstr "0" - -msgid "MarkovClusteringPanel.maxresidual.text" -msgstr "0.001" diff --git a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/fr.po b/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/fr.po deleted file mode 100644 index 2b72705879..0000000000 --- a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/fr.po +++ /dev/null @@ -1,46 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 14:30+0000\n" -"Last-Translator: gephi \n" -"Language-Team: French (http://www.transifex.com/projects/p/gephi/language/fr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "MarkovClustering.description" -msgstr "Algorithme Markov Cluster (MCL), un algorithme non supervisΓ© de clustering rapide et scalable" - -msgid "MarkovClusteringPanel.jLabel4.text" -msgstr "max-residual" - -msgid "MarkovClusteringPanel.jLabel1.text" -msgstr "zero-Max" - -msgid "MarkovClusteringPanel.zeromax.text" -msgstr "0.001" - -msgid "MarkovClusteringPanel.gamma.text" -msgstr "2.0" - -msgid "MarkovClusteringPanel.jLabel2.text" -msgstr "gamma" - -msgid "MarkovClusteringPanel.jLabel3.text" -msgstr "loop" - -msgid "MarkovClusteringPanel.loop.text" -msgstr "0" - -msgid "MarkovClusteringPanel.maxresidual.text" -msgstr "0.001" diff --git a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/ja.po b/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/ja.po deleted file mode 100644 index e564de975f..0000000000 --- a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/ja.po +++ /dev/null @@ -1,46 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-09-03 10:52+0000\n" -"Last-Translator: Siro Kida \n" -"Language-Team: Japanese (http://www.transifex.com/projects/p/gephi/language/ja/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ja\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "MarkovClustering.description" -msgstr "γƒžγƒ«γ‚³γƒ•γ‚―γƒ©γ‚Ήγ‚Ώγ‚’γƒ«γ‚΄γƒͺγ‚Ίγƒ γ€ι€Ÿγγ‚Ήγ‚±γƒΌγƒ©γƒ–γƒ«γͺζ•™εΈ«γͺγ—εˆ†ι‘žγ‚’γƒ«γ‚΄γƒͺγ‚Ίγƒ " - -msgid "MarkovClusteringPanel.jLabel4.text" -msgstr "ζœ€ε€§ζ‹δ½™" - -msgid "MarkovClusteringPanel.jLabel1.text" -msgstr "γ‚Όγƒ­γƒžγƒƒγ‚―γ‚Ή" - -msgid "MarkovClusteringPanel.zeromax.text" -msgstr "0.001" - -msgid "MarkovClusteringPanel.gamma.text" -msgstr "2.0" - -msgid "MarkovClusteringPanel.jLabel2.text" -msgstr "γ‚¬γƒ³γƒž" - -msgid "MarkovClusteringPanel.jLabel3.text" -msgstr "ループ" - -msgid "MarkovClusteringPanel.loop.text" -msgstr "0" - -msgid "MarkovClusteringPanel.maxresidual.text" -msgstr "0.001" diff --git a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/org-gephi-clustering-plugin-mcl.pot b/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/org-gephi-clustering-plugin-mcl.pot deleted file mode 100644 index 5c4cc616c9..0000000000 --- a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/org-gephi-clustering-plugin-mcl.pot +++ /dev/null @@ -1,44 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# Gephi Team , 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: Gephi 0.8\n" -"Report-Msgid-Bugs-To: gephi.team@lists.launchpad.net\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-05 14:52+0200\n" -"Last-Translator: Mathieu Bastian \n" -"Language-Team: English \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "MarkovClustering.description" -msgstr "" -"Markov Cluster Algorithm, a fast and scalable unsupervised cluster algorithm" - -msgid "MarkovClusteringPanel.jLabel4.text" -msgstr "max-residual" - -msgid "MarkovClusteringPanel.jLabel1.text" -msgstr "zero-Max" - -msgid "MarkovClusteringPanel.zeromax.text" -msgstr "0.001" - -msgid "MarkovClusteringPanel.gamma.text" -msgstr "2.0" - -msgid "MarkovClusteringPanel.jLabel2.text" -msgstr "gamma" - -msgid "MarkovClusteringPanel.jLabel3.text" -msgstr "loop" - -msgid "MarkovClusteringPanel.loop.text" -msgstr "0" - -msgid "MarkovClusteringPanel.maxresidual.text" -msgstr "0.001" diff --git a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/pt_BR.po b/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/pt_BR.po deleted file mode 100644 index d813cabfd4..0000000000 --- a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/pt_BR.po +++ /dev/null @@ -1,46 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# CΓ©lio CJr , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-07 00:17+0000\n" -"Last-Translator: CΓ©lio Faria Jr. \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/gephi/language/pt_BR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "MarkovClustering.description" -msgstr "Algoritmo de Cluster de Markov, um algoritmo de clustering rΓ‘pido e escalΓ‘vel sem supervisΓ£o" - -msgid "MarkovClusteringPanel.jLabel4.text" -msgstr "max-residual" - -msgid "MarkovClusteringPanel.jLabel1.text" -msgstr "zero-Max" - -msgid "MarkovClusteringPanel.zeromax.text" -msgstr "0.001" - -msgid "MarkovClusteringPanel.gamma.text" -msgstr "2.0" - -msgid "MarkovClusteringPanel.jLabel2.text" -msgstr "gamma" - -msgid "MarkovClusteringPanel.jLabel3.text" -msgstr "loop" - -msgid "MarkovClusteringPanel.loop.text" -msgstr "0" - -msgid "MarkovClusteringPanel.maxresidual.text" -msgstr "0.001" diff --git a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/ru.po b/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/ru.po deleted file mode 100644 index 3a8acac53e..0000000000 --- a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/ru.po +++ /dev/null @@ -1,46 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-09-20 21:39+0000\n" -"Last-Translator: Altsoph \n" -"Language-Team: Russian (http://www.transifex.com/projects/p/gephi/language/ru/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -msgid "MarkovClustering.description" -msgstr "ΠšΠ»Π°ΡΡ‚Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠœΠ°Ρ€ΠΊΠΎΠ²Π°, быстрый ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ кластСризационный Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ" - -msgid "MarkovClusteringPanel.jLabel4.text" -msgstr "максимальная нСвязка" - -msgid "MarkovClusteringPanel.jLabel1.text" -msgstr "zero-Max" - -msgid "MarkovClusteringPanel.zeromax.text" -msgstr "0,001" - -msgid "MarkovClusteringPanel.gamma.text" -msgstr "2.0" - -msgid "MarkovClusteringPanel.jLabel2.text" -msgstr "gamma" - -msgid "MarkovClusteringPanel.jLabel3.text" -msgstr "loop" - -msgid "MarkovClusteringPanel.loop.text" -msgstr "0" - -msgid "MarkovClusteringPanel.maxresidual.text" -msgstr "0.001" diff --git a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/zh_CN.po b/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/zh_CN.po deleted file mode 100644 index 7197d3b892..0000000000 --- a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/mcl/zh_CN.po +++ /dev/null @@ -1,45 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-08 00:20+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/gephi/language/zh_CN/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "MarkovClustering.description" -msgstr "ι©¬ε°”ε―ε€«θšη±»η—ζ³•οΌŒδΈ€η§εΏ«ι€Ÿε’Œε―ε˜ε°ΊεΊ¦ηš„ζ— η›‘η£θšη±»η—法" - -msgid "MarkovClusteringPanel.jLabel4.text" -msgstr "ζœ€ε€§ζ‹ε·" - -msgid "MarkovClusteringPanel.jLabel1.text" -msgstr "ι›Άζœ€ε€§" - -msgid "MarkovClusteringPanel.zeromax.text" -msgstr "0.001" - -msgid "MarkovClusteringPanel.gamma.text" -msgstr "2.0" - -msgid "MarkovClusteringPanel.jLabel2.text" -msgstr "gamma" - -msgid "MarkovClusteringPanel.jLabel3.text" -msgstr "εΎͺ环" - -msgid "MarkovClusteringPanel.loop.text" -msgstr "0" - -msgid "MarkovClusteringPanel.maxresidual.text" -msgstr "0.001" diff --git a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/org-gephi-clustering-plugin.pot b/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/org-gephi-clustering-plugin.pot deleted file mode 100644 index 114a2e2e1e..0000000000 --- a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/org-gephi-clustering-plugin.pot +++ /dev/null @@ -1,22 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# Gephi Team , 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: Gephi 0.8\n" -"Report-Msgid-Bugs-To: gephi.team@lists.launchpad.net\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-05 14:52+0200\n" -"Last-Translator: Mathieu Bastian \n" -"Language-Team: English \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "Standard clustering algorithms" - -msgid "OpenIDE-Module-Short-Description" -msgstr "Standard clustering algorithms" diff --git a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/pt_BR.po b/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/pt_BR.po deleted file mode 100644 index c872f4da65..0000000000 --- a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/pt_BR.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# CΓ©lio CJr , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 23:47+0000\n" -"Last-Translator: CΓ©lio Faria Jr. \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/gephi/language/pt_BR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "Algoritmos padrΓ£o de clustering" - -msgid "OpenIDE-Module-Short-Description" -msgstr "Algoritmos padrΓ£o de clustering" diff --git a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/ru.po b/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/ru.po deleted file mode 100644 index 75aa71d0c0..0000000000 --- a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/ru.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 14:29+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Russian (http://www.transifex.com/projects/p/gephi/language/ru/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ кластСризации" - -msgid "OpenIDE-Module-Short-Description" -msgstr "Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ кластСризации" diff --git a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/zh_CN.po b/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/zh_CN.po deleted file mode 100644 index 988b42a891..0000000000 --- a/modules/ClusteringPlugin/src/main/resources/org/gephi/clustering/plugin/zh_CN.po +++ /dev/null @@ -1,24 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-08 00:20+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/gephi/language/zh_CN/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "ζ ‡ε‡†θšη±»η—法" - -msgid "OpenIDE-Module-Short-Description" -msgstr "ζ ‡ε‡†θšη±»η—法" diff --git a/modules/CollectionUtils/pom.xml b/modules/CollectionUtils/pom.xml deleted file mode 100644 index d276654756..0000000000 --- a/modules/CollectionUtils/pom.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - 4.0.0 - - gephi-parent - org.gephi - 0.9-SNAPSHOT - ../.. - - - org.gephi - utils-collection - 0.9-SNAPSHOT - nbm - - CollectionUtils - - - - ${project.groupId} - core-library-wrapper - - - - - - - org.codehaus.mojo - nbm-maven-plugin - - - org.gephi.utils.collection.avl - - - - - - diff --git a/modules/CollectionUtils/src/main/java/org/gephi/utils/collection/avl/AVLItem.java b/modules/CollectionUtils/src/main/java/org/gephi/utils/collection/avl/AVLItem.java deleted file mode 100644 index ed3107cf07..0000000000 --- a/modules/CollectionUtils/src/main/java/org/gephi/utils/collection/avl/AVLItem.java +++ /dev/null @@ -1,53 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.utils.collection.avl; - -/** - * Interface for {@link SimpleAVLTree} items. The getNumber must return a unique key for the - * tree. - * - * @author Mathieu Bastian - */ -public interface AVLItem { - - public int getNumber(); -} diff --git a/modules/CollectionUtils/src/main/java/org/gephi/utils/collection/avl/AVLItemAccessor.java b/modules/CollectionUtils/src/main/java/org/gephi/utils/collection/avl/AVLItemAccessor.java deleted file mode 100644 index e4a0fc12cf..0000000000 --- a/modules/CollectionUtils/src/main/java/org/gephi/utils/collection/avl/AVLItemAccessor.java +++ /dev/null @@ -1,55 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.utils.collection.avl; - -/** - * Interface for specializing the getNumber() method. The tree key got from the Item - * can vary. - * - * @author Mathieu Bastian - * @param The type of Object in the tree - * @see ParamAVLTree - */ -public interface AVLItemAccessor { - - public int getNumber(Item item); -} diff --git a/modules/CollectionUtils/src/main/java/org/gephi/utils/collection/avl/BiParamAVLIterator.java b/modules/CollectionUtils/src/main/java/org/gephi/utils/collection/avl/BiParamAVLIterator.java deleted file mode 100644 index 84d1a3cac2..0000000000 --- a/modules/CollectionUtils/src/main/java/org/gephi/utils/collection/avl/BiParamAVLIterator.java +++ /dev/null @@ -1,123 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.utils.collection.avl; - -import java.util.Iterator; - -/** - * Identical at ParamAVLIterator, but with two trees. When the first is fully browsed, - * the iterator moves to the second tree items. Used for IN and OUT edges tree. - *

    - * Support null values for trees. - * - * @author Mathieu Bastian - * @param The type of Object in the tree - */ -public class BiParamAVLIterator implements Iterator { - - private ParamAVLTree tree2; - private ParamAVLTree currentTree; - private ParamAVLNode next; - private Item current; - - public BiParamAVLIterator(ParamAVLTree tree1, ParamAVLTree tree2) { - if (tree1 == null) { - this.currentTree = tree2; - } else { - this.currentTree = tree1; - this.tree2 = tree2; - } - if (currentTree != null) { - next = currentTree.root; - } - goToDownLeft(); - } - - private void goToDownLeft() { - if (next != null) { - while (next.left != null) { - next = next.left; - } - } - } - - public boolean hasNext() { - if (next == null) { - if (tree2 != null && currentTree != tree2) { - currentTree = tree2; - next = currentTree.root; - if (next == null) { - return false; - } - goToDownLeft(); - } else { - return false; - } - } - - current = this.next.item; - - if (next.right == null) { - while ((next.parent != null) && (next == next.parent.right)) { - this.next = this.next.parent; - } - - this.next = this.next.parent; - } else { - this.next = this.next.right; - - while (this.next.left != null) { - this.next = this.next.left; - } - } - - return true; - } - - public Item next() { - return current; - } - - public void remove() { - currentTree.remove(current); //TODO Optimize, remove in O(1) instead of O(ln(n)) - } -} diff --git a/modules/CollectionUtils/src/main/java/org/gephi/utils/collection/avl/MonoAVLTree.java b/modules/CollectionUtils/src/main/java/org/gephi/utils/collection/avl/MonoAVLTree.java deleted file mode 100644 index 63e1c2d471..0000000000 --- a/modules/CollectionUtils/src/main/java/org/gephi/utils/collection/avl/MonoAVLTree.java +++ /dev/null @@ -1,737 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.utils.collection.avl; - -import java.util.Iterator; -import org.gephi.utils.collection.avl.ResetableIterator; - -/** - * Simple AVL Tree storing items of {@link AVLItem} class. It uses the getNumber() method to - * get item's key. With the iterator, nodes in the tree will be returned in a ascending order. - *

    - * The AVL tree implementaion is based on a iterative method and guarantee O(ln(n)) access. - *

    - * This tree has a single iterator, it can be accessed from a single thread. - * @author Mathieu Bastian - */ -public class MonoAVLTree implements Iterable { - - protected MonoAVLNode root; - protected int count; - protected MonoAVLIterator iterator; - - public MonoAVLTree() { - iterator = new MonoAVLIterator(); - } - - public boolean add(AVLItem item) { - MonoAVLNode p = this.root; - - if (p == null) { - this.root = new MonoAVLNode(item); - } else { - while (true) { - int c = item.getNumber() - p.item.getNumber(); - - if (c < 0) { - if (p.left != null) { - p = p.left; - } else { - p.left = new MonoAVLNode(item, p); - p.balance--; - - break; - } - } else if (c > 0) { - if (p.right != null) { - p = p.right; - } else { - p.right = new MonoAVLNode(item, p); - p.balance++; - - break; - } - } else { - return false; - } - } - - while ((p.balance != 0) && (p.parent != null)) { - if (p.parent.left == p) { - p.parent.balance--; - } else { - p.parent.balance++; - } - - p = p.parent; - - if (p.balance == -2) { - MonoAVLNode x = p.left; - - if (x.balance == -1) { - x.parent = p.parent; - - if (p.parent == null) { - this.root = x; - } else { - if (p.parent.left == p) { - p.parent.left = x; - } else { - p.parent.right = x; - } - } - - p.left = x.right; - - if (p.left != null) { - p.left.parent = p; - } - - x.right = p; - p.parent = x; - - x.balance = 0; - p.balance = 0; - } else { - MonoAVLNode w = x.right; - - w.parent = p.parent; - - if (p.parent == null) { - this.root = w; - } else { - if (p.parent.left == p) { - p.parent.left = w; - } else { - p.parent.right = w; - } - } - - x.right = w.left; - - if (x.right != null) { - x.right.parent = x; - } - - p.left = w.right; - - if (p.left != null) { - p.left.parent = p; - } - - w.left = x; - w.right = p; - - x.parent = w; - p.parent = w; - - if (w.balance == -1) { - x.balance = 0; - p.balance = 1; - } else if (w.balance == 0) { - x.balance = 0; - p.balance = 0; - } else // w.balance == 1 - { - x.balance = -1; - p.balance = 0; - } - - w.balance = 0; - } - - break; - } else if (p.balance == 2) { - MonoAVLNode x = p.right; - - if (x.balance == 1) { - x.parent = p.parent; - - if (p.parent == null) { - this.root = x; - } else { - if (p.parent.left == p) { - p.parent.left = x; - } else { - p.parent.right = x; - } - } - - p.right = x.left; - - if (p.right != null) { - p.right.parent = p; - } - - x.left = p; - p.parent = x; - - x.balance = 0; - p.balance = 0; - } else { - MonoAVLNode w = x.left; - - w.parent = p.parent; - - if (p.parent == null) { - this.root = w; - } else { - if (p.parent.left == p) { - p.parent.left = w; - } else { - p.parent.right = w; - } - } - - x.left = w.right; - - if (x.left != null) { - x.left.parent = x; - } - - p.right = w.left; - - if (p.right != null) { - p.right.parent = p; - } - - w.right = x; - w.left = p; - - x.parent = w; - p.parent = w; - - if (w.balance == 1) { - x.balance = 0; - p.balance = -1; - } else if (w.balance == 0) { - x.balance = 0; - p.balance = 0; - } else // w.balance == -1 - { - x.balance = 1; - p.balance = 0; - } - - w.balance = 0; - } - - break; - } - } - } - - this.count++; - return true; - } - - public boolean remove(AVLItem item) { - return this.remove(item.getNumber()); - } - - public boolean remove(int number) { - MonoAVLNode p = this.root; - - while (p != null) { - int c = number - p.item.getNumber(); - - if (c < 0) { - p = p.left; - } else if (c > 0) { - p = p.right; - } else { - MonoAVLNode y; // node from which rebalancing begins - - int choice = 0; //0:Done 1:Left 2:Right - - if (p.right == null) // Case 1: p has no right child - { - if (p.left != null) { - p.left.parent = p.parent; - } - - if (p.parent == null) { - this.root = p.left; - - count--; - return true; - } - - if (p == p.parent.left) { - p.parent.left = p.left; - - y = p.parent; - - choice = 1; - // goto LeftDelete; - } else { - p.parent.right = p.left; - - y = p.parent; - - choice = 2; - //goto RightDelete; - } - } else if (p.right.left == null) // Case 2: p's right child has no left child - { - if (p.left != null) { - p.left.parent = p.right; - p.right.left = p.left; - } - - p.right.balance = p.balance; - p.right.parent = p.parent; - - if (p.parent == null) { - this.root = p.right; - } else { - if (p == p.parent.left) { - p.parent.left = p.right; - } else { - p.parent.right = p.right; - } - } - - y = p.right; - - choice = 2; - //goto RightDelete; - } else // Case 3: p's right child has a left child - { - MonoAVLNode s = p.right.left; - - while (s.left != null) { - s = s.left; - } - - if (p.left != null) { - p.left.parent = s; - s.left = p.left; - } - - s.parent.left = s.right; - - if (s.right != null) { - s.right.parent = s.parent; - } - - p.right.parent = s; - s.right = p.right; - - y = s.parent; // for rebalacing, must be set before we change s.parent - - s.balance = p.balance; - s.parent = p.parent; - - if (p.parent == null) { - this.root = s; - } else { - if (p == p.parent.left) { - p.parent.left = s; - } else { - p.parent.right = s; - } - } - - choice = 1; - // goto LeftDelete; - } - - // rebalancing begins - while (choice != 0) { - if (choice == 1) { - //LeftDelete: - - y.balance++; - - if (y.balance == 1) { - //goto Done; - choice = 0; - } else if (y.balance == 2) { - MonoAVLNode x = y.right; - - if (x.balance == -1) { - MonoAVLNode w = x.left; - - w.parent = y.parent; - - if (y.parent == null) { - this.root = w; - } else { - if (y.parent.left == y) { - y.parent.left = w; - } else { - y.parent.right = w; - } - } - - x.left = w.right; - - if (x.left != null) { - x.left.parent = x; - } - - y.right = w.left; - - if (y.right != null) { - y.right.parent = y; - } - - w.right = x; - w.left = y; - - x.parent = w; - y.parent = w; - - if (w.balance == 1) { - x.balance = 0; - y.balance = -1; - } else if (w.balance == 0) { - x.balance = 0; - y.balance = 0; - } else // w.balance == -1 - { - x.balance = 1; - y.balance = 0; - } - - w.balance = 0; - - y = w; // for next iteration - } else { - x.parent = y.parent; - - if (y.parent != null) { - if (y.parent.left == y) { - y.parent.left = x; - } else { - y.parent.right = x; - } - } else { - this.root = x; - } - - y.right = x.left; - - if (y.right != null) { - y.right.parent = y; - } - - x.left = y; - y.parent = x; - - if (x.balance == 0) { - x.balance = -1; - y.balance = 1; - - //goto Done - choice = 0; - } else { - x.balance = 0; - y.balance = 0; - - y = x; // for next iteration - } - } - } - } else if (choice == 2) { - //goto LoopTest; - - - //RightDelete: - - y.balance--; - - if (y.balance == -1) { - choice = 0; - //goto Done; - } else if (y.balance == -2) { - MonoAVLNode x = y.left; - - if (x.balance == 1) { - MonoAVLNode w = x.right; - - w.parent = y.parent; - - if (y.parent == null) { - this.root = w; - } else { - if (y.parent.left == y) { - y.parent.left = w; - } else { - y.parent.right = w; - } - } - - x.right = w.left; - - if (x.right != null) { - x.right.parent = x; - } - - y.left = w.right; - - if (y.left != null) { - y.left.parent = y; - } - - w.left = x; - w.right = y; - - x.parent = w; - y.parent = w; - - if (w.balance == -1) { - x.balance = 0; - y.balance = 1; - } else if (w.balance == 0) { - x.balance = 0; - y.balance = 0; - } else // w.balance == 1 - { - x.balance = -1; - y.balance = 0; - } - - w.balance = 0; - - y = w; // for next iteration - } else { - x.parent = y.parent; - - if (y.parent != null) { - if (y.parent.left == y) { - y.parent.left = x; - } else { - y.parent.right = x; - } - } else { - this.root = x; - } - - y.left = x.right; - - if (y.left != null) { - y.left.parent = y; - } - - x.right = y; - y.parent = x; - - if (x.balance == 0) { - x.balance = 1; - y.balance = -1; - - choice = 0; - //goto Done; - } else { - x.balance = 0; - y.balance = 0; - - y = x; // for next iteration - } - } - } - } - - - if (choice == 0) { - this.count--; - return true; - } - - //LoopTest: { - - if (y.parent != null) { - if (y == y.parent.left) { - y = y.parent; - choice = 1; - // goto LeftDelete; - } else { - y = y.parent; - choice = 2; - //goto RightDelete; - } - } else { - //Done - this.count--; - return true; - } - } - - } - } - - return false; - } - - public boolean contains(AVLItem item) { - MonoAVLNode p = this.root; - - while (p != null) { - int c = item.getNumber() - p.item.getNumber(); - - if (c < 0) { - p = p.left; - } else if (c > 0) { - p = p.right; - } else { - return true; - } - } - - return false; - } - - public AVLItem get(int number) { - MonoAVLNode p = this.root; - - while (p != null) { - int c = number - p.item.getNumber(); - - if (c < 0) { - p = p.left; - } else if (c > 0) { - p = p.right; - } else { - return p.item; - } - } - - return null; - } - - public void clear() { - this.root = null; - this.count = 0; - } - - public Iterator iterator() { - iterator.setNode(this); - return iterator; - } - - public int getCount() { - return count; - } - - private class MonoAVLNode { - - MonoAVLNode parent; - MonoAVLNode left; - MonoAVLNode right; - int balance; - AVLItem item; - - public MonoAVLNode(AVLItem item) { - this.item = item; - } - - public MonoAVLNode(AVLItem item, MonoAVLNode parent) { - this.item = item; - this.parent = parent; - } - } - - private static class MonoAVLIterator implements Iterator, ResetableIterator { - - private MonoAVLNode next; - private AVLItem current; - - public MonoAVLIterator() { - } - - public MonoAVLIterator(MonoAVLNode node) { - this.next = node; - goToDownLeft(); - } - - public MonoAVLIterator(MonoAVLTree tree) { - this(tree.root); - } - - public void setNode(MonoAVLTree tree) { - this.next = tree.root; - goToDownLeft(); - } - - private void goToDownLeft() { - if (next != null) { - while (next.left != null) { - next = next.left; - } - } - } - - public boolean hasNext() { - if (next == null) { - return false; - } - - current = this.next.item; - - if (next.right == null) { - while ((next.parent != null) && (next == next.parent.right)) { - this.next = this.next.parent; - } - - this.next = this.next.parent; - } else { - this.next = this.next.right; - - while (this.next.left != null) { - this.next = this.next.left; - } - } - - return true; - } - - public AVLItem next() { - return current; - } - - public void remove() { - throw new UnsupportedOperationException(); - } - } -} diff --git a/modules/CollectionUtils/src/main/java/org/gephi/utils/collection/avl/ParamAVLIterator.java b/modules/CollectionUtils/src/main/java/org/gephi/utils/collection/avl/ParamAVLIterator.java deleted file mode 100644 index 4c2647848b..0000000000 --- a/modules/CollectionUtils/src/main/java/org/gephi/utils/collection/avl/ParamAVLIterator.java +++ /dev/null @@ -1,117 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.utils.collection.avl; - -import java.util.Iterator; -import org.gephi.utils.collection.avl.ResetableIterator; - -/** - * Iterator for the {@link ParamAVLTree}. Return items in an ascending order. - * - * @author Mathieu Bastian - * @param The type of Object in the tree - */ -public class ParamAVLIterator implements Iterator, ResetableIterator { - - private ParamAVLTree tree; - private ParamAVLNode next; - private Item current; - - public ParamAVLIterator() { - } - - public ParamAVLIterator(ParamAVLNode node) { - this.next = node; - goToDownLeft(); - } - - public ParamAVLIterator(ParamAVLTree tree) { - this(tree.root); - this.tree = tree; - } - - public void setNode(ParamAVLTree tree) { - this.next = tree.root; - this.tree = tree; - goToDownLeft(); - } - - private void goToDownLeft() { - if (next != null) { - while (next.left != null) { - next = next.left; - } - } - } - - public boolean hasNext() { - if (next == null) { - return false; - } - - current = this.next.item; - - if (next.right == null) { - while ((next.parent != null) && (next == next.parent.right)) { - this.next = this.next.parent; - } - - this.next = this.next.parent; - } else { - this.next = this.next.right; - - while (this.next.left != null) { - this.next = this.next.left; - } - } - - return true; - } - - public Item next() { - return current; - } - - public void remove() { - tree.remove(current); //TODO Optimize, remove in O(1) instead of O(ln(n)) - } -} diff --git a/modules/CollectionUtils/src/main/java/org/gephi/utils/collection/avl/ParamAVLNode.java b/modules/CollectionUtils/src/main/java/org/gephi/utils/collection/avl/ParamAVLNode.java deleted file mode 100644 index 53048051ae..0000000000 --- a/modules/CollectionUtils/src/main/java/org/gephi/utils/collection/avl/ParamAVLNode.java +++ /dev/null @@ -1,66 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.utils.collection.avl; - -/** - * Node of the {@link ParamAVLTree}. - * - * @author Mathieu Bastian - * @param The type of Object in the tree - */ -public class ParamAVLNode { - - ParamAVLNode parent; - ParamAVLNode left; - ParamAVLNode right; - int balance; - Item item; - - public ParamAVLNode(Item item) { - this.item = item; - } - - public ParamAVLNode(Item item, ParamAVLNode parent) { - this.item = item; - this.parent = parent; - } -} diff --git a/modules/CollectionUtils/src/main/java/org/gephi/utils/collection/avl/ParamAVLTree.java b/modules/CollectionUtils/src/main/java/org/gephi/utils/collection/avl/ParamAVLTree.java deleted file mode 100644 index a27971baec..0000000000 --- a/modules/CollectionUtils/src/main/java/org/gephi/utils/collection/avl/ParamAVLTree.java +++ /dev/null @@ -1,676 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.utils.collection.avl; - -import java.lang.reflect.Array; -import java.util.Iterator; - -/** - * Special type of AVL tree which possess a {@link AVLItemAccessor}. It allows to configure the indexes returned - * by the tree nodes - * - * @author Mathieu Bastian - * @param The type of Object in the tree - */ -public class ParamAVLTree implements Iterable { - - protected ParamAVLNode root; - protected int count; - private AVLItemAccessor accessor; - - public ParamAVLTree(AVLItemAccessor accessor) { - this.accessor = accessor; - } - - public ParamAVLTree() { - } - - public boolean add(Item item) { - ParamAVLNode p = this.root; - - if (p == null) { - this.root = new ParamAVLNode(item); - } else { - while (true) { - int c = accessor.getNumber(item) - accessor.getNumber(p.item); - - if (c < 0) { - if (p.left != null) { - p = p.left; - } else { - p.left = new ParamAVLNode(item, p); - p.balance--; - - break; - } - } else if (c > 0) { - if (p.right != null) { - p = p.right; - } else { - p.right = new ParamAVLNode(item, p); - p.balance++; - - break; - } - } else { - return false; - } - } - - while ((p.balance != 0) && (p.parent != null)) { - if (p.parent.left == p) { - p.parent.balance--; - } else { - p.parent.balance++; - } - - p = p.parent; - - if (p.balance == -2) { - ParamAVLNode x = p.left; - - if (x.balance == -1) { - x.parent = p.parent; - - if (p.parent == null) { - this.root = x; - } else { - if (p.parent.left == p) { - p.parent.left = x; - } else { - p.parent.right = x; - } - } - - p.left = x.right; - - if (p.left != null) { - p.left.parent = p; - } - - x.right = p; - p.parent = x; - - x.balance = 0; - p.balance = 0; - } else { - ParamAVLNode w = x.right; - - w.parent = p.parent; - - if (p.parent == null) { - this.root = w; - } else { - if (p.parent.left == p) { - p.parent.left = w; - } else { - p.parent.right = w; - } - } - - x.right = w.left; - - if (x.right != null) { - x.right.parent = x; - } - - p.left = w.right; - - if (p.left != null) { - p.left.parent = p; - } - - w.left = x; - w.right = p; - - x.parent = w; - p.parent = w; - - if (w.balance == -1) { - x.balance = 0; - p.balance = 1; - } else if (w.balance == 0) { - x.balance = 0; - p.balance = 0; - } else // w.balance == 1 - { - x.balance = -1; - p.balance = 0; - } - - w.balance = 0; - } - - break; - } else if (p.balance == 2) { - ParamAVLNode x = p.right; - - if (x.balance == 1) { - x.parent = p.parent; - - if (p.parent == null) { - this.root = x; - } else { - if (p.parent.left == p) { - p.parent.left = x; - } else { - p.parent.right = x; - } - } - - p.right = x.left; - - if (p.right != null) { - p.right.parent = p; - } - - x.left = p; - p.parent = x; - - x.balance = 0; - p.balance = 0; - } else { - ParamAVLNode w = x.left; - - w.parent = p.parent; - - if (p.parent == null) { - this.root = w; - } else { - if (p.parent.left == p) { - p.parent.left = w; - } else { - p.parent.right = w; - } - } - - x.left = w.right; - - if (x.left != null) { - x.left.parent = x; - } - - p.right = w.left; - - if (p.right != null) { - p.right.parent = p; - } - - w.right = x; - w.left = p; - - x.parent = w; - p.parent = w; - - if (w.balance == 1) { - x.balance = 0; - p.balance = -1; - } else if (w.balance == 0) { - x.balance = 0; - p.balance = 0; - } else // w.balance == -1 - { - x.balance = 1; - p.balance = 0; - } - - w.balance = 0; - } - - break; - } - } - } - - this.count++; - return true; - } - - public boolean remove(Item item) { - ParamAVLNode p = this.root; - - while (p != null) { - int c = accessor.getNumber(item) - accessor.getNumber(p.item); - - if (c < 0) { - p = p.left; - } else if (c > 0) { - p = p.right; - } else { - ParamAVLNode y; // node from which rebalancing begins - - int choice = 0; //0:Done 1:Left 2:Right - - if (p.right == null) // Case 1: p has no right child - { - if (p.left != null) { - p.left.parent = p.parent; - } - - if (p.parent == null) { - this.root = p.left; - - count--; - return true; - } - - if (p == p.parent.left) { - p.parent.left = p.left; - - y = p.parent; - - choice = 1; - // goto LeftDelete; - } else { - p.parent.right = p.left; - - y = p.parent; - - choice = 2; - //goto RightDelete; - } - } else if (p.right.left == null) // Case 2: p's right child has no left child - { - if (p.left != null) { - p.left.parent = p.right; - p.right.left = p.left; - } - - p.right.balance = p.balance; - p.right.parent = p.parent; - - if (p.parent == null) { - this.root = p.right; - } else { - if (p == p.parent.left) { - p.parent.left = p.right; - } else { - p.parent.right = p.right; - } - } - - y = p.right; - - choice = 2; - //goto RightDelete; - } else // Case 3: p's right child has a left child - { - ParamAVLNode s = p.right.left; - - while (s.left != null) { - s = s.left; - } - - if (p.left != null) { - p.left.parent = s; - s.left = p.left; - } - - s.parent.left = s.right; - - if (s.right != null) { - s.right.parent = s.parent; - } - - p.right.parent = s; - s.right = p.right; - - y = s.parent; // for rebalacing, must be set before we change s.parent - - s.balance = p.balance; - s.parent = p.parent; - - if (p.parent == null) { - this.root = s; - } else { - if (p == p.parent.left) { - p.parent.left = s; - } else { - p.parent.right = s; - } - } - - choice = 1; - // goto LeftDelete; - } - - // rebalancing begins - while (choice != 0) { - if (choice == 1) { - //LeftDelete: - - y.balance++; - - if (y.balance == 1) { - //goto Done; - choice = 0; - } else if (y.balance == 2) { - ParamAVLNode x = y.right; - - if (x.balance == -1) { - ParamAVLNode w = x.left; - - w.parent = y.parent; - - if (y.parent == null) { - this.root = w; - } else { - if (y.parent.left == y) { - y.parent.left = w; - } else { - y.parent.right = w; - } - } - - x.left = w.right; - - if (x.left != null) { - x.left.parent = x; - } - - y.right = w.left; - - if (y.right != null) { - y.right.parent = y; - } - - w.right = x; - w.left = y; - - x.parent = w; - y.parent = w; - - if (w.balance == 1) { - x.balance = 0; - y.balance = -1; - } else if (w.balance == 0) { - x.balance = 0; - y.balance = 0; - } else // w.balance == -1 - { - x.balance = 1; - y.balance = 0; - } - - w.balance = 0; - - y = w; // for next iteration - } else { - x.parent = y.parent; - - if (y.parent != null) { - if (y.parent.left == y) { - y.parent.left = x; - } else { - y.parent.right = x; - } - } else { - this.root = x; - } - - y.right = x.left; - - if (y.right != null) { - y.right.parent = y; - } - - x.left = y; - y.parent = x; - - if (x.balance == 0) { - x.balance = -1; - y.balance = 1; - - //goto Done - choice = 0; - } else { - x.balance = 0; - y.balance = 0; - - y = x; // for next iteration - } - } - } - } else if (choice == 2) { - //goto LoopTest; - - - //RightDelete: - - y.balance--; - - if (y.balance == -1) { - choice = 0; - //goto Done; - } else if (y.balance == -2) { - ParamAVLNode x = y.left; - - if (x.balance == 1) { - ParamAVLNode w = x.right; - - w.parent = y.parent; - - if (y.parent == null) { - this.root = w; - } else { - if (y.parent.left == y) { - y.parent.left = w; - } else { - y.parent.right = w; - } - } - - x.right = w.left; - - if (x.right != null) { - x.right.parent = x; - } - - y.left = w.right; - - if (y.left != null) { - y.left.parent = y; - } - - w.left = x; - w.right = y; - - x.parent = w; - y.parent = w; - - if (w.balance == -1) { - x.balance = 0; - y.balance = 1; - } else if (w.balance == 0) { - x.balance = 0; - y.balance = 0; - } else // w.balance == 1 - { - x.balance = -1; - y.balance = 0; - } - - w.balance = 0; - - y = w; // for next iteration - } else { - x.parent = y.parent; - - if (y.parent != null) { - if (y.parent.left == y) { - y.parent.left = x; - } else { - y.parent.right = x; - } - } else { - this.root = x; - } - - y.left = x.right; - - if (y.left != null) { - y.left.parent = y; - } - - x.right = y; - y.parent = x; - - if (x.balance == 0) { - x.balance = 1; - y.balance = -1; - - choice = 0; - //goto Done; - } else { - x.balance = 0; - y.balance = 0; - - y = x; // for next iteration - } - } - } - } - - - if (choice == 0) { - this.count--; - return true; - } - - //LoopTest: { - - if (y.parent != null) { - if (y == y.parent.left) { - y = y.parent; - choice = 1; - // goto LeftDelete; - } else { - y = y.parent; - choice = 2; - //goto RightDelete; - } - } else { - //Done - this.count--; - return true; - } - } - - } - } - - return false; - } - - public boolean contains(Item item) { - ParamAVLNode p = this.root; - - while (p != null) { - int c = accessor.getNumber(item) - accessor.getNumber(p.item); - - if (c < 0) { - p = p.left; - } else if (c > 0) { - p = p.right; - } else { - return true; - } - } - - return false; - } - - public Item getItem(int number) { - ParamAVLNode p = this.root; - - while (p != null) { - int c = number - accessor.getNumber(p.item); - - if (c < 0) { - p = p.left; - } else if (c > 0) { - p = p.right; - } else { - return p.item; - } - } - - return null; - } - - public void clear() { - this.root = null; - this.count = 0; - } - - public Iterator iterator() { - return new ParamAVLIterator(this); - } - - public int getCount() { - return count; - } - - public boolean isEmpty() { - return count==0; - } - - public AVLItemAccessor getAccessor() { - return accessor; - } - - public void setAccessor(AVLItemAccessor accessor) { - this.accessor = accessor; - } - - public Item[] toArray(Item[] array) { - Item[] result = (Item[]) java.lang.reflect.Array.newInstance(array.getClass().getComponentType(), count); - if(count==0) - return result; - ParamAVLIterator itr = new ParamAVLIterator(root); - for (int i = 0; itr.hasNext(); i++) { - Item item = itr.next(); - result[i] = item; - } - return result; - } -} diff --git a/modules/CollectionUtils/src/main/java/org/gephi/utils/collection/avl/ResetableIterator.java b/modules/CollectionUtils/src/main/java/org/gephi/utils/collection/avl/ResetableIterator.java deleted file mode 100644 index 68bab73ad8..0000000000 --- a/modules/CollectionUtils/src/main/java/org/gephi/utils/collection/avl/ResetableIterator.java +++ /dev/null @@ -1,52 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.utils.collection.avl; - -/** - * Interface without methods, specify an iterator can be reset and used more than once. - *

    - * Iterators implementing this interface possess a setNode() or reset() method. - * - * @author Mathieu Bastian - */ -public interface ResetableIterator { -} diff --git a/modules/CollectionUtils/src/main/java/org/gephi/utils/collection/avl/SimpleAVLTree.java b/modules/CollectionUtils/src/main/java/org/gephi/utils/collection/avl/SimpleAVLTree.java deleted file mode 100644 index 4ed29b8241..0000000000 --- a/modules/CollectionUtils/src/main/java/org/gephi/utils/collection/avl/SimpleAVLTree.java +++ /dev/null @@ -1,729 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ -package org.gephi.utils.collection.avl; - -import java.util.Iterator; -import org.gephi.utils.collection.avl.ResetableIterator; - -/** - * Simple AVL Tree storing items of {@link AVLItem} class. It uses the getNumber() method to - * get item's key. With the iterator, nodes in the tree will be returned in a ascending order. - *

    - * The AVL tree implementaion is based on a iterative method and guarantee O(ln(n)) access. - * @author Mathieu Bastian - */ -public class SimpleAVLTree implements Iterable { - - protected SimpleAVLNode root; - protected int count; - - public boolean add(AVLItem item) { - SimpleAVLNode p = this.root; - - if (p == null) { - this.root = new SimpleAVLNode(item); - } else { - while (true) { - int c = item.getNumber() - p.item.getNumber(); - - if (c < 0) { - if (p.left != null) { - p = p.left; - } else { - p.left = new SimpleAVLNode(item, p); - p.balance--; - - break; - } - } else if (c > 0) { - if (p.right != null) { - p = p.right; - } else { - p.right = new SimpleAVLNode(item, p); - p.balance++; - - break; - } - } else { - return false; - } - } - - while ((p.balance != 0) && (p.parent != null)) { - if (p.parent.left == p) { - p.parent.balance--; - } else { - p.parent.balance++; - } - - p = p.parent; - - if (p.balance == -2) { - SimpleAVLNode x = p.left; - - if (x.balance == -1) { - x.parent = p.parent; - - if (p.parent == null) { - this.root = x; - } else { - if (p.parent.left == p) { - p.parent.left = x; - } else { - p.parent.right = x; - } - } - - p.left = x.right; - - if (p.left != null) { - p.left.parent = p; - } - - x.right = p; - p.parent = x; - - x.balance = 0; - p.balance = 0; - } else { - SimpleAVLNode w = x.right; - - w.parent = p.parent; - - if (p.parent == null) { - this.root = w; - } else { - if (p.parent.left == p) { - p.parent.left = w; - } else { - p.parent.right = w; - } - } - - x.right = w.left; - - if (x.right != null) { - x.right.parent = x; - } - - p.left = w.right; - - if (p.left != null) { - p.left.parent = p; - } - - w.left = x; - w.right = p; - - x.parent = w; - p.parent = w; - - if (w.balance == -1) { - x.balance = 0; - p.balance = 1; - } else if (w.balance == 0) { - x.balance = 0; - p.balance = 0; - } else // w.balance == 1 - { - x.balance = -1; - p.balance = 0; - } - - w.balance = 0; - } - - break; - } else if (p.balance == 2) { - SimpleAVLNode x = p.right; - - if (x.balance == 1) { - x.parent = p.parent; - - if (p.parent == null) { - this.root = x; - } else { - if (p.parent.left == p) { - p.parent.left = x; - } else { - p.parent.right = x; - } - } - - p.right = x.left; - - if (p.right != null) { - p.right.parent = p; - } - - x.left = p; - p.parent = x; - - x.balance = 0; - p.balance = 0; - } else { - SimpleAVLNode w = x.left; - - w.parent = p.parent; - - if (p.parent == null) { - this.root = w; - } else { - if (p.parent.left == p) { - p.parent.left = w; - } else { - p.parent.right = w; - } - } - - x.left = w.right; - - if (x.left != null) { - x.left.parent = x; - } - - p.right = w.left; - - if (p.right != null) { - p.right.parent = p; - } - - w.right = x; - w.left = p; - - x.parent = w; - p.parent = w; - - if (w.balance == 1) { - x.balance = 0; - p.balance = -1; - } else if (w.balance == 0) { - x.balance = 0; - p.balance = 0; - } else // w.balance == -1 - { - x.balance = 1; - p.balance = 0; - } - - w.balance = 0; - } - - break; - } - } - } - - this.count++; - return true; - } - - public boolean remove(AVLItem item) { - return this.remove(item.getNumber()); - } - - public boolean remove(int number) { - SimpleAVLNode p = this.root; - - while (p != null) { - int c = number - p.item.getNumber(); - - if (c < 0) { - p = p.left; - } else if (c > 0) { - p = p.right; - } else { - SimpleAVLNode y; // node from which rebalancing begins - - int choice = 0; //0:Done 1:Left 2:Right - - if (p.right == null) // Case 1: p has no right child - { - if (p.left != null) { - p.left.parent = p.parent; - } - - if (p.parent == null) { - this.root = p.left; - - count--; - return true; - } - - if (p == p.parent.left) { - p.parent.left = p.left; - - y = p.parent; - - choice = 1; - // goto LeftDelete; - } else { - p.parent.right = p.left; - - y = p.parent; - - choice = 2; - //goto RightDelete; - } - } else if (p.right.left == null) // Case 2: p's right child has no left child - { - if (p.left != null) { - p.left.parent = p.right; - p.right.left = p.left; - } - - p.right.balance = p.balance; - p.right.parent = p.parent; - - if (p.parent == null) { - this.root = p.right; - } else { - if (p == p.parent.left) { - p.parent.left = p.right; - } else { - p.parent.right = p.right; - } - } - - y = p.right; - - choice = 2; - //goto RightDelete; - } else // Case 3: p's right child has a left child - { - SimpleAVLNode s = p.right.left; - - while (s.left != null) { - s = s.left; - } - - if (p.left != null) { - p.left.parent = s; - s.left = p.left; - } - - s.parent.left = s.right; - - if (s.right != null) { - s.right.parent = s.parent; - } - - p.right.parent = s; - s.right = p.right; - - y = s.parent; // for rebalacing, must be set before we change s.parent - - s.balance = p.balance; - s.parent = p.parent; - - if (p.parent == null) { - this.root = s; - } else { - if (p == p.parent.left) { - p.parent.left = s; - } else { - p.parent.right = s; - } - } - - choice = 1; - // goto LeftDelete; - } - - // rebalancing begins - while (choice != 0) { - if (choice == 1) { - //LeftDelete: - - y.balance++; - - if (y.balance == 1) { - //goto Done; - choice = 0; - } else if (y.balance == 2) { - SimpleAVLNode x = y.right; - - if (x.balance == -1) { - SimpleAVLNode w = x.left; - - w.parent = y.parent; - - if (y.parent == null) { - this.root = w; - } else { - if (y.parent.left == y) { - y.parent.left = w; - } else { - y.parent.right = w; - } - } - - x.left = w.right; - - if (x.left != null) { - x.left.parent = x; - } - - y.right = w.left; - - if (y.right != null) { - y.right.parent = y; - } - - w.right = x; - w.left = y; - - x.parent = w; - y.parent = w; - - if (w.balance == 1) { - x.balance = 0; - y.balance = -1; - } else if (w.balance == 0) { - x.balance = 0; - y.balance = 0; - } else // w.balance == -1 - { - x.balance = 1; - y.balance = 0; - } - - w.balance = 0; - - y = w; // for next iteration - } else { - x.parent = y.parent; - - if (y.parent != null) { - if (y.parent.left == y) { - y.parent.left = x; - } else { - y.parent.right = x; - } - } else { - this.root = x; - } - - y.right = x.left; - - if (y.right != null) { - y.right.parent = y; - } - - x.left = y; - y.parent = x; - - if (x.balance == 0) { - x.balance = -1; - y.balance = 1; - - //goto Done - choice = 0; - } else { - x.balance = 0; - y.balance = 0; - - y = x; // for next iteration - } - } - } - } else if (choice == 2) { - //goto LoopTest; - - - //RightDelete: - - y.balance--; - - if (y.balance == -1) { - choice = 0; - //goto Done; - } else if (y.balance == -2) { - SimpleAVLNode x = y.left; - - if (x.balance == 1) { - SimpleAVLNode w = x.right; - - w.parent = y.parent; - - if (y.parent == null) { - this.root = w; - } else { - if (y.parent.left == y) { - y.parent.left = w; - } else { - y.parent.right = w; - } - } - - x.right = w.left; - - if (x.right != null) { - x.right.parent = x; - } - - y.left = w.right; - - if (y.left != null) { - y.left.parent = y; - } - - w.left = x; - w.right = y; - - x.parent = w; - y.parent = w; - - if (w.balance == -1) { - x.balance = 0; - y.balance = 1; - } else if (w.balance == 0) { - x.balance = 0; - y.balance = 0; - } else // w.balance == 1 - { - x.balance = -1; - y.balance = 0; - } - - w.balance = 0; - - y = w; // for next iteration - } else { - x.parent = y.parent; - - if (y.parent != null) { - if (y.parent.left == y) { - y.parent.left = x; - } else { - y.parent.right = x; - } - } else { - this.root = x; - } - - y.left = x.right; - - if (y.left != null) { - y.left.parent = y; - } - - x.right = y; - y.parent = x; - - if (x.balance == 0) { - x.balance = 1; - y.balance = -1; - - choice = 0; - //goto Done; - } else { - x.balance = 0; - y.balance = 0; - - y = x; // for next iteration - } - } - } - } - - - if (choice == 0) { - this.count--; - return true; - } - - //LoopTest: { - - if (y.parent != null) { - if (y == y.parent.left) { - y = y.parent; - choice = 1; - // goto LeftDelete; - } else { - y = y.parent; - choice = 2; - //goto RightDelete; - } - } else { - //Done - this.count--; - return true; - } - } - - } - } - - return false; - } - - public boolean contains(AVLItem item) { - SimpleAVLNode p = this.root; - - while (p != null) { - int c = item.getNumber() - p.item.getNumber(); - - if (c < 0) { - p = p.left; - } else if (c > 0) { - p = p.right; - } else { - return true; - } - } - - return false; - } - - public AVLItem get(int number) { - SimpleAVLNode p = this.root; - - while (p != null) { - int c = number - p.item.getNumber(); - - if (c < 0) { - p = p.left; - } else if (c > 0) { - p = p.right; - } else { - return p.item; - } - } - - return null; - } - - public void clear() { - this.root = null; - this.count = 0; - } - - public Iterator iterator() { - return new SimpleAVLIterator(this); - } - - public int getCount() { - return count; - } - - private class SimpleAVLNode { - - SimpleAVLNode parent; - SimpleAVLNode left; - SimpleAVLNode right; - int balance; - AVLItem item; - - public SimpleAVLNode(AVLItem item) { - this.item = item; - } - - public SimpleAVLNode(AVLItem item, SimpleAVLNode parent) { - this.item = item; - this.parent = parent; - } - } - - private class SimpleAVLIterator implements Iterator, ResetableIterator { - - private SimpleAVLNode next; - private AVLItem current; - - public SimpleAVLIterator() { - } - - public SimpleAVLIterator(SimpleAVLNode node) { - this.next = node; - goToDownLeft(); - } - - public SimpleAVLIterator(SimpleAVLTree tree) { - this(tree.root); - } - - public void setNode(SimpleAVLTree tree) { - this.next = tree.root; - goToDownLeft(); - } - - private void goToDownLeft() { - if (next != null) { - while (next.left != null) { - next = next.left; - } - } - } - - public boolean hasNext() { - if (next == null) { - return false; - } - - current = this.next.item; - - if (next.right == null) { - while ((next.parent != null) && (next == next.parent.right)) { - this.next = this.next.parent; - } - - this.next = this.next.parent; - } else { - this.next = this.next.right; - - while (this.next.left != null) { - this.next = this.next.left; - } - } - - return true; - } - - public AVLItem next() { - return current; - } - - public void remove() { - SimpleAVLTree.this.remove(current); - } - } -} diff --git a/modules/CollectionUtils/src/main/nbm/manifest.mf b/modules/CollectionUtils/src/main/nbm/manifest.mf deleted file mode 100644 index 3b6a2e9522..0000000000 --- a/modules/CollectionUtils/src/main/nbm/manifest.mf +++ /dev/null @@ -1,4 +0,0 @@ -Manifest-Version: 1.0 -AutoUpdate-Essential-Module: true -OpenIDE-Module-Localizing-Bundle: org/gephi/utils/collection/Bundle.properties -OpenIDE-Module-Specification-Version: ${gephi.modules.specification.version} \ No newline at end of file diff --git a/modules/CollectionUtils/src/main/nbm/module.xml b/modules/CollectionUtils/src/main/nbm/module.xml deleted file mode 100644 index c229bb0904..0000000000 --- a/modules/CollectionUtils/src/main/nbm/module.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - diff --git a/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/Bundle.properties b/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/Bundle.properties deleted file mode 100644 index 447283f5f4..0000000000 --- a/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/Bundle.properties +++ /dev/null @@ -1,5 +0,0 @@ -OpenIDE-Module-Display-Category=Gephi Core -OpenIDE-Module-Long-Description=\ - Custom collections and libraries utilities:\n- Goolgle Collections\n- Trove -OpenIDE-Module-Name=Collection Utils -OpenIDE-Module-Short-Description=Custom collections and libraries utilities diff --git a/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/Bundle_cs.properties b/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/Bundle_cs.properties deleted file mode 100644 index fef7a6b0b4..0000000000 --- a/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/Bundle_cs.properties +++ /dev/null @@ -1,11 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Zbyn\u011bk Schwarz , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-02-28 21\:35+0000\nLast-Translator\: Zbyn\u011bk Schwarz \nLanguage-Team\: Czech (http\://www.transifex.com/projects/p/gephi/language/cs/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: cs\nPlural-Forms\: nplurals\=3; plural\=(n\=\=1) ? 0 \: (n>\=2 && n<\=4) ? 1 \: 2;\n - -OpenIDE-Module-Long-Description=Vlastn\u00ed sb\u00edrky a n\u00e1stroje knihoven\:\n- Google Collections\n- Trove - -OpenIDE-Module-Short-Description=Vlastn\u00ed sb\u00edrky a n\u00e1stroje knihoven diff --git a/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/Bundle_es.properties b/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/Bundle_es.properties deleted file mode 100644 index ba2ce8cf3f..0000000000 --- a/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/Bundle_es.properties +++ /dev/null @@ -1,11 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 14\:29+0000\nLast-Translator\: gephi \nLanguage-Team\: Spanish (http\://www.transifex.com/projects/p/gephi/language/es/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: es\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n - -OpenIDE-Module-Long-Description=Colecciones personalizadas y librer\u00edas de utilidades - -OpenIDE-Module-Short-Description=Colecciones personalizadas y librer\u00edas de utilidades diff --git a/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/Bundle_fr.properties b/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/Bundle_fr.properties deleted file mode 100644 index 58e9ddbf0f..0000000000 --- a/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/Bundle_fr.properties +++ /dev/null @@ -1,11 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 14\:29+0000\nLast-Translator\: gephi \nLanguage-Team\: French (http\://www.transifex.com/projects/p/gephi/language/fr/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fr\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -OpenIDE-Module-Long-Description=Collections personnalis\u00e9es et biblioth\u00e8ques utilitaires - -OpenIDE-Module-Short-Description=Collections personnalis\u00e9es et biblioth\u00e8ques utilitaires diff --git a/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/Bundle_ja.properties b/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/Bundle_ja.properties deleted file mode 100644 index c0585caa8f..0000000000 --- a/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/Bundle_ja.properties +++ /dev/null @@ -1,11 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-27 03\:10+0000\nLast-Translator\: Siro Kida \nLanguage-Team\: Japanese (http\://www.transifex.com/projects/p/gephi/language/ja/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ja\nPlural-Forms\: nplurals\=1; plural\=0;\n - -OpenIDE-Module-Long-Description=\u30ab\u30b9\u30bf\u30e0\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3068\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3\:\n-Google\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\n-Trove - -OpenIDE-Module-Short-Description=\u30ab\u30b9\u30bf\u30e0\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3068\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3 diff --git a/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/Bundle_pt_BR.properties b/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/Bundle_pt_BR.properties deleted file mode 100644 index 3e25cb20df..0000000000 --- a/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/Bundle_pt_BR.properties +++ /dev/null @@ -1,11 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# C\u00e9lio CJr , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 23\:39+0000\nLast-Translator\: C\u00e9lio Faria Jr. \nLanguage-Team\: Portuguese (Brazil) (http\://www.transifex.com/projects/p/gephi/language/pt_BR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt_BR\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -OpenIDE-Module-Long-Description=Cole\u00e7\u00f5es personalizadas e bibliotecas de utilit\u00e1rios\:\n- Google Collections\n- Trove - -OpenIDE-Module-Short-Description=Cole\u00e7\u00f5es personalizadas e bibliotecas de utilit\u00e1rios diff --git a/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/Bundle_ru.properties b/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/Bundle_ru.properties deleted file mode 100644 index 121bcdee98..0000000000 --- a/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/Bundle_ru.properties +++ /dev/null @@ -1,11 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-10-06 06\:56+0000\nLast-Translator\: Altsoph \nLanguage-Team\: Russian (http\://www.transifex.com/projects/p/gephi/language/ru/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ru\nPlural-Forms\: nplurals\=3; plural\=(n%10\=\=1 && n%100\!\=11 ? 0 \: n%10>\=2 && n%10<\=4 && (n%100<10 || n%100>\=20) ? 1 \: 2);\n - -OpenIDE-Module-Long-Description=\u0412\u044b\u0431\u043e\u0440\u043e\u0447\u043d\u044b\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0443\u0442\u0438\u043b\u0438\u0442\:\n- Goolgle Collections\n- Trove - -OpenIDE-Module-Short-Description=\u0412\u044b\u0431\u043e\u0440\u043e\u0447\u043d\u044b\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0443\u0442\u0438\u043b\u0438\u0442 diff --git a/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/Bundle_zh_CN.properties b/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/Bundle_zh_CN.properties deleted file mode 100644 index 4e87e86847..0000000000 --- a/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/Bundle_zh_CN.properties +++ /dev/null @@ -1,10 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-08 00\:20+0000\nLast-Translator\: gephi \nLanguage-Team\: Chinese (China) (http\://www.transifex.com/projects/p/gephi/language/zh_CN/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: zh_CN\nPlural-Forms\: nplurals\=1; plural\=0;\n - -OpenIDE-Module-Long-Description=\u81ea\u5b9a\u4e49\u6536\u96c6\u548c\u5e93\u5de5\u5177\uff1a\n- Goolgle\u6536\u96c6 \n- \u5b9d\u5e93 - -OpenIDE-Module-Short-Description=\u81ea\u5b9a\u4e49\u6536\u96c6\u548c\u5e93\u5de5\u5177 diff --git a/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/cs.po b/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/cs.po deleted file mode 100644 index 8ee7323c98..0000000000 --- a/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/cs.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# ZbynΔ›k Schwarz , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-02-28 21:35+0000\n" -"Last-Translator: ZbynΔ›k Schwarz \n" -"Language-Team: Czech (http://www.transifex.com/projects/p/gephi/language/cs/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: cs\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "VlastnΓ­ sbΓ­rky a nΓ‘stroje knihoven:\n- Google Collections\n- Trove" - -msgid "OpenIDE-Module-Short-Description" -msgstr "VlastnΓ­ sbΓ­rky a nΓ‘stroje knihoven" diff --git a/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/es.po b/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/es.po deleted file mode 100644 index 087bf7d6e9..0000000000 --- a/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/es.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 14:29+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/gephi/language/es/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "Colecciones personalizadas y librerΓ­as de utilidades" - -msgid "OpenIDE-Module-Short-Description" -msgstr "Colecciones personalizadas y librerΓ­as de utilidades" diff --git a/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/fr.po b/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/fr.po deleted file mode 100644 index f8698a5c63..0000000000 --- a/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/fr.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 14:29+0000\n" -"Last-Translator: gephi \n" -"Language-Team: French (http://www.transifex.com/projects/p/gephi/language/fr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "Collections personnalisΓ©es et bibliothΓ¨ques utilitaires" - -msgid "OpenIDE-Module-Short-Description" -msgstr "Collections personnalisΓ©es et bibliothΓ¨ques utilitaires" diff --git a/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/ja.po b/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/ja.po deleted file mode 100644 index d879c2b0b4..0000000000 --- a/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/ja.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-27 03:10+0000\n" -"Last-Translator: Siro Kida \n" -"Language-Team: Japanese (http://www.transifex.com/projects/p/gephi/language/ja/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ja\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "カスタムコレクションとラむブラγƒͺγγƒ¦γƒΌγƒ†γ‚£γƒͺティ:\n-Googleコレクション\n-Trove" - -msgid "OpenIDE-Module-Short-Description" -msgstr "カスタムコレクションとラむブラγƒͺγγƒ¦γƒΌγƒ†γ‚£γƒͺティ" diff --git a/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/org-gephi-utils-collection.pot b/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/org-gephi-utils-collection.pot deleted file mode 100644 index 3087751de3..0000000000 --- a/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/org-gephi-utils-collection.pot +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# Gephi Team , 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: Gephi 0.8\n" -"Report-Msgid-Bugs-To: gephi.team@lists.launchpad.net\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-05 14:52+0200\n" -"Last-Translator: Mathieu Bastian \n" -"Language-Team: English \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "" -"Custom collections and libraries utilities:\n" -"- Goolgle Collections\n" -"- Trove" - -msgid "OpenIDE-Module-Short-Description" -msgstr "Custom collections and libraries utilities" diff --git a/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/pt_BR.po b/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/pt_BR.po deleted file mode 100644 index b02bbde419..0000000000 --- a/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/pt_BR.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# CΓ©lio CJr , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 23:39+0000\n" -"Last-Translator: CΓ©lio Faria Jr. \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/gephi/language/pt_BR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "ColeΓ§Γ΅es personalizadas e bibliotecas de utilitΓ‘rios:\n- Google Collections\n- Trove" - -msgid "OpenIDE-Module-Short-Description" -msgstr "ColeΓ§Γ΅es personalizadas e bibliotecas de utilitΓ‘rios " diff --git a/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/ru.po b/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/ru.po deleted file mode 100644 index 88002860e0..0000000000 --- a/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/ru.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-10-06 06:56+0000\n" -"Last-Translator: Altsoph \n" -"Language-Team: Russian (http://www.transifex.com/projects/p/gephi/language/ru/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "Π’Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚:\n- Goolgle Collections\n- Trove" - -msgid "OpenIDE-Module-Short-Description" -msgstr "Π’Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚" diff --git a/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/zh_CN.po b/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/zh_CN.po deleted file mode 100644 index 2e3eb4a670..0000000000 --- a/modules/CollectionUtils/src/main/resources/org/gephi/utils/collection/zh_CN.po +++ /dev/null @@ -1,24 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-08 00:20+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/gephi/language/zh_CN/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "θ‡ͺεšδΉ‰ζ”Άι›†ε’ŒεΊ“ε·₯ε…·οΌš\n- Goolgle攢集 \n- εεΊ“" - -msgid "OpenIDE-Module-Short-Description" -msgstr "θ‡ͺεšδΉ‰ζ”Άι›†ε’ŒεΊ“ε·₯ε…·" diff --git a/modules/CoreLibraryWrapper/pom.xml b/modules/CoreLibraryWrapper/pom.xml index 5f72c41db0..5549ac557f 100644 --- a/modules/CoreLibraryWrapper/pom.xml +++ b/modules/CoreLibraryWrapper/pom.xml @@ -4,132 +4,100 @@ gephi-parent org.gephi - 0.9-SNAPSHOT + 0.11.3-SNAPSHOT ../.. org.gephi core-library-wrapper - 0.9-SNAPSHOT + 0.11.3-SNAPSHOT nbm CoreLibraryWrapper + + + snapshot-20100402 + 1.21.0 + 1.28.0 + 1.14.1 + 3.6.1 + 1.0.19 + 3.0.7 + 3.0.3 + 2.13.2 + - - joda-time - joda-time - 2.1 - net.java.dev stax-utils - snapshot-20100402 + ${gephi.stax-utils.version} commons-codec commons-codec - 1.6 + ${gephi.commons-codec.version} org.apache.commons commons-compress - 1.1 - - - jfree - jfreechart - 1.0.13 + ${gephi.commons-compress.version} - gnu.trove - trove - 2.1.0 - - - com.google.collections - google-collections - 1.0 + org.apache.commons + commons-math3 + ${gephi.commons-math3.version} - net.sourceforge.javacsv - javacsv - 2.0 + org.jfree + jfreechart + ${gephi.jfreechart.version} - xml-apis-ext - xml-apis - 1.3.04 + net.sf.trove4j + trove4j + ${gephi.trove4j.version} - com.itextpdf - itextpdf - 5.2.0 + org.apache.commons + commons-csv + ${gephi.commons-csv.version} - org.apache.xmlgraphics - batik-transcoder - 1.7 - - - org.apache.xmlgraphics - batik-js - - - org.apache.xmlgraphics - batik-svggen - - - org.apache.xmlgraphics - fop - - - xml-apis - xml-apis-ext - - - xml-apis - xml-apis - - + org.apache.pdfbox + pdfbox + ${gephi.pdfbox.version} - it.unimi.dsi - fastutil - 6.4.6 + com.google.code.gson + gson + ${gephi.gson.version} - colt - colt - 1.2.0 + org.apache.logging.log4j + log4j-api + 2.21.1 - org.codehaus.mojo + org.apache.netbeans.utilities nbm-maven-plugin - org.joda.time.* org.apache.commons.codec.* org.apache.commons.compress.* + org.apache.commons.math3.* org.jfree.* - com.google.common.* gnu.trove.* - com.csvreader - javax.xml.* - org.w3c.* - com.itextpdf.text.* - processing.* - org.apache.batik.* - org.apache.xpath.* - org.apache.xalan.* - org.apache.xml.* - org.xml.sax.* + org.apache.commons.csv.* + org.apache.pdfbox.* + org.apache.fontbox.* javanet.staxutils.* - it.unimi.dsi.fastutil.* + com.google.gson.* + org.apache.logging.log4j.* diff --git a/modules/CoreLibraryWrapper/src/main/nbm/manifest.mf b/modules/CoreLibraryWrapper/src/main/nbm/manifest.mf index bf740c92a2..cc4aeb24e5 100644 --- a/modules/CoreLibraryWrapper/src/main/nbm/manifest.mf +++ b/modules/CoreLibraryWrapper/src/main/nbm/manifest.mf @@ -1,4 +1,5 @@ Manifest-Version: 1.0 AutoUpdate-Essential-Module: true -OpenIDE-Module-Localizing-Bundle: org/gephi/lib/core/Bundle.properties OpenIDE-Module-Specification-Version: ${gephi.modules.specification.version} +OpenIDE-Module-Display-Category: Libraries +OpenIDE-Module-Name: Core Library Wrapper \ No newline at end of file diff --git a/modules/CoreLibraryWrapper/src/main/nbm/module.xml b/modules/CoreLibraryWrapper/src/main/nbm/module.xml deleted file mode 100644 index b218d372c6..0000000000 --- a/modules/CoreLibraryWrapper/src/main/nbm/module.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - diff --git a/modules/CoreLibraryWrapper/src/main/resources/org/gephi/lib/core/Bundle.properties b/modules/CoreLibraryWrapper/src/main/resources/org/gephi/lib/core/Bundle.properties deleted file mode 100644 index 27785ad03a..0000000000 --- a/modules/CoreLibraryWrapper/src/main/resources/org/gephi/lib/core/Bundle.properties +++ /dev/null @@ -1 +0,0 @@ -OpenIDE-Module-Display-Category=Libraries \ No newline at end of file diff --git a/modules/DBDrivers/pom.xml b/modules/DBDrivers/pom.xml index 6b7440096c..6203236c41 100644 --- a/modules/DBDrivers/pom.xml +++ b/modules/DBDrivers/pom.xml @@ -4,47 +4,44 @@ gephi-parent org.gephi - 0.9-SNAPSHOT + 0.11.3-SNAPSHOT ../.. org.gephi db-drivers - 0.9-SNAPSHOT + 0.11.3-SNAPSHOT nbm DBDrivers + + 3.50.3.0 + 9.4.0 + 42.7.13 + 13.2.1.jre11 + + org.xerial sqlite-jdbc - 3.7.2 + ${gephi.sqlite.version} - mysql - mysql-connector-java - 5.1.18 + com.mysql + mysql-connector-j + ${gephi.mysql.version} - postgresql + org.postgresql postgresql - 9.1-901-1.jdbc4 + ${gephi.postgresql.version} com.microsoft.sqlserver - sqljdbc4 - 3.0.1301.101 - - - com.teradata - teradata-jdbc - 14.00.00.21 - - - com.teradata - teradata-config - 14.00.00.21 + mssql-jdbc + ${gephi.sqlserver.version} org.netbeans.api @@ -55,11 +52,18 @@ - org.codehaus.mojo + org.apache.netbeans.utilities nbm-maven-plugin + autoload + warn org.gephi.io.database.drivers + com.microsoft.sqlserver.* + microsoft.sql.* + com.mysql.* + org.postgresql.* + org.sqlite.* diff --git a/modules/DBDrivers/src/main/java/org/gephi/io/database/drivers/MySQLDriver.java b/modules/DBDrivers/src/main/java/org/gephi/io/database/drivers/MySQLDriver.java index d4ab7e8af2..3b2f1c8e4b 100644 --- a/modules/DBDrivers/src/main/java/org/gephi/io/database/drivers/MySQLDriver.java +++ b/modules/DBDrivers/src/main/java/org/gephi/io/database/drivers/MySQLDriver.java @@ -39,18 +39,31 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.io.database.drivers; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.openide.util.lookup.ServiceProvider; /** - * * @author Mathieu Bastian */ +@ServiceProvider(service = SQLDriver.class, position = 10) public class MySQLDriver implements SQLDriver { + public MySQLDriver() { + try { + Class.forName("com.mysql.jdbc.Driver"); + } catch (ClassNotFoundException ex) { + Logger.getLogger(MySQLDriver.class.getName()).log(Level.SEVERE, null, ex); + } + } + + @Override public Connection getConnection(String connectionUrl, String username, String passwd) throws SQLException { return DriverManager.getConnection(connectionUrl, username, passwd); } diff --git a/modules/DBDrivers/src/main/java/org/gephi/io/database/drivers/PostgreSQLDriver.java b/modules/DBDrivers/src/main/java/org/gephi/io/database/drivers/PostgreSQLDriver.java index 5150f1a139..e3c49cdfe6 100644 --- a/modules/DBDrivers/src/main/java/org/gephi/io/database/drivers/PostgreSQLDriver.java +++ b/modules/DBDrivers/src/main/java/org/gephi/io/database/drivers/PostgreSQLDriver.java @@ -38,19 +38,31 @@ Development and Distribution License("CDDL") (collectively, the Contributor(s): Portions Copyrighted 2011 Gephi Consortium. -*/ + */ + package org.gephi.io.database.drivers; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.openide.util.lookup.ServiceProvider; /** - * * @author Mathieu Bastian */ +@ServiceProvider(service = SQLDriver.class, position = 30) public class PostgreSQLDriver implements SQLDriver { + public PostgreSQLDriver() { + try { + Class.forName("org.postgresql.Driver"); + } catch (ClassNotFoundException ex) { + Logger.getLogger(PostgreSQLDriver.class.getName()).log(Level.SEVERE, null, ex); + } + } + @Override public Connection getConnection(String connectionUrl, String username, String passwd) throws SQLException { return DriverManager.getConnection(connectionUrl, username, passwd); diff --git a/modules/DBDrivers/src/main/java/org/gephi/io/database/drivers/SQLDriver.java b/modules/DBDrivers/src/main/java/org/gephi/io/database/drivers/SQLDriver.java index 62849a8a46..dac4c324bf 100644 --- a/modules/DBDrivers/src/main/java/org/gephi/io/database/drivers/SQLDriver.java +++ b/modules/DBDrivers/src/main/java/org/gephi/io/database/drivers/SQLDriver.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.io.database.drivers; import java.io.Serializable; @@ -46,15 +47,14 @@ Development and Distribution License("CDDL") (collectively, the import java.sql.SQLException; /** - * * @author Mathieu Bastian */ public interface SQLDriver extends Serializable { - public String getPrefix(); + String getPrefix(); - public Connection getConnection(String connectionUrl, String username, String passwd) throws SQLException; + Connection getConnection(String connectionUrl, String username, String passwd) throws SQLException; @Override - public String toString(); + String toString(); } diff --git a/modules/DBDrivers/src/main/java/org/gephi/io/database/drivers/SQLServerDriver.java b/modules/DBDrivers/src/main/java/org/gephi/io/database/drivers/SQLServerDriver.java index 94248f311a..236cc23a14 100644 --- a/modules/DBDrivers/src/main/java/org/gephi/io/database/drivers/SQLServerDriver.java +++ b/modules/DBDrivers/src/main/java/org/gephi/io/database/drivers/SQLServerDriver.java @@ -1,13 +1,13 @@ /* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian +Copyright 2008-2017 Gephi +Authors : Mathieu Bastian Eduardo Ramos Website : http://www.gephi.org This file is part of Gephi. DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -Copyright 2011 Gephi Consortium. All rights reserved. +Copyright 2017 Gephi Consortium. All rights reserved. The contents of this file are subject to the terms of either the GNU General Public License Version 3 only ("GPL") or the Common @@ -37,20 +37,32 @@ Development and Distribution License("CDDL") (collectively, the Contributor(s): -Portions Copyrighted 2011 Gephi Consortium. +Portions Copyrighted 2017 Gephi Consortium. */ + package org.gephi.io.database.drivers; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.openide.util.lookup.ServiceProvider; /** - * * @author Mathieu Bastian */ +@ServiceProvider(service = SQLDriver.class, position = 40) public class SQLServerDriver implements SQLDriver { + public SQLServerDriver() { + try { + Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); + } catch (ClassNotFoundException ex) { + Logger.getLogger(MySQLDriver.class.getName()).log(Level.SEVERE, null, ex); + } + } + @Override public Connection getConnection(String connectionUrl, String username, String passwd) throws SQLException { //Bug #745414 diff --git a/modules/DBDrivers/src/main/java/org/gephi/io/database/drivers/SQLUtils.java b/modules/DBDrivers/src/main/java/org/gephi/io/database/drivers/SQLUtils.java index 4bec689386..348b1dd4e5 100644 --- a/modules/DBDrivers/src/main/java/org/gephi/io/database/drivers/SQLUtils.java +++ b/modules/DBDrivers/src/main/java/org/gephi/io/database/drivers/SQLUtils.java @@ -39,12 +39,12 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.io.database.drivers; import org.openide.util.Lookup; /** - * * @author Mathieu Bastian */ public class SQLUtils { diff --git a/modules/DBDrivers/src/main/java/org/gephi/io/database/drivers/SQLiteDriver.java b/modules/DBDrivers/src/main/java/org/gephi/io/database/drivers/SQLiteDriver.java index 27de907184..41b9afea56 100644 --- a/modules/DBDrivers/src/main/java/org/gephi/io/database/drivers/SQLiteDriver.java +++ b/modules/DBDrivers/src/main/java/org/gephi/io/database/drivers/SQLiteDriver.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.io.database.drivers; import java.sql.Connection; @@ -46,11 +47,12 @@ Development and Distribution License("CDDL") (collectively, the import java.sql.SQLException; import java.util.logging.Level; import java.util.logging.Logger; +import org.openide.util.lookup.ServiceProvider; /** - * * @author Mathieu Bastian */ +@ServiceProvider(service = SQLDriver.class, position = 20) public class SQLiteDriver implements SQLDriver { public SQLiteDriver() { diff --git a/modules/DBDrivers/src/main/java/org/gephi/io/database/drivers/TeradataDriver.java b/modules/DBDrivers/src/main/java/org/gephi/io/database/drivers/TeradataDriver.java deleted file mode 100644 index 27b6c84cfb..0000000000 --- a/modules/DBDrivers/src/main/java/org/gephi/io/database/drivers/TeradataDriver.java +++ /dev/null @@ -1,102 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.io.database.drivers; - -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.SQLException; -import java.util.logging.Level; -import java.util.logging.Logger; - -/** - * - * @author Mathieu Bastian - */ -public class TeradataDriver implements SQLDriver { - - public TeradataDriver() { - try { - // load the teradata using the current class loader - Class.forName("com.teradata.jdbc.TeraDriver"); - } catch (ClassNotFoundException ex) { - Logger.getLogger(SQLiteDriver.class.getName()).log(Level.SEVERE, null, ex); - } - } - - @Override - public Connection getConnection(String connectionUrl, String username, String passwd) throws SQLException { - if (!connectionUrl.contains("database=")) { - String dbname = connectionUrl.substring(connectionUrl.lastIndexOf('/') + 1); - String url = connectionUrl.substring(0, connectionUrl.lastIndexOf('/')); - String port = url.substring(url.lastIndexOf(":") + 1); - port = port.isEmpty() ? "" : ",dbs_port=" + port; - url = url.substring(0, url.lastIndexOf(":")); - connectionUrl = url + "/database=" + dbname + ",charset=UTF8" + port; - } - - return DriverManager.getConnection(connectionUrl, username, passwd); - } - - @Override - public String getPrefix() { - return "teradata"; - } - - @Override - public String toString() { - return "Teradata"; - } - - @Override - public boolean equals(Object obj) { - if (obj instanceof TeradataDriver) { - return ((TeradataDriver) obj).getPrefix().equals(getPrefix()); - } else { - return false; - } - } - - @Override - public int hashCode() { - return getPrefix().hashCode(); - } -} diff --git a/modules/DBDrivers/src/main/nbm/manifest.mf b/modules/DBDrivers/src/main/nbm/manifest.mf index c830419293..22a09a4cfd 100644 --- a/modules/DBDrivers/src/main/nbm/manifest.mf +++ b/modules/DBDrivers/src/main/nbm/manifest.mf @@ -1,4 +1,6 @@ Manifest-Version: 1.0 AutoUpdate-Essential-Module: true OpenIDE-Module-Localizing-Bundle: org/gephi/io/database/drivers/Bundle.properties -OpenIDE-Module-Specification-Version: ${gephi.modules.specification.version} \ No newline at end of file +OpenIDE-Module-Specification-Version: ${gephi.modules.specification.version} +OpenIDE-Module-Display-Category: Libraries +OpenIDE-Module-Name: DBDrivers \ No newline at end of file diff --git a/modules/DBDrivers/src/main/nbm/module.xml b/modules/DBDrivers/src/main/nbm/module.xml deleted file mode 100644 index 4afeaa842c..0000000000 --- a/modules/DBDrivers/src/main/nbm/module.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - diff --git a/modules/DBDrivers/src/main/resources/META-INF/services/org.gephi.io.database.drivers.SQLDriver b/modules/DBDrivers/src/main/resources/META-INF/services/org.gephi.io.database.drivers.SQLDriver deleted file mode 100644 index 530610afe1..0000000000 --- a/modules/DBDrivers/src/main/resources/META-INF/services/org.gephi.io.database.drivers.SQLDriver +++ /dev/null @@ -1,5 +0,0 @@ -org.gephi.io.database.drivers.MySQLDriver -org.gephi.io.database.drivers.SQLServerDriver -org.gephi.io.database.drivers.PostgreSQLDriver -org.gephi.io.database.drivers.SQLiteDriver -org.gephi.io.database.drivers.TeradataDriver \ No newline at end of file diff --git a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle.properties b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle.properties index 4e1148177a..92c2e2c3f4 100644 --- a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle.properties +++ b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle.properties @@ -1,5 +1,2 @@ -OpenIDE-Module-Display-Category=Libraries -OpenIDE-Module-Long-Description=\ - Database Drivers (MySQL, PostgreSQL, SQLite, Teradata, SQLServer) -OpenIDE-Module-Name=DBDrivers +OpenIDE-Module-Long-Description=Database Drivers (MySQL, PostgreSQL, SQLite) OpenIDE-Module-Short-Description=Database Drivers diff --git a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_ar.properties b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_ar.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_ar.properties @@ -0,0 +1 @@ + diff --git a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_ca.properties b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_ca.properties new file mode 100644 index 0000000000..92c2e2c3f4 --- /dev/null +++ b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_ca.properties @@ -0,0 +1,2 @@ +OpenIDE-Module-Long-Description=Database Drivers (MySQL, PostgreSQL, SQLite) +OpenIDE-Module-Short-Description=Database Drivers diff --git a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_cs.properties b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_cs.properties index a39c1435c4..c6f4d7e1e2 100644 --- a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_cs.properties +++ b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_cs.properties @@ -1,11 +1,2 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Zbyn\u011bk Schwarz , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-02-26 18\:23+0000\nLast-Translator\: Zbyn\u011bk Schwarz \nLanguage-Team\: Czech (http\://www.transifex.com/projects/p/gephi/language/cs/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: cs\nPlural-Forms\: nplurals\=3; plural\=(n\=\=1) ? 0 \: (n>\=2 && n<\=4) ? 1 \: 2;\n - -OpenIDE-Module-Long-Description=Ovlada\u010de datab\u00e1ze (MySQL, PostgreSQL, SQLite, Teradata, SQLServer) - -OpenIDE-Module-Short-Description=Ovlada\u010de datab\u00e1ze +# OpenIDE-Module-Long-Description=Database Drivers (MySQL, PostgreSQL, SQLite) +OpenIDE-Module-Short-Description=Ovlada\u010de databαze diff --git a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_de.properties b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_de.properties new file mode 100644 index 0000000000..827d5c914b --- /dev/null +++ b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_de.properties @@ -0,0 +1,3 @@ +# OpenIDE-Module-Long-Description=Database Drivers (MySQL, PostgreSQL, SQLite) +OpenIDE-Module-Short-Description=Datenbank-Treiber +OpenIDE-Module-Long-Description=Datenbank-Treiber (MySQL, PostgreSQL, SQLite) diff --git a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_es.properties b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_es.properties index ce5ceec144..ba13baa031 100644 --- a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_es.properties +++ b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_es.properties @@ -1,12 +1,2 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -# , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-14 18\:24+0000\nLast-Translator\: gephi \nLanguage-Team\: Spanish (http\://www.transifex.com/projects/p/gephi/language/es/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: es\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n - -OpenIDE-Module-Long-Description=Controladores para las bases de datos (MySQL, PostgreSQL, SQLite, Teradata, SQLServer) - -OpenIDE-Module-Short-Description=Controladores para las bases de datos +OpenIDE-Module-Long-Description=Controladores para las bases de datos (MySQL, PostgreSQL, SQLite, Teradata, SQLServer) +OpenIDE-Module-Short-Description=Controladores para las bases de datos diff --git a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_fr.properties b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_fr.properties index f674e50a6a..153a81d4b8 100644 --- a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_fr.properties +++ b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_fr.properties @@ -1,11 +1,2 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-14 18\:18+0000\nLast-Translator\: gephi \nLanguage-Team\: French (http\://www.transifex.com/projects/p/gephi/language/fr/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fr\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -OpenIDE-Module-Long-Description=Pilotes de base de donn\u00e9es (MySQL, SQLServer) - -OpenIDE-Module-Short-Description=Pilotes de base de donn\u00e9es +OpenIDE-Module-Long-Description=Pilotes de base de donnιes (MySQL, PostgreSQL, SQLite) +OpenIDE-Module-Short-Description=Pilotes de base de donnιes diff --git a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_he.properties b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_he.properties new file mode 100644 index 0000000000..92c2e2c3f4 --- /dev/null +++ b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_he.properties @@ -0,0 +1,2 @@ +OpenIDE-Module-Long-Description=Database Drivers (MySQL, PostgreSQL, SQLite) +OpenIDE-Module-Short-Description=Database Drivers diff --git a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_hu.properties b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_hu.properties new file mode 100644 index 0000000000..d805d879a4 --- /dev/null +++ b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_hu.properties @@ -0,0 +1,4 @@ + + +OpenIDE-Module-Short-Description=Adatb\u00E1zis-illeszt\u0151programok +OpenIDE-Module-Long-Description=Adatb\u00E1zis-illeszt\u0151programok (MySQL, PostgreSQL, SQLite) diff --git a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_it.properties b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_it.properties new file mode 100644 index 0000000000..92c2e2c3f4 --- /dev/null +++ b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_it.properties @@ -0,0 +1,2 @@ +OpenIDE-Module-Long-Description=Database Drivers (MySQL, PostgreSQL, SQLite) +OpenIDE-Module-Short-Description=Database Drivers diff --git a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_ja.properties b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_ja.properties index f6bd627b63..66e9f27c47 100644 --- a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_ja.properties +++ b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_ja.properties @@ -1,11 +1,2 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-14 18\:18+0000\nLast-Translator\: gephi \nLanguage-Team\: Japanese (http\://www.transifex.com/projects/p/gephi/language/ja/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ja\nPlural-Forms\: nplurals\=1; plural\=0;\n - -OpenIDE-Module-Long-Description=\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30c9\u30e9\u30a4\u30d0(MySQL\u3001SQLServer) - -OpenIDE-Module-Short-Description=\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30c9\u30e9\u30a4\u30d0 +# OpenIDE-Module-Long-Description=Database Drivers (MySQL, PostgreSQL, SQLite) +OpenIDE-Module-Short-Description=\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30c9\u30e9\u30a4\u30d0 diff --git a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_ko.properties b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_ko.properties new file mode 100644 index 0000000000..575a146309 --- /dev/null +++ b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_ko.properties @@ -0,0 +1,4 @@ + + +OpenIDE-Module-Short-Description=\uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uB4DC\uB77C\uC774\uBC84 +OpenIDE-Module-Long-Description=\uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uB4DC\uB77C\uC774\uBC84 (MySQL, PostgreSQL, SQLite) diff --git a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_nl.properties b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_nl.properties new file mode 100644 index 0000000000..92c2e2c3f4 --- /dev/null +++ b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_nl.properties @@ -0,0 +1,2 @@ +OpenIDE-Module-Long-Description=Database Drivers (MySQL, PostgreSQL, SQLite) +OpenIDE-Module-Short-Description=Database Drivers diff --git a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_pt_BR.properties b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_pt_BR.properties index 263b634d1f..140becfa8c 100644 --- a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_pt_BR.properties +++ b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_pt_BR.properties @@ -1,11 +1,3 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# C\u00e9lio CJr , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-14 18\:18+0000\nLast-Translator\: gephi \nLanguage-Team\: Portuguese (Brazil) (http\://www.transifex.com/projects/p/gephi/language/pt_BR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt_BR\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -OpenIDE-Module-Long-Description=Drivers de banco de dados (MySQL, SQLServer) - +# OpenIDE-Module-Long-Description=Database Drivers (MySQL, PostgreSQL, SQLite) OpenIDE-Module-Short-Description=Drivers de banco de dados +OpenIDE-Module-Long-Description=Drivers de banco de dados (MySQL, PostgreSQL, SQLite) diff --git a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_ro.properties b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_ro.properties new file mode 100644 index 0000000000..a3087419ef --- /dev/null +++ b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_ro.properties @@ -0,0 +1,4 @@ + + +OpenIDE-Module-Long-Description=Drivere de baze de date (MySQL, PostgreSQL, SQLite) +OpenIDE-Module-Short-Description=Drivere de baze de date diff --git a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_ru.properties b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_ru.properties index e92403e2ae..3f74d37b54 100644 --- a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_ru.properties +++ b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_ru.properties @@ -1,11 +1,2 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-14 18\:18+0000\nLast-Translator\: gephi \nLanguage-Team\: Russian (http\://www.transifex.com/projects/p/gephi/language/ru/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ru\nPlural-Forms\: nplurals\=3; plural\=(n%10\=\=1 && n%100\!\=11 ? 0 \: n%10>\=2 && n%10<\=4 && (n%100<10 || n%100>\=20) ? 1 \: 2);\n - -OpenIDE-Module-Long-Description=\u0414\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u0411\u0414 (MySQL, SQLServer) - -OpenIDE-Module-Short-Description=\u0414\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u0411\u0414 +# OpenIDE-Module-Long-Description=Database Drivers (MySQL, PostgreSQL, SQLite) +OpenIDE-Module-Short-Description=\u0414\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u0411\u0414 diff --git a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_th.properties b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_th.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_th.properties @@ -0,0 +1 @@ + diff --git a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_tr.properties b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_tr.properties new file mode 100644 index 0000000000..92c2e2c3f4 --- /dev/null +++ b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_tr.properties @@ -0,0 +1,2 @@ +OpenIDE-Module-Long-Description=Database Drivers (MySQL, PostgreSQL, SQLite) +OpenIDE-Module-Short-Description=Database Drivers diff --git a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_uk.properties b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_uk.properties new file mode 100644 index 0000000000..fd18ce5a39 --- /dev/null +++ b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_uk.properties @@ -0,0 +1,2 @@ +OpenIDE-Module-Long-Description=\u0414\u0440\u0430\u0439\u0432\u0435\u0440\u0438 \u0431\u0430\u0437 \u0434\u0430\u043D\u0438\u0445 (MySQL, PostgreSQL, SQLite) +OpenIDE-Module-Short-Description=\u0414\u0440\u0430\u0439\u0432\u0435\u0440\u0438 \u0431\u0430\u0437\u0438 \u0434\u0430\u043D\u0438\u0445 diff --git a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_zh_CN.properties b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_zh_CN.properties index 61263bd420..b1c95fc9d6 100644 --- a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_zh_CN.properties +++ b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_zh_CN.properties @@ -1,10 +1,3 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-14 18\:18+0000\nLast-Translator\: gephi \nLanguage-Team\: Chinese (China) (http\://www.transifex.com/projects/p/gephi/language/zh_CN/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: zh_CN\nPlural-Forms\: nplurals\=1; plural\=0;\n - -OpenIDE-Module-Long-Description=\u6570\u636e\u5e93\u9a71\u52a8\u7a0b\u5e8f\uff08MySQL\uff0cSQL\u670d\u52a1\u5668\uff09 - +# OpenIDE-Module-Long-Description=Database Drivers (MySQL, PostgreSQL, SQLite) OpenIDE-Module-Short-Description=\u6570\u636e\u5e93\u9a71\u52a8\u7a0b\u5e8f +OpenIDE-Module-Long-Description=\u6570\u636E\u5E93\u9A71\u52A8\u7A0B\u5E8F\uFF08MySQL\u3001PostgreSQL\u3001SQLite\uFF09 diff --git a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_zh_TW.properties b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_zh_TW.properties new file mode 100644 index 0000000000..92c2e2c3f4 --- /dev/null +++ b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/Bundle_zh_TW.properties @@ -0,0 +1,2 @@ +OpenIDE-Module-Long-Description=Database Drivers (MySQL, PostgreSQL, SQLite) +OpenIDE-Module-Short-Description=Database Drivers diff --git a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/cs.po b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/cs.po deleted file mode 100644 index af83553645..0000000000 --- a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/cs.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# ZbynΔ›k Schwarz , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-02-26 18:23+0000\n" -"Last-Translator: ZbynΔ›k Schwarz \n" -"Language-Team: Czech (http://www.transifex.com/projects/p/gephi/language/cs/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: cs\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "Ovladače databΓ‘ze (MySQL, PostgreSQL, SQLite, Teradata, SQLServer)" - -msgid "OpenIDE-Module-Short-Description" -msgstr "Ovladače databΓ‘ze" diff --git a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/es.po b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/es.po deleted file mode 100644 index 6b8944991d..0000000000 --- a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/es.po +++ /dev/null @@ -1,26 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -# , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-14 18:24+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/gephi/language/es/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "Controladores para las bases de datos (MySQL, PostgreSQL, SQLite, Teradata, SQLServer)" - -msgid "OpenIDE-Module-Short-Description" -msgstr "Controladores para las bases de datos" diff --git a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/fr.po b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/fr.po deleted file mode 100644 index d534e672d3..0000000000 --- a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/fr.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-14 18:18+0000\n" -"Last-Translator: gephi \n" -"Language-Team: French (http://www.transifex.com/projects/p/gephi/language/fr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "Pilotes de base de donnΓ©es (MySQL, SQLServer)" - -msgid "OpenIDE-Module-Short-Description" -msgstr "Pilotes de base de donnΓ©es" diff --git a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/ja.po b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/ja.po deleted file mode 100644 index 5fa07394aa..0000000000 --- a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/ja.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-14 18:18+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Japanese (http://www.transifex.com/projects/p/gephi/language/ja/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ja\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "データベースドラむバ(MySQL、SQLServer)" - -msgid "OpenIDE-Module-Short-Description" -msgstr "データベースドラむバ" diff --git a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/org-gephi-io-database-drivers.pot b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/org-gephi-io-database-drivers.pot deleted file mode 100644 index 448c764f69..0000000000 --- a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/org-gephi-io-database-drivers.pot +++ /dev/null @@ -1,22 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# Gephi Team , 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: Gephi 0.8\n" -"Report-Msgid-Bugs-To: gephi.team@lists.launchpad.net\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-05 14:52+0200\n" -"Last-Translator: Mathieu Bastian \n" -"Language-Team: English \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "Database Drivers (MySQL, PostgreSQL, SQLite, Teradata, SQLServer)" - -msgid "OpenIDE-Module-Short-Description" -msgstr "Database Drivers" diff --git a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/pt_BR.po b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/pt_BR.po deleted file mode 100644 index f1ce201ea1..0000000000 --- a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/pt_BR.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# CΓ©lio CJr , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-14 18:18+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/gephi/language/pt_BR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "Drivers de banco de dados (MySQL, SQLServer)" - -msgid "OpenIDE-Module-Short-Description" -msgstr "Drivers de banco de dados" diff --git a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/ru.po b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/ru.po deleted file mode 100644 index a780ddc624..0000000000 --- a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/ru.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-14 18:18+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Russian (http://www.transifex.com/projects/p/gephi/language/ru/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "Π”Ρ€Π°ΠΉΠ²Π΅Ρ€Π° Π‘Π” (MySQL, SQLServer)" - -msgid "OpenIDE-Module-Short-Description" -msgstr "Π”Ρ€Π°ΠΉΠ²Π΅Ρ€Π° Π‘Π”" diff --git a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/zh_CN.po b/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/zh_CN.po deleted file mode 100644 index 4511f68fc0..0000000000 --- a/modules/DBDrivers/src/main/resources/org/gephi/io/database/drivers/zh_CN.po +++ /dev/null @@ -1,24 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-14 18:18+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/gephi/language/zh_CN/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "ζ•°ζεΊ“ι©±εŠ¨η¨‹εΊοΌˆMySQL,SQLζœεŠ‘ε™¨οΌ‰" - -msgid "OpenIDE-Module-Short-Description" -msgstr "ζ•°ζεΊ“ι©±εŠ¨η¨‹εΊ" diff --git a/modules/DataLaboratoryAPI/pom.xml b/modules/DataLaboratoryAPI/pom.xml index 23a30b964d..6d1ae45ab2 100644 --- a/modules/DataLaboratoryAPI/pom.xml +++ b/modules/DataLaboratoryAPI/pom.xml @@ -4,13 +4,13 @@ gephi-parent org.gephi - 0.9-SNAPSHOT + 0.11.3-SNAPSHOT ../.. org.gephi datalab-api - 0.9-SNAPSHOT + 0.11.3-SNAPSHOT nbm DataLaboratoryAPI @@ -20,10 +20,6 @@ ${project.groupId} utils - - ${project.groupId} - dynamic-api - ${project.groupId} graph-api @@ -49,20 +45,14 @@ - org.codehaus.mojo + org.apache.netbeans.utilities nbm-maven-plugin org.gephi.datalab.api org.gephi.datalab.api.datatables - org.gephi.datalab.spi - org.gephi.datalab.spi.columns - org.gephi.datalab.spi.columns.merge - org.gephi.datalab.spi.edges - org.gephi.datalab.spi.general - org.gephi.datalab.spi.nodes - org.gephi.datalab.spi.rows.merge - org.gephi.datalab.spi.values + org.gephi.datalab.spi.* + org.gephi.datalab.utils diff --git a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/AttributeColumnsController.java b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/AttributeColumnsController.java index 82c6fbe85f..0e7fed11e7 100644 --- a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/AttributeColumnsController.java +++ b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/AttributeColumnsController.java @@ -39,26 +39,26 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.api; -import java.io.File; import java.math.BigDecimal; -import java.nio.charset.Charset; import java.util.List; import java.util.Map; import java.util.regex.Pattern; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; -import org.gephi.data.attributes.api.AttributeType; import org.gephi.datalab.spi.rows.merge.AttributeRowsMergeStrategy; -import org.gephi.graph.api.Attributes; +import org.gephi.graph.api.Column; import org.gephi.graph.api.Edge; +import org.gephi.graph.api.Element; import org.gephi.graph.api.Node; +import org.gephi.graph.api.Table; +import org.gephi.graph.api.TimeRepresentation; /** *

    This interface defines part of the Data Laboratory API basic actions.

    *

    It contains methods for manipulating the attributes and properties of nodes and edges.

    - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public interface AttributeColumnsController { @@ -67,12 +67,13 @@ public interface AttributeColumnsController { * it will try to parse the toString representation of the value.

    *

    Takes care to avoid parsing exceptions of the target column type.

    *

    Also, this will not set a null value to a column that can't have null values (see canClearColumnData method) if the given object is null or the parsing fails.

    - * @param value Value to set, can be null - * @param row Row + * + * @param value Value to set, can be null + * @param row Row * @param column Column * @return True if the value was set, false otherwise */ - boolean setAttributeValue(Object value, Attributes row, AttributeColumn column); + boolean setAttributeValue(Object value, Element row, Column column); /** *

    Adds a new column to the specified table with the given title and type of column.

    @@ -82,280 +83,317 @@ public interface AttributeColumnsController { * it will be given the default dynamic time interval id to be able to use dynamic filters.

    *

    The AttributeOrigin of the column will be set to DATA.

    *

    Default column value will be set to null.

    + * * @param table Table to add the column * @param title Title for the new column, can't be repeated in the table, null or empty string - * @param type Type for the new column + * @param type Type for the new column * @return The created column or null if the column could not be created */ - AttributeColumn addAttributeColumn(AttributeTable table, String title, AttributeType type); + Column addAttributeColumn(Table table, String title, Class type); /** *

    Duplicates a given column of a table and copies al row values.

    - *

    If the AttributeType for the new column is different from the old column type, it will try to parse each value. If it is not possible, the value will be set to null.

    + *

    If the Class for the new column is different from the old column type, it will try to parse each value. If it is not possible, the value will be set to null.

    *

    The title for the new column can't be repeated in the table, null or an empty string.

    . *

    The id of the column will be set to the title.

    *

    The AttributeOrigin of the column will be set to DATA.

    *

    Default column value will be set to null.

    - * @param table Table of the column to duplicate + * + * @param table Table of the column to duplicate * @param column Column to duplicate - * @param title Title for the new column - * @param type AttributeType for the new column + * @param title Title for the new column + * @param type Class for the new column * @return The created column or null if the column could not be created */ - AttributeColumn duplicateColumn(AttributeTable table, AttributeColumn column, String title, AttributeType type); + Column duplicateColumn(Table table, Column column, String title, Class type); /** *

    Copies all row values of a column to another column.

    - *

    If the AttributeType for the target is different from the source column type, it will try to parse each value. If it is not possible, the value will be set to null.

    + *

    If the Class for the target is different from the source column type, it will try to parse each value. If it is not possible, the value will be set to null.

    *

    Source and target columns must be different.

    - * @param table Table of the columns + * + * @param table Table of the columns * @param sourceColumn Source column * @param targetColumn Target column */ - void copyColumnDataToOtherColumn(AttributeTable table, AttributeColumn sourceColumn, AttributeColumn targetColumn); + void copyColumnDataToOtherColumn(Table table, Column sourceColumn, Column targetColumn); /** *

    Deletes the specified column from a table if the table has the column and data laboratory behaviour allows to delete it (see canDeleteColumn method).

    - * @param table Table to delete the column + * + * @param table Table to delete the column * @param column Column to delete */ - void deleteAttributeColumn(AttributeTable table, AttributeColumn column); - + void deleteAttributeColumn(Table table, Column column); + /** *

    Converts and replaces a table column with a dynamic column preserving original column values.

    *

    This should be used only in columns where the canConvertColumnToDynamic returns true

    - *

    The new values have a default interval that uses the low, high, lopen and ropen parameters.

    - * @param table Table of the column + *

    For graphs with {@code INTERVAL} {@link TimeRepresentation}, the new values have a default interval that uses the {@code low} and {@code high} parameters.

    + *

    For graphs with {@code TIMESTAMP} {@link TimeRepresentation}, the new values have a default timestamp that uses the {@code low} parameter, {@code high} parameter is ignored.

    + * + * @param table Table of the column * @param column Column to convert and replace - * @param low Low bound for default interval - * @param high High bound for default interval - * @param lopen Open low bound for default interval - * @param ropen Open high bound for default interval + * @param low Low bound for default interval or default timestamp + * @param high High bound for default interval or ignored for timestamps * @return The new column */ - AttributeColumn convertAttributeColumnToDynamic(AttributeTable table, AttributeColumn column, double low, double high, boolean lopen, boolean ropen); - + Column convertAttributeColumnToDynamic(Table table, Column column, double low, double high); + /** *

    Converts a table column into a new dynamic column preserving original column values. The original column is kept intact

    - *

    The new values have a default interval that uses the low, high, lopen and ropen parameters.

    - * @param table Table of the column - * @param column Column to convert to dynamic - * @param low Low bound for default interval - * @param high High bound for default interval - * @param lopen Open low bound for default interval - * @param ropen Open high bound for default interval + *

    For graphs with {@code INTERVAL} {@link TimeRepresentation}, the new values have a default interval that uses the {@code low} and {@code high} parameters.

    + *

    For graphs with {@code TIMESTAMP} {@link TimeRepresentation}, the new values have a default timestamp that uses the {@code low} parameter, {@code high} parameter is ignored.

    + * + * @param table Table of the column + * @param column Column to convert to dynamic + * @param low Low bound for default interval or default timestamp + * @param high High bound for default interval or ignored for timestamps * @param newColumnTitle Title for the new dynamic column * @return The new column */ - AttributeColumn convertAttributeColumnToNewDynamicColumn(AttributeTable table, AttributeColumn column, double low, double high, boolean lopen, boolean ropen, String newColumnTitle); + Column convertAttributeColumnToNewDynamicColumn(Table table, Column column, double low, double high, + String newColumnTitle); /** *

    Fills the data values of a given column of a table with a value as a String, - * parsing it for the AttributeType of the column. If it is not possible to parse, + * parsing it for the Class of the column. If it is not possible to parse, * the value will be set to null.

    - * @param table Table of the column + * + * @param table Table of the column * @param column Column to fill - * @param value String representation of the value for each row of the column + * @param value String representation of the value for each row of the column */ - void fillColumnWithValue(AttributeTable table, AttributeColumn column, String value); + void fillColumnWithValue(Table table, Column column, String value); /** *

    Fills the data values of a given column of the indicated nodes with a value as a String, - * parsing it for the AttributeType of the column. If it is not possible to parse, + * parsing it for the Class of the column. If it is not possible to parse, * the value will be set to null.

    - * @param nodes Nodes to fill + * + * @param nodes Nodes to fill * @param column Column to fill - * @param value String representation of the value for the column for each node + * @param value String representation of the value for the column for each node */ - void fillNodesColumnWithValue(Node[] nodes, AttributeColumn column, String value); + void fillNodesColumnWithValue(Node[] nodes, Column column, String value); /** *

    Fills the data values of a given column of the indicated edges with a value as a String, - * parsing it for the AttributeType of the column. If it is not possible to parse, + * parsing it for the Class of the column. If it is not possible to parse, * the value will be set to null.

    - * @param edges Edges to fill + * + * @param edges Edges to fill * @param column Column to fill - * @param value String representation of the value for the column for each edge + * @param value String representation of the value for the column for each edge */ - void fillEdgesColumnWithValue(Edge[] edges, AttributeColumn column, String value); + void fillEdgesColumnWithValue(Edge[] edges, Column column, String value); /** *

    Clears all rows data for a given column of a table (nodes table or edges table)

    - * @param table Table to clear column data + * + * @param table Table to clear column data * @param column Column to clear data */ - void clearColumnData(AttributeTable table, AttributeColumn column); + void clearColumnData(Table table, Column column); /** *

    Calculates the absolute frequency of appearance of each value of the given column and returns a Map containing each different value mapped to its frequency of appearance.

    - * @param table Table of the column + * + * @param table Table of the column * @param column Column to calculate values frequencies * @return Map containing each different value mapped to its frequency of appearance */ - Map calculateColumnValuesFrequencies(AttributeTable table, AttributeColumn column); + Map calculateColumnValuesFrequencies(Table table, Column column); /** *

    Creates a new BOOLEAN column from the given column and regular expression * filling it with boolean values that indicate if each of the old column values match the regular expression.

    *

    Title for the new column can't be repeated in the table, null or empty.

    - * @param table Table of the column to match - * @param column Column to match + * + * @param table Table of the column to match + * @param column Column to match * @param newColumnTitle Title for the new boolean column - * @param pattern Regular expression to match + * @param pattern Regular expression to match * @return New created column or null if title is not correct */ - AttributeColumn createBooleanMatchesColumn(AttributeTable table, AttributeColumn column, String newColumnTitle, Pattern pattern); + Column createBooleanMatchesColumn(Table table, Column column, String newColumnTitle, Pattern pattern); /** *

    Negates not null values of a given BOOLEAN or LIST_BOOLEANcolumn.

    - *

    Throws IllegalArgumentException if the column does not have BOOLEAN or LIST_BOOLEAN AttributeType.

    - * @param table Table of the column to negate + *

    Throws IllegalArgumentException if the column does not have BOOLEAN or LIST_BOOLEAN Class.

    + * + * @param table Table of the column to negate * @param column Boolean column to negate */ - void negateBooleanColumn(AttributeTable table, AttributeColumn column); + void negateBooleanColumn(Table table, Column column); /** *

    Creates a new LIST_STRING column from the given column and regular expression with values that are * the list of matching groups for the given regular expression for each row.

    *

    The title for the new column can't be repeated in the table, null or an empty string.

    . - * @param table Table of the column to match - * @param column Column to match + * + * @param table Table of the column to match + * @param column Column to match * @param newColumnTitle Title for the new boolean column - * @param pattern Regular expression to match + * @param pattern Regular expression to match * @return New created column or null if title is not correct */ - AttributeColumn createFoundGroupsListColumn(AttributeTable table, AttributeColumn column, String newColumnTitle, Pattern pattern); + Column createFoundGroupsListColumn(Table table, Column column, String newColumnTitle, Pattern pattern); /** *

    Clears all node attributes except computed attributes and id, checking first that the node is in the graph.

    *

    Columns to clear can be specified, but id and computed columns will not be cleared.

    - * @param node Node to clear data + * + * @param node Node to clear data * @param columnsToClear Columns of the node to clear. All columns will be cleared if it is null */ - void clearNodeData(Node node, AttributeColumn[] columnsToClear); + void clearNodeData(Node node, Column[] columnsToClear); /** *

    Clears all the nodes attributes except computed attributes and id.

    *

    Columns to clear can be specified, but id and computed columns will not be cleared.

    - * @param nodes Array of nodes to clear data + * + * @param nodes Array of nodes to clear data * @param columnsToClear Columns of the nodes to clear. All columns will be cleared if it is null */ - void clearNodesData(Node[] nodes, AttributeColumn[] columnsToClear); + void clearNodesData(Node[] nodes, Column[] columnsToClear); /** *

    Clears all edge attributes except computed attributes and id.

    *

    Columns to clear can be specified, but id and computed columns will not be cleared.

    - * @param edge Edge to clear data + * + * @param edge Edge to clear data * @param columnsToClear Columns of the edge to clear. All columns will be cleared if it is null */ - void clearEdgeData(Edge edge, AttributeColumn[] columnsToClear); + void clearEdgeData(Edge edge, Column[] columnsToClear); /** *

    Clears all the edges attributes except computed attributes and id, checking first that the edges are in the graph.

    *

    Columns to clear can be specified, but id and computed columns will not be cleared.

    - * @param edges Array of edges to clear data + * + * @param edges Array of edges to clear data * @param columnsToClear Columns of the edges to clear. All columns will be cleared if it is null */ - void clearEdgesData(Edge[] edges, AttributeColumn[] columnsToClear); + void clearEdgesData(Edge[] edges, Column[] columnsToClear); /** *

    Clears row attributes except computed attributes and id if node/edge row.

    *

    Columns to clear can be specified, but id of node/edge and computed columns will not be cleared.

    - * @param row Array of rows to clear data + * + * @param row Array of rows to clear data * @param columnsToClear Columns of the row to clear. All columns will be cleared if it is null */ - void clearRowData(Attributes row, AttributeColumn[] columnsToClear); + void clearRowData(Element row, Column[] columnsToClear); /** *

    Copies attributes data of the given node to the other rows except computed attributes and id.

    *

    Columns to copy can be specified, but id node and computed columns will not be copied.

    - * @param node Node to copy data from - * @param otherNodes Nodes to copy data to + * + * @param node Node to copy data from + * @param otherNodes Nodes to copy data to * @param columnsToCopy Columns of the node to copy. All columns will be copied if it is null */ - void copyNodeDataToOtherNodes(Node node, Node[] otherNodes, AttributeColumn[] columnsToCopy); + void copyNodeDataToOtherNodes(Node node, Node[] otherNodes, Column[] columnsToCopy); /** *

    Copies attributes data of the given edge to the other rows except computed attributes and id.

    *

    Columns to copy can be specified, but id edge and computed columns will not be copied.

    - * @param edge Edge to copy data from - * @param otherEdges Edges to copy data to + * + * @param edge Edge to copy data from + * @param otherEdges Edges to copy data to * @param columnsToCopy Columns of the edge to copy. All columns will be copied if it is null */ - void copyEdgeDataToOtherEdges(Edge edge, Edge[] otherEdges, AttributeColumn[] columnsToCopy); + void copyEdgeDataToOtherEdges(Edge edge, Edge[] otherEdges, Column[] columnsToCopy); /** *

    Copies attributes data of the given row to the other rows except computed attributes and id if node/edge.

    *

    Columns to copy can be specified, but id of node/edge and computed columns will not be copied.

    - * @param row Row to copy data from - * @param otherRows Rows to copy data to + * + * @param row Row to copy data from + * @param otherRows Rows to copy data to * @param columnsToCopy Columns of the row to copy. All columns will be copied if it is null */ - void copyRowDataToOtherRows(Attributes row, Attributes[] otherRows, AttributeColumn[] columnsToCopy); + void copyRowDataToOtherRows(Element row, Element[] otherRows, Column[] columnsToCopy); /** *

    Returns all rows of a given table (node or edges table).

    *

    Used for iterating through all attribute rows of a table

    + * * @param table Table to get attribute rows * @return Array of attribute rows of the table */ - Attributes[] getTableAttributeRows(AttributeTable table); + Element[] getTableAttributeRows(Table table); /** *

    Counts the number of rows of a table (nodes or edges table) and returns the result.

    *

    Uses GraphElementsController getNodesCount and getEdgesCount to calculate the result.

    + * * @param table * @return the number of rows in table */ - int getTableRowsCount(AttributeTable table); + int getTableRowsCount(Table table); /** *

    Checks if the given table is nodes table.

    + * + * @param table Table to check * @return True if the table is nodes table, false otherwise */ - boolean isNodeTable(AttributeTable table); + boolean isNodeTable(Table table); /** *

    Checks if the given table is edges table.

    + * + * @param table Table to check * @return True if the table is edges table, false otherwise */ - boolean isEdgeTable(AttributeTable table); + boolean isEdgeTable(Table table); + + boolean isTableColumn(Table table, Column column); + + boolean isNodeColumn(Column column); + + boolean isEdgeColumn(Column column); /** *

    Indicates if the Data Laboratory API behaviour allows to delete the given column of a table.

    *

    The behaviour is: Any column that does not have a AttributeOrigin of type PROPERTY can be deleted.

    + * * @param column Column to check if it can be deleted * @return True if it can be deleted, false otherwise */ - boolean canDeleteColumn(AttributeColumn column); + boolean canDeleteColumn(Column column); /** *

    Indicates if the Data Laboratory API behaviour allows to change a value of the given column of a table.

    *

    The behaviour is: Only values of columns with AttributeOrigin of type DATA or a node/edge label and weight column can be changed. (but weight can't be null. see canClearColumnData method).

    + * * @param column Column to check if values can be changed * @return True if the column values can be changed, false otherwise */ - boolean canChangeColumnData(AttributeColumn column); + boolean canChangeColumnData(Column column); /** *

    Indicates if the Data Laboratory API behaviour allows to set as null a value of the given column of a table.

    *

    The behaviour is: Only values of columns with AttributeOrigin of type DATA or a node/edge label column can be set to null. Edge weight can't be null

    + * * @param column Column to check if values can be changed * @return True if the column values can be changed, false otherwise */ - boolean canClearColumnData(AttributeColumn column); - + boolean canClearColumnData(Column column); + /** *

    Indicates if the Data Laboratory API behaviour allows to convert an existing column into its dynamic equivalent.

    *

    The behaviour is: Only values of columns with AttributeOrigin of type DATA and edge weight can be converted.

    + * * @param column Column to check if can be converted * @return True if the column can be converted to dynamic, false otherwise */ - boolean canConvertColumnToDynamic(AttributeColumn column); + boolean canConvertColumnToDynamic(Column column); /** *

    Calculates all statistics at once from a number/number list column using MathUtils class.

    - *

    Returns an array of length=8 of BigDecimal numbers with the results in the following order: + * Returns an array of length=8 of BigDecimal numbers with the results in the following order: *

      *
    1. average
    2. *
    3. first quartile (Q1)
    4. @@ -366,104 +404,72 @@ public interface AttributeColumnsController { *
    5. minimumValue
    6. *
    7. maximumValue
    8. *
    - *

    *

    The column can only be a number/number list column.

    *

    Otherwise, a IllegalArgumentException will be thrown.

    - * @param table Table of the column + * + * @param table Table of the column * @param column Column to get statistics * @return Array with statistics */ - BigDecimal[] getNumberOrNumberListColumnStatistics(AttributeTable table, AttributeColumn column); + BigDecimal[] getNumberOrNumberListColumnStatistics(Table table, Column column); /** *

    Prepares an array with all not null numbers of all the rows of a given column.

    *

    The column can only be a number/number list column.

    *

    Otherwise, a IllegalArgumentException will be thrown.

    - * @param table Table of the column to get numbers + * + * @param table Table of the column to get numbers * @param column Column to get numbers * @return Array with all numbers. */ - Number[] getColumnNumbers(AttributeTable table, AttributeColumn column); - + Number[] getColumnNumbers(Table table, Column column); + /** *

    Prepares an array only with all not null numbers the indicated rows of a given column.

    *

    The column can only be a number/number list column.

    *

    Otherwise, a IllegalArgumentException will be thrown.

    - * @param rows Rows to get numbers + * + * @param rows Rows to get numbers * @param column Column to get numbers * @return Array with all numbers. */ - Number[] getRowsColumnNumbers(Attributes[] rows, AttributeColumn column); + Number[] getRowsColumnNumbers(Element[] rows, Column column); /** *

    Prepares an array with all not null numbers of a row using only the given columns.

    *

    The columns can only be number/dynamic number/number list columns (in any combination).

    *

    All numbers intervals of a dynamic number column will be used.

    *

    Otherwise, a IllegalArgumentException will be thrown.

    - * @param row Row to get numbers + * + * @param row Row to get numbers * @param columns Columns of the row to use * @return Array with all numbers */ - Number[] getRowNumbers(Attributes row, AttributeColumn[] columns); - - /** - *

    Method for importing CSV file data to nodes table.

    - *

    Only special case is treating columns is id columns: first column found named 'id' (case insensitive) will be used as node id, others will be ignored.

    - *

    No special column must be provided.

    - *

    If a column name is not already in nodes table, it will be created with the corresponding columnType index.

    - *

    If a node id already exists, depending on assignNewNodeIds, a new id will be assigned to it or instead, the already existing node attributes will be updated with the CSV data

    - * @param file CSV file - * @param separator Separator of values of the CSV file - * @param charset Charset of the CSV file - * @param columnNames Names of the columns in the CSV file to use - * @param columnTypes Types of the columns in the CSV file to use when creating columns - * @param assignNewNodeIds Indicates if nodes should be assigned new ids when the ids are already in nodes table or not provided. - */ - void importCSVToNodesTable(File file, Character separator, Charset charset, String[] columnNames, AttributeType[] columnTypes, boolean assignNewNodeIds); - - /** - *

    Method for importing csv data to edges table.

    - *

    Column named 'Source' and 'Target' (case insensitive) should be provided. Any row that does not provide a source and target nodes ids will be ignored.

    - *

    If no 'Type' (case insensitive) column is provided, all edges will be directed.

    - *

    If an edge already exists and cannot be created, it will be ignored but the weight of the existing edge will be increased with each repetition.

    - * - *

    Special cases are id, source, target and type columns: - *

      - *
    • First column found named 'id' (case insensitive) will be used as node id, others will be ignored.
    • - *
    • First column named 'Source' (case insensitive) will be used as source node id. The next ones will be used as normal columns, and created if not already existing.
    • - *
    • First column named 'Target' (case insensitive) will be used as target node id. The next ones will be used as normal columns, and created if not already existing.
    • - *
    • First column named 'Type' (case insensitive) will be used as edge type, matching 'Directed' or 'Undirected' strings (case insensitive). The next ones will be used as normal columns, and created if not already existing.
    • - *
    - *

    - * @param file CSV file - * @param separator Separator of values of the CSV file - * @param charset Charset of the CSV file - * @param columnNames Names of the columns in the CSV file to use - * @param columnTypes Types of the columns in the CSV file to use when creating columns - * @param createNewNodes Indicates if missing nodes should be created when an edge declares a source or target id not already existing - */ - void importCSVToEdgesTable(File file, Character separator, Charset charset, String[] columnNames, AttributeType[] columnTypes, boolean createNewNodes); - + Number[] getRowNumbers(Element row, Column[] columns); + /** *

    Merges the given rows values to the given result row using one merge strategy for each column of the table.

    *

    The number of columns must be equal to the number of merge strategies provided

    *

    No parameters can be null except selectedRow (first row will be used in case selectedRow is null)

    *

    If any strategy is null, the value of the selectedRow will be used

    - * @param table Table of the rows - * @param mergeStrategies Strategies for each column of the table - * @param rows Rows to merge (at least 1) - * @param selectedRow Main selected row or null (first row will be used in case selectedRow is null) - * @param resultRow Already existing row to put the values on + * + * @param columns Columns to apply a merge strategy in each row + * @param mergeStrategies Strategies for each column in {@code columns} + * @param rows Rows to merge (at least 1) + * @param selectedRow Main selected row or null (first row will be used in case selectedRow is null) + * @param resultRow Already existing row to put the values on */ - void mergeRowsValues(AttributeTable table, AttributeRowsMergeStrategy[] mergeStrategies, Attributes[] rows, Attributes selectedRow, Attributes resultRow); - + void mergeRowsValues(Column[] columns, AttributeRowsMergeStrategy[] mergeStrategies, Element[] rows, + Element selectedRow, Element resultRow); + /** *

    Finds and returns nodes duplicates based on the values of a given column of nodes table

    *

    A node is a duplicate of other if they have the same value (String representation of the values is used) in the given column.

    *

    This is useful to be used to automatically merge duplicated nodes

    - * @param column Column to use values to detect duplicates + * + * @param column Column to use values to detect duplicates * @param caseSensitive Case insensitivity when comparing the column values * @return List of node duplicates groups (at least 2 nodes in each group) */ - List> detectNodeDuplicatesByColumn(AttributeColumn column, boolean caseSensitive); + List> detectNodeDuplicatesByColumn(Column column, boolean caseSensitive); } diff --git a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/AttributeColumnsMergeStrategiesController.java b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/AttributeColumnsMergeStrategiesController.java index cce2df076c..f261652117 100644 --- a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/AttributeColumnsMergeStrategiesController.java +++ b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/AttributeColumnsMergeStrategiesController.java @@ -39,62 +39,55 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.api; import java.text.SimpleDateFormat; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; -import org.gephi.data.attributes.api.AttributeType; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Table; /** * This interface defines part of the Data Laboratory API basic actions. * It contains methods for applying different basic attribute columns merge strategies. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public interface AttributeColumnsMergeStrategiesController { - /** - * Enumeration that defines the supported logic operations for a merge with booleanLogicOperationsMerge strategy. - */ - public enum BooleanOperations { - AND, - OR, - XOR, - NAND, - NOR - } - /** *

    Joins various columns of any type into a new column using the given separator string (or null).

    *

    If the specified column type is null, the new created column will have STRING AttributeType by default.

    - * @param table Table of the columns to merge + * + * @param table Table of the columns to merge * @param columnsToMerge Columns to merge - * @param newColumnType Type for the new column. If null, STRING will be used by default + * @param newColumnType Type for the new column. If null, STRING will be used by default * @param newColumnTitle Title for the new column - * @param separator Separator to put between each value + * @param separator Separator to put between each value * @return The new created column */ - AttributeColumn joinWithSeparatorMerge(AttributeTable table, AttributeColumn[] columnsToMerge, AttributeType newColumnType, String newColumnTitle, String separator); + Column joinWithSeparatorMerge(Table table, Column[] columnsToMerge, Class newColumnType, String newColumnTitle, + String separator); /** *

    Merge 1 or 2 columns creating a time interval for each row. Values of the columns will be expected as numbers

    *

    Only one of the 2 column could be null, and its corresponding start/end default will be used.

    *

    Columns can be of any type. If not numeric, their values will be parsed.

    *

    Default start and end values will be used when the columns don't have a value or it can't be parsed to a double.

    - *

    When start > end for any reason: + * When start > end for any reason: *

      *
    • If both columns were provided: A infinite time interval will be set
    • *
    • If only one column was provided: The value for the provided column will be kept and the other will be infinite
    • *
    - *

    - * @param table Table of the columns, can't be null or wrong - * @param startColumn Column to use as start value - * @param endColumn Column to use as end value + * + * @param table Table of the columns, can't be null or wrong + * @param startColumn Column to use as start value + * @param endColumn Column to use as end value * @param defaultStart Default start value - * @param defaultEnd Default end value + * @param defaultEnd Default end value * @return Time interval column */ - AttributeColumn mergeNumericColumnsToTimeInterval(AttributeTable table, AttributeColumn startColumn, AttributeColumn endColumn, double defaultStart, double defaultEnd); + Column mergeNumericColumnsToTimeInterval(Table table, Column startColumn, Column endColumn, double defaultStart, + double defaultEnd); /** *

    Merge 1 or 2 columns creating a time interval for each row. Values of the columns will be expected as dates in the given date format

    @@ -102,111 +95,133 @@ public enum BooleanOperations { *

    Columns can be of any type.

    *

    Default start and end values will be used when the columns don't have a value or it can't be parsed to a date. * If a default value can't be parsed to a date, infinity will be used as default instead.

    - *

    When start > end for any reason: + * When start > end for any reason: *

      *
    • If both columns were provided: A infinite time interval will be set
    • *
    • If only one column was provided: The value for the provided column will be kept and the other will be infinite
    • *
    - *

    - * @param table Table of the columns, can't be null or wrong - * @param startColumn Column to use as start value - * @param endColumn Column to use as end value - * @param dateFormat Format for the dates, can't be null + * + * @param table Table of the columns, can't be null or wrong + * @param startColumn Column to use as start value + * @param endColumn Column to use as end value + * @param dateFormat Format for the dates, can't be null * @param defaultStartDate Default date to use as start if it can be parsed - * @param defaultEndDate Default date to use as end if it can be parsed + * @param defaultEndDate Default date to use as end if it can be parsed * @return Time interval column */ - AttributeColumn mergeDateColumnsToTimeInterval(AttributeTable table, AttributeColumn startColumn, AttributeColumn endColumn, SimpleDateFormat dateFormat, String defaultStartDate, String defaultEndDate); + Column mergeDateColumnsToTimeInterval(Table table, Column startColumn, Column endColumn, + SimpleDateFormat dateFormat, String defaultStartDate, String defaultEndDate); /** *

    Strategy to apply only to all boolean columns. Merges various columns into a new boolean column * allowing to define each operation to apply between each pair of columns to merge.

    *

    The length of the operations array must be the length of the columns array-1, or IllegalArgumentException will be thrown.

    - * @param table Table of the columns to merge - * @param columnsToMerge Boolean columns to merge + * + * @param table Table of the columns to merge + * @param columnsToMerge Boolean columns to merge * @param booleanOperations Boolean operations to apply - * @param newColumnTitle Title for the new column + * @param newColumnTitle Title for the new column * @return The new created column */ - AttributeColumn booleanLogicOperationsMerge(AttributeTable table, AttributeColumn[] columnsToMerge, BooleanOperations[] booleanOperations, String newColumnTitle); + Column booleanLogicOperationsMerge(Table table, Column[] columnsToMerge, BooleanOperations[] booleanOperations, + String newColumnTitle); /** *

    Merges any combination of number or number list columns, calculating the average of all not null values * and puts the result of each row in a new column of BIGDECIMAL AttributeType.

    - * @param table Table of the columns to merge + * + * @param table Table of the columns to merge * @param columnsToMerge Number or number list columns * @param newColumnTitle Title for the new column * @return The new created column */ - AttributeColumn averageNumberMerge(AttributeTable table, AttributeColumn[] columnsToMerge, String newColumnTitle); + Column averageNumberMerge(Table table, Column[] columnsToMerge, String newColumnTitle); /** *

    Merges any combination of number or number list columns, calculating the first quartile (Q1) of all not null values * and puts the result of each row in a new column of BIGDECIMAL AttributeType.

    - * @param table Table of the columns to merge + * + * @param table Table of the columns to merge * @param columnsToMerge Number or number list columns * @param newColumnTitle Title for the new column * @return The new created column */ - AttributeColumn firstQuartileNumberMerge(AttributeTable table, AttributeColumn[] columnsToMerge, String newColumnTitle); + Column firstQuartileNumberMerge(Table table, Column[] columnsToMerge, String newColumnTitle); /** *

    Merges any combination of number or number list columns, calculating the median of all not null values * and puts the result of each row in a new column of BIGDECIMAL AttributeType.

    - * @param table Table of the columns to merge + * + * @param table Table of the columns to merge * @param columnsToMerge Number or number list columns * @param newColumnTitle Title for the new column * @return The new created column */ - AttributeColumn medianNumberMerge(AttributeTable table, AttributeColumn[] columnsToMerge, String newColumnTitle); + Column medianNumberMerge(Table table, Column[] columnsToMerge, String newColumnTitle); /** *

    Merges any combination of number or number list columns, calculating the third quartile (Q3) of all not null values * and puts the result of each row in a new column of BIGDECIMAL AttributeType.

    - * @param table Table of the columns to merge + * + * @param table Table of the columns to merge * @param columnsToMerge Number or number list columns * @param newColumnTitle Title for the new column * @return The new created column */ - AttributeColumn thirdQuartileNumberMerge(AttributeTable table, AttributeColumn[] columnsToMerge, String newColumnTitle); + Column thirdQuartileNumberMerge(Table table, Column[] columnsToMerge, String newColumnTitle); /** *

    Merges any combination of number or number list columns, calculating the interquartile range (IQR) of all not null values * and puts the result of each row in a new column of BIGDECIMAL AttributeType.

    - * @param table Table of the columns to merge + * + * @param table Table of the columns to merge * @param columnsToMerge Number or number list columns * @param newColumnTitle Title for the new column * @return The new created column */ - AttributeColumn interQuartileRangeNumberMerge(AttributeTable table, AttributeColumn[] columnsToMerge, String newColumnTitle); + Column interQuartileRangeNumberMerge(Table table, Column[] columnsToMerge, String newColumnTitle); /** *

    Merges any combination of number or number list columns, calculating the sum of all not null values * and puts the result of each row in a new column of BIGDECIMAL AttributeType.

    - * @param table Table of the columns to merge + * + * @param table Table of the columns to merge * @param columnsToMerge Number or number list columns * @param newColumnTitle Title for the new column * @return The new created column */ - AttributeColumn sumNumbersMerge(AttributeTable table, AttributeColumn[] columnsToMerge, String newColumnTitle); + Column sumNumbersMerge(Table table, Column[] columnsToMerge, String newColumnTitle); /** * Merges any combination of number or number list columns, calculating the minimum value of all not null values * and puts the result of each row in a new column of BIGDECIMAL AttributeType. - * @param table Table of the columns to merge + * + * @param table Table of the columns to merge * @param columnsToMerge Number or number list columns * @param newColumnTitle Title for the new column * @return The new created column */ - AttributeColumn minValueNumbersMerge(AttributeTable table, AttributeColumn[] columnsToMerge, String newColumnTitle); + Column minValueNumbersMerge(Table table, Column[] columnsToMerge, String newColumnTitle); /** *

    Merges any combination of number or number list columns, calculating the maximum value of all not null values * and puts the result of each row in a new column of BIGDECIMAL AttributeType.

    - * @param table Table of the columns to merge + * + * @param table Table of the columns to merge * @param columnsToMerge Number or number list columns * @param newColumnTitle Title for the new column * @return The new created column */ - AttributeColumn maxValueNumbersMerge(AttributeTable table, AttributeColumn[] columnsToMerge, String newColumnTitle); + Column maxValueNumbersMerge(Table table, Column[] columnsToMerge, String newColumnTitle); + + /** + * Enumeration that defines the supported logic operations for a merge with booleanLogicOperationsMerge strategy. + */ + enum BooleanOperations { + AND, + OR, + XOR, + NAND, + NOR + } } diff --git a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/DataLaboratoryHelper.java b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/DataLaboratoryHelper.java index e2be3d6e78..c079340bf9 100644 --- a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/DataLaboratoryHelper.java +++ b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/DataLaboratoryHelper.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.api; import java.awt.Dialog; @@ -49,12 +50,12 @@ Development and Distribution License("CDDL") (collectively, the import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; +import java.util.logging.Level; +import java.util.logging.Logger; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JPanel; import javax.swing.SwingUtilities; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; import org.gephi.datalab.spi.DialogControls; import org.gephi.datalab.spi.Manipulator; import org.gephi.datalab.spi.ManipulatorUI; @@ -62,8 +63,6 @@ Development and Distribution License("CDDL") (collectively, the import org.gephi.datalab.spi.columns.AttributeColumnsManipulatorUI; import org.gephi.datalab.spi.columns.merge.AttributeColumnsMergeStrategy; import org.gephi.datalab.spi.columns.merge.AttributeColumnsMergeStrategyBuilder; -import org.gephi.datalab.spi.values.AttributeValueManipulator; -import org.gephi.datalab.spi.values.AttributeValueManipulatorBuilder; import org.gephi.datalab.spi.edges.EdgesManipulator; import org.gephi.datalab.spi.edges.EdgesManipulatorBuilder; import org.gephi.datalab.spi.general.GeneralActionsManipulator; @@ -72,6 +71,11 @@ Development and Distribution License("CDDL") (collectively, the import org.gephi.datalab.spi.nodes.NodesManipulatorBuilder; import org.gephi.datalab.spi.rows.merge.AttributeRowsMergeStrategy; import org.gephi.datalab.spi.rows.merge.AttributeRowsMergeStrategyBuilder; +import org.gephi.datalab.spi.values.AttributeValueManipulator; +import org.gephi.datalab.spi.values.AttributeValueManipulatorBuilder; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.GraphModel; +import org.gephi.graph.api.Table; import org.openide.DialogDescriptor; import org.openide.DialogDisplayer; import org.openide.util.Lookup; @@ -84,14 +88,19 @@ Development and Distribution License("CDDL") (collectively, the @ServiceProvider(service = DataLaboratoryHelper.class) public class DataLaboratoryHelper { + public static DataLaboratoryHelper getDefault() { + return Lookup.getDefault().lookup(DataLaboratoryHelper.class); + } + /** *

    Prepares an array with one new instance of every NodesManipulator * that has a builder registered and returns it.

    *

    It also returns the manipulators ordered first by type and then by position.

    + * * @return Array of all NodesManipulator implementations */ public NodesManipulator[] getNodesManipulators() { - ArrayList nodesManipulators = new ArrayList(); + ArrayList nodesManipulators = new ArrayList<>(); for (NodesManipulatorBuilder nm : Lookup.getDefault().lookupAll(NodesManipulatorBuilder.class)) { nodesManipulators.add(nm.getNodesManipulator()); } @@ -103,10 +112,11 @@ public NodesManipulator[] getNodesManipulators() { *

    Prepares an array with one new instance of every EdgesManipulator * that has a builder registered and returns it.

    *

    It also returns the manipulators ordered first by type and then by position.

    + * * @return Array of all EdgesManipulator implementations */ public EdgesManipulator[] getEdgesManipulators() { - ArrayList edgesManipulators = new ArrayList(); + ArrayList edgesManipulators = new ArrayList<>(); for (EdgesManipulatorBuilder em : Lookup.getDefault().lookupAll(EdgesManipulatorBuilder.class)) { edgesManipulators.add(em.getEdgesManipulator()); } @@ -117,10 +127,11 @@ public EdgesManipulator[] getEdgesManipulators() { /** *

    Prepares an array with one instance of every GeneralActionsManipulator that is registered.

    *

    It also returns the manipulators ordered first by type and then by position.

    + * * @return Array of all GeneralActionsManipulator implementations */ public GeneralActionsManipulator[] getGeneralActionsManipulators() { - ArrayList generalActionsManipulators = new ArrayList(); + ArrayList generalActionsManipulators = new ArrayList<>(); generalActionsManipulators.addAll(Lookup.getDefault().lookupAll(GeneralActionsManipulator.class)); sortManipulators(generalActionsManipulators); return generalActionsManipulators.toArray(new GeneralActionsManipulator[0]); @@ -129,10 +140,11 @@ public GeneralActionsManipulator[] getGeneralActionsManipulators() { /** *

    Prepares an array with one instance of every PluginGeneralActionsManipulator that is registered.

    *

    It also returns the manipulators ordered first by type and then by position.

    + * * @return Array of all PluginGeneralActionsManipulator implementations */ public PluginGeneralActionsManipulator[] getPluginGeneralActionsManipulators() { - ArrayList pluginGeneralActionsManipulators = new ArrayList(); + ArrayList pluginGeneralActionsManipulators = new ArrayList<>(); pluginGeneralActionsManipulators.addAll(Lookup.getDefault().lookupAll(PluginGeneralActionsManipulator.class)); sortManipulators(pluginGeneralActionsManipulators); return pluginGeneralActionsManipulators.toArray(new PluginGeneralActionsManipulator[0]); @@ -142,10 +154,11 @@ public PluginGeneralActionsManipulator[] getPluginGeneralActionsManipulators() { *

    Prepares an array that has one instance of every AttributeColumnsManipulator implementation * that has a builder registered and returns it.

    *

    It also returns the manipulators ordered first by type and then by position.

    + * * @return Array of all AttributeColumnsManipulator implementations */ public AttributeColumnsManipulator[] getAttributeColumnsManipulators() { - ArrayList attributeColumnsManipulators = new ArrayList(); + ArrayList attributeColumnsManipulators = new ArrayList<>(); attributeColumnsManipulators.addAll(Lookup.getDefault().lookupAll(AttributeColumnsManipulator.class)); sortAttributeColumnsManipulators(attributeColumnsManipulators); return attributeColumnsManipulators.toArray(new AttributeColumnsManipulator[0]); @@ -155,11 +168,13 @@ public AttributeColumnsManipulator[] getAttributeColumnsManipulators() { *

    Prepares an array with one new instance of every AttributeValueManipulator * that has a builder registered and returns it.

    *

    It also returns the manipulators ordered first by type and then by position.

    + * * @return Array of all AttributeValueManipulator implementations */ public AttributeValueManipulator[] getAttributeValueManipulators() { - ArrayList attributeValueManipulators = new ArrayList(); - for (AttributeValueManipulatorBuilder am : Lookup.getDefault().lookupAll(AttributeValueManipulatorBuilder.class)) { + ArrayList attributeValueManipulators = new ArrayList<>(); + for (AttributeValueManipulatorBuilder am : Lookup.getDefault() + .lookupAll(AttributeValueManipulatorBuilder.class)) { attributeValueManipulators.add(am.getAttributeValueManipulator()); } sortManipulators(attributeValueManipulators); @@ -169,11 +184,13 @@ public AttributeValueManipulator[] getAttributeValueManipulators() { /** *

    Prepares an array that has one new instance of every AttributeColumnsMergeStrategy implementation that is registered.

    *

    It also returns the manipulators ordered first by type and then by position.

    + * * @return Array of all AttributeColumnsMergeStrategy implementations */ public AttributeColumnsMergeStrategy[] getAttributeColumnsMergeStrategies() { - ArrayList strategies = new ArrayList(); - for (AttributeColumnsMergeStrategyBuilder cs : Lookup.getDefault().lookupAll(AttributeColumnsMergeStrategyBuilder.class)) { + ArrayList strategies = new ArrayList<>(); + for (AttributeColumnsMergeStrategyBuilder cs : Lookup.getDefault() + .lookupAll(AttributeColumnsMergeStrategyBuilder.class)) { strategies.add(cs.getAttributeColumnsMergeStrategy()); } sortManipulators(strategies); @@ -183,11 +200,13 @@ public AttributeColumnsMergeStrategy[] getAttributeColumnsMergeStrategies() { /** *

    Prepares an array that has one new instance of every AttributeRowsMergeStrategy implementation that is registered.

    *

    It also returns the manipulators ordered first by type and then by position.

    + * * @return Array of all AttributeRowsMergeStrategy implementations */ public AttributeRowsMergeStrategy[] getAttributeRowsMergeStrategies() { - ArrayList strategies = new ArrayList(); - for (AttributeRowsMergeStrategyBuilder cs : Lookup.getDefault().lookupAll(AttributeRowsMergeStrategyBuilder.class)) { + ArrayList strategies = new ArrayList<>(); + for (AttributeRowsMergeStrategyBuilder cs : Lookup.getDefault() + .lookupAll(AttributeRowsMergeStrategyBuilder.class)) { strategies.add(cs.getAttributeRowsMergeStrategy()); } sortManipulators(strategies); @@ -197,6 +216,7 @@ public AttributeRowsMergeStrategy[] getAttributeRowsMergeStrategies() { private void sortManipulators(ArrayList m) { Collections.sort(m, new Comparator() { + @Override public int compare(Manipulator o1, Manipulator o2) { //Order by type, position. if (o1.getType() == o2.getType()) { @@ -211,6 +231,7 @@ public int compare(Manipulator o1, Manipulator o2) { private void sortAttributeColumnsManipulators(ArrayList m) { Collections.sort(m, new Comparator() { + @Override public int compare(AttributeColumnsManipulator o1, AttributeColumnsManipulator o2) { //Order by type, position. if (o1.getType() == o2.getType()) { @@ -225,23 +246,29 @@ public int compare(AttributeColumnsManipulator o1, AttributeColumnsManipulator o /** * Prepares the dialog UI of a manipulator if it has one and executes the manipulator in a separate * Thread when the dialog is accepted or directly if there is no UI. + * * @param m Manipulator to execute */ public void executeManipulator(final Manipulator m) { if (m.canExecute()) { SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { final ManipulatorUI ui = m.getUI(); //Show a dialog for the manipulator UI if it provides one. If not, execute the manipulator directly: if (ui != null) { - final JButton okButton = new JButton(NbBundle.getMessage(DataLaboratoryHelper.class, "DataLaboratoryHelper.ui.okButton.text")); + final JButton okButton = new JButton( + NbBundle.getMessage(DataLaboratoryHelper.class, "DataLaboratoryHelper.ui.okButton.text")); DialogControls dialogControls = new DialogControlsImpl(okButton); ui.setup(m, dialogControls); JPanel settingsPanel = ui.getSettingsPanel(); - DialogDescriptor dd = new DialogDescriptor(settingsPanel, NbBundle.getMessage(DataLaboratoryHelper.class, "SettingsPanel.title", ui.getDisplayName()), ui.isModal(), new ActionListener() { + DialogDescriptor dd = new DialogDescriptor(settingsPanel, + NbBundle.getMessage(DataLaboratoryHelper.class, "SettingsPanel.title", ui.getDisplayName()), + ui.isModal(), new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { if (e.getSource().equals(okButton)) { ui.unSetup(); @@ -251,7 +278,7 @@ public void actionPerformed(ActionEvent e) { } } }); - dd.setOptions(new Object[]{okButton, DialogDescriptor.CANCEL_OPTION}); + dd.setOptions(new Object[] {okButton, DialogDescriptor.CANCEL_OPTION}); dd.setClosingOptions(null);//All options close Dialog dialog = DialogDisplayer.getDefault().createDialog(dd); dialog.addWindowListener(new WindowAdapter() { @@ -274,6 +301,7 @@ public void windowClosing(WindowEvent e) { * This method shows the UI of an AttributeRowsMergeStrategy if it is provided and the AttributeRowsMergeStrategy can be executed. * These UI only configures (calls unSetup) the AttributeRowsMergeStrategy if the dialog is accepted, * and it does not execute the AttributeRowsMergeStrategy. + * * @param m AttributeRowsMergeStrategy * @return True if the AttributeRowsMergeStrategy UI is provided */ @@ -281,19 +309,23 @@ public boolean showAttributeRowsMergeStrategyUIDialog(final AttributeRowsMergeSt final ManipulatorUI ui = m.getUI(); //Show a dialog for the manipulator UI if it provides one. If not, execute the manipulator directly: if (ui != null && m.canExecute()) { - final JButton okButton = new JButton(NbBundle.getMessage(DataLaboratoryHelper.class, "DataLaboratoryHelper.ui.okButton.text")); + final JButton okButton = + new JButton(NbBundle.getMessage(DataLaboratoryHelper.class, "DataLaboratoryHelper.ui.okButton.text")); DialogControls dialogControls = new DialogControlsImpl(okButton); ui.setup(m, dialogControls); JPanel settingsPanel = ui.getSettingsPanel(); - DialogDescriptor dd = new DialogDescriptor(settingsPanel, NbBundle.getMessage(DataLaboratoryHelper.class, "SettingsPanel.title", ui.getDisplayName()), ui.isModal(), new ActionListener() { + DialogDescriptor dd = new DialogDescriptor(settingsPanel, + NbBundle.getMessage(DataLaboratoryHelper.class, "SettingsPanel.title", ui.getDisplayName()), + ui.isModal(), new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { if (e.getSource().equals(okButton)) { ui.unSetup(); } } }); - dd.setOptions(new Object[]{okButton, DialogDescriptor.CANCEL_OPTION}); + dd.setOptions(new Object[] {okButton, DialogDescriptor.CANCEL_OPTION}); dd.setClosingOptions(null);//All options close Dialog dialog = DialogDisplayer.getDefault().createDialog(dd); dialog.setVisible(true); @@ -307,6 +339,13 @@ private void executeManipulatorInOtherThread(final Manipulator m) { @Override public void run() { + this.setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() { + + @Override + public void uncaughtException(Thread t, Throwable e) { + Logger.getLogger("").log(Level.SEVERE, null, e); + } + }); m.execute(); } }.start(); @@ -315,24 +354,32 @@ public void run() { /** * Prepares the dialog UI of a AttributeColumnsManipulator if it has one and executes the manipulator in a separate * Thread when the dialog is accepted or directly if there is no UI. - * @param m AttributeColumnsManipulator - * @param table Table of the column - * @param column Column to manipulate + * + * @param m AttributeColumnsManipulator + * @param graphModel Graph model of the table + * @param table Table of the column + * @param column Column to manipulate */ - public void executeAttributeColumnsManipulator(final AttributeColumnsManipulator m, final AttributeTable table, final AttributeColumn column) { + public void executeAttributeColumnsManipulator(final AttributeColumnsManipulator m, final GraphModel graphModel, + final Table table, final Column column) { if (m.canManipulateColumn(table, column)) { SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { final AttributeColumnsManipulatorUI ui = m.getUI(table, column); //Show a dialog for the manipulator UI if it provides one. If not, execute the manipulator directly: if (ui != null) { - final JButton okButton = new JButton(NbBundle.getMessage(DataLaboratoryHelper.class, "DataLaboratoryHelper.ui.okButton.text")); + final JButton okButton = new JButton( + NbBundle.getMessage(DataLaboratoryHelper.class, "DataLaboratoryHelper.ui.okButton.text")); DialogControls dialogControls = new DialogControlsImpl(okButton); - ui.setup(m, table, column, dialogControls); + ui.setup(m, graphModel, table, column, dialogControls); JPanel settingsPanel = ui.getSettingsPanel(); - DialogDescriptor dd = new DialogDescriptor(settingsPanel, NbBundle.getMessage(DataLaboratoryHelper.class, "SettingsPanel.title", ui.getDisplayName()), ui.isModal(), new ActionListener() { + DialogDescriptor dd = new DialogDescriptor(settingsPanel, + NbBundle.getMessage(DataLaboratoryHelper.class, "SettingsPanel.title", ui.getDisplayName()), + ui.isModal(), new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { if (e.getSource().equals(okButton)) { ui.unSetup(); @@ -342,7 +389,7 @@ public void actionPerformed(ActionEvent e) { } } }); - dd.setOptions(new Object[]{okButton, DialogDescriptor.CANCEL_OPTION}); + dd.setOptions(new Object[] {okButton, DialogDescriptor.CANCEL_OPTION}); dd.setClosingOptions(null);//All options close Dialog dialog = DialogDisplayer.getDefault().createDialog(dd); dialog.addWindowListener(new WindowAdapter() { @@ -361,7 +408,8 @@ public void windowClosing(WindowEvent e) { } } - private void executeAttributeColumnsManipulatorInOtherThread(final AttributeColumnsManipulator m, final AttributeTable table, final AttributeColumn column) { + private void executeAttributeColumnsManipulatorInOtherThread(final AttributeColumnsManipulator m, final Table table, + final Column column) { new Thread() { @Override @@ -435,7 +483,8 @@ public AttributeColumnsManipulator getAttributeColumnsManipulatorByName(String n * Returns the AttributeColumnsMergeStrategy with that class name or null if it does not exist */ public AttributeValueManipulator getAttributeValueManipulatorByName(String name) { - for (AttributeValueManipulatorBuilder am : Lookup.getDefault().lookupAll(AttributeValueManipulatorBuilder.class)) { + for (AttributeValueManipulatorBuilder am : Lookup.getDefault() + .lookupAll(AttributeValueManipulatorBuilder.class)) { if (am.getAttributeValueManipulator().getClass().getSimpleName().equals(name)) { return am.getAttributeValueManipulator(); } @@ -447,7 +496,8 @@ public AttributeValueManipulator getAttributeValueManipulatorByName(String name) * Returns the AttributeColumnsMergeStrategy with that class name or null if it does not exist */ public AttributeColumnsMergeStrategy getAttributeColumnsMergeStrategyByName(String name) { - for (AttributeColumnsMergeStrategyBuilder cs : Lookup.getDefault().lookupAll(AttributeColumnsMergeStrategyBuilder.class)) { + for (AttributeColumnsMergeStrategyBuilder cs : Lookup.getDefault() + .lookupAll(AttributeColumnsMergeStrategyBuilder.class)) { if (cs.getAttributeColumnsMergeStrategy().getClass().getSimpleName().equals(name)) { return cs.getAttributeColumnsMergeStrategy(); } @@ -459,7 +509,8 @@ public AttributeColumnsMergeStrategy getAttributeColumnsMergeStrategyByName(Stri * Returns the AttributeRowsMergeStrategy with that class name or null if it does not exist */ public AttributeRowsMergeStrategy getAttributeRowsMergeStrategyByName(String name) { - for (AttributeRowsMergeStrategyBuilder cs : Lookup.getDefault().lookupAll(AttributeRowsMergeStrategyBuilder.class)) { + for (AttributeRowsMergeStrategyBuilder cs : Lookup.getDefault() + .lookupAll(AttributeRowsMergeStrategyBuilder.class)) { if (cs.getAttributeRowsMergeStrategy().getClass().getSimpleName().equals(name)) { return cs.getAttributeRowsMergeStrategy(); } @@ -475,16 +526,14 @@ public DialogControlsImpl(JComponent okButton) { this.okButton = okButton; } - public void setOkButtonEnabled(boolean enabled) { - okButton.setEnabled(enabled); - } - + @Override public boolean isOkButtonEnabled() { return okButton.isEnabled(); } - } - public static DataLaboratoryHelper getDefault() { - return Lookup.getDefault().lookup(DataLaboratoryHelper.class); + @Override + public void setOkButtonEnabled(boolean enabled) { + okButton.setEnabled(enabled); + } } } diff --git a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/GraphElementsController.java b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/GraphElementsController.java index 5be2a3732d..52e2e3196a 100644 --- a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/GraphElementsController.java +++ b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/GraphElementsController.java @@ -39,41 +39,68 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.api; import org.gephi.datalab.spi.rows.merge.AttributeRowsMergeStrategy; +import org.gephi.graph.api.Column; import org.gephi.graph.api.Edge; +import org.gephi.graph.api.Graph; import org.gephi.graph.api.Node; /** *

    This interface defines part of the Data Laboratory API basic actions.

    *

    It contains methods for manipulating the nodes and edges of the graph.

    *

    All the provided methods take care to check first that the nodes and edges to manipulate are in the graph.

    - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public interface GraphElementsController { /** - * Creates a node with default id and the given label. + * Creates a node with default id and the given label in the current graph. + * * @param label Label for the node * @return The new created node */ Node createNode(String label); /** - *

    Creates a node with the given id and label.

    + * Creates a node with default id and the given label. + * + * @param label Label for the node + * @param graph Graph to insert the node into + * @return The new created node + */ + Node createNode(String label, Graph graph); + + /** + *

    Creates a node with the given id and label in the current graph.

    *

    If a node with that id already exists, no node will be created

    + * * @param label Label for the node - * @param id Id for the node + * @param id Id for the node * @return The new created node or null if a node with the given id already exists */ Node createNode(String label, String id); + /** + *

    Creates a node with the given id and label.

    + *

    If a node with that id already exists, no node will be created

    + * + * @param label Label for the node + * @param id Id for the node + * @param graph Graph to insert the node into + * @return The new created node or null if a node with the given id already exists + */ + Node createNode(String label, String id, Graph graph); + /** *

    Duplicates a node if it is in the graph, and returns the new node.

    *

    If the node has children, they are also copied as children of the new node.

    *

    Sets the same properties and attributes for the node as the original node: id, label and AttributeColumns with DATA AttributeOrigin. * Does not copy AttributeColumns with COMPUTED AttributeOrigin.

    + * * @param node Node to copy * @return New node */ @@ -81,33 +108,112 @@ public interface GraphElementsController { /** * Tries to duplicate an array of nodes with the same behaviour as duplicateNode method. + * * @param nodes Array of nodes to duplicate */ void duplicateNodes(Node[] nodes); /** - *

    Creates and edge between source and target node (if it does not already exist), directed or undirected.

    - * @param source Source node - * @param target Target node + *

    Creates and edge between source and target node (if it does not already exist), directed or undirected, in the current graph.

    + * + * @param source Source node + * @param target Target node * @param directed Indicates if the edge has to be directed * @return New edge if the edge was created succesfully, null otherwise */ Edge createEdge(Node source, Node target, boolean directed); + /** + *

    Creates and edge between source and target node (if it does not already exist), directed or undirected, in the current graph.

    + * + * @param source Source node + * @param target Target node + * @param directed Indicates if the edge has to be directed + * @param typeLabel Edge type label or null + * @return New edge if the edge was created succesfully, null otherwise + */ + Edge createEdge(Node source, Node target, boolean directed, Object typeLabel); + + /** + *

    Creates and edge between source and target node (if it does not already exist), directed or undirected.

    + * + * @param source Source node + * @param target Target node + * @param directed Indicates if the edge has to be directed + * @param graph Graph to insert the node into + * @return New edge if the edge was created succesfully, null otherwise + */ + Edge createEdge(Node source, Node target, boolean directed, Graph graph); + + /** + *

    Creates and edge between source and target node (if it does not already exist), directed or undirected.

    + * + * @param source Source node + * @param target Target node + * @param directed Indicates if the edge has to be directed + * @param typeLabel Edge type label or null + * @param graph Graph to insert the node into + * @return New edge if the edge was created succesfully, null otherwise + */ + Edge createEdge(Node source, Node target, boolean directed, Object typeLabel, Graph graph); + /** *

    Creates and edge between source and target node (if it does not already exist), directed or undirected.

    *

    If a edge with the given id already exists, no edge will be created.

    - * @param source Source node - * @param target Target node + * + * @param id Id for the new edge + * @param source Source node + * @param target Target node * @param directed Indicates if the edge has to be directed * @return New edge if the edge was created succesfully, null otherwise */ Edge createEdge(String id, Node source, Node target, boolean directed); + /** + *

    Creates and edge between source and target node (if it does not already exist), directed or undirected.

    + *

    If a edge with the given id already exists, no edge will be created.

    + * + * @param id Id for the new edge + * @param source Source node + * @param target Target node + * @param directed Indicates if the edge has to be directed + * @param typeLabel Edge type label or null + * @return New edge if the edge was created succesfully, null otherwise + */ + Edge createEdge(String id, Node source, Node target, boolean directed, Object typeLabel); + + /** + *

    Creates and edge between source and target node (if it does not already exist), directed or undirected, in the current graph.

    + *

    If a edge with the given id already exists, no edge will be created.

    + * + * @param id Id for the new edge + * @param source Source node + * @param target Target node + * @param directed Indicates if the edge has to be directed + * @param graph Graph to insert the node into + * @return New edge if the edge was created succesfully, null otherwise + */ + Edge createEdge(String id, Node source, Node target, boolean directed, Graph graph); + + /** + *

    Creates and edge between source and target node (if it does not already exist), directed or undirected, in the current graph.

    + *

    If a edge with the given id already exists, no edge will be created.

    + * + * @param id Id for the new edge + * @param source Source node + * @param target Target node + * @param directed Indicates if the edge has to be directed + * @param typeLabel Edge type label or null + * @param graph Graph to insert the node into + * @return New edge if the edge was created succesfully, null otherwise + */ + Edge createEdge(String id, Node source, Node target, boolean directed, Object typeLabel, Graph graph); + /** *

    Tries to create edges between the source node and all other edges, directed or undirected.

    *

    An edge won't be created if it already exists or is a self-loop.

    - * @param source Source node + * + * @param source Source node * @param allNodes All edges * @param directed Indicates if the edges have to be directed */ @@ -115,24 +221,28 @@ public interface GraphElementsController { /** * Tries to delete a node checking first if it is on the graph. + * * @param node Node to delete */ void deleteNode(Node node); /** * Tries to delete an array of nodes checking first if they are on the graph. + * * @param nodes Array of nodes to delete */ void deleteNodes(Node[] nodes); /** * Tries to delete an edge checking first if it is on the graph. + * * @param edge Edge to delete */ void deleteEdge(Edge edge); /** * Tries to delete an array of edges checking first if they are on the graph. + * * @param edges Array of edges to delete */ void deleteEdges(Edge[] edges); @@ -140,7 +250,8 @@ public interface GraphElementsController { /** * Tries to delete an edge checking first if it is on the graph * and also deletes its source and target node if it is indicated. - * @param edge Edge to delete + * + * @param edge Edge to delete * @param deleteSource Indicates if the source node has to be deleted * @param deleteTarget Indicates if the target node has to be deleted */ @@ -149,133 +260,39 @@ public interface GraphElementsController { /** * Tries to delete an array of edges checking first if they are on the graph * and also deletes their source and target node if it is indicated. - * @param edges Array of edges to delete + * + * @param edges Array of edges to delete * @param deleteSource Indicates if the source nodes have to be deleted * @param deleteTarget Indicates if the target nodes have to be deleted */ void deleteEdgesWithNodes(Edge[] edges, boolean deleteSource, boolean deleteTarget); - /** - * Groups an array of nodes if it is possible. - * @param nodes Array of nodes to group - * @return True if the nodes were succesfully grouped, false otherwise - */ - boolean groupNodes(Node[] nodes); - - /** - * Checks if an array of nodes can form a group. - * @param nodes Array of nodes to check - * @return True if the nodes can form a group, false otherwise - */ - boolean canGroupNodes(Node[] nodes); - - /** - * Ungroups a node if it forms a group. - * @param node Node to ungroup - * @return True if the node was succesfully ungrouped, false otherwise - */ - boolean ungroupNode(Node node); - - /** - * Tries to ungroup every node un the array of nodes checking first they form a group. - * @param nodes Array of nodes to ungroup - */ - void ungroupNodes(Node[] nodes); - - /** - * Ungroups a node if it forms a group and also ungroups all its descendant. - * @param node Node to ungroup recursively - * @return True if the node was succesfully ungrouped, false otherwise - */ - boolean ungroupNodeRecursively(Node node); - - /** - * Tries to ungroup every node un the array of nodes checking first they form a group. - * @param nodes Array of nodes to ungroup - */ - void ungroupNodesRecursively(Node[] nodes); - - /** - * Checks if the node can be ungrouped (it forms a group of nodes). - * @param node Node to check - * @return True if the node can be ungrouped, false otherwise - */ - boolean canUngroupNode(Node node); - /** * Merges 2 or more nodes into a new one node that has all the edges of the merged nodes. * An AttributeRowsMergeStrategy must be provided for each column of the nodes. - * @param nodes Nodes to merge (at least 1) - * @param selectedNode Main selected node of the nodes to merge (or null to use first node) - * @param mergeStrategies Strategies to merge rows of each column of the nodes + * + * @param graph Graph that contains the nodes + * @param nodes Nodes to merge (at least 1) + * @param selectedNode Main selected node of the nodes to merge (or null to use first node) + * @param columns Columns to apply a merge strategy in each row + * @param mergeStrategies Strategies to merge rows of each column in {@code columns} * @param deleteMergedNodes Indicates if merged nodes should be deleted * @return New resulting node */ - Node mergeNodes(Node[] nodes, Node selectedNode, AttributeRowsMergeStrategy[] mergeStrategies, boolean deleteMergedNodes); - - /** - * Moves a node to a group of nodes if it is possible. - * To move a node to a group node, they must be different, have the same parent and the node to be the group has to be a group of nodes. - * @param node Node to move to group - * @param group Group of nodes to move the node - * @return True if the node was moved, false otherwise - */ - boolean moveNodeToGroup(Node node, Node group); - - /** - * Tries to move each node of the nodes array to the group node. - * @param nodes Array of nodes to move - * @param group Group node - */ - void moveNodesToGroup(Node[] nodes, Node group); - - /** - *

    Prepares and returns an array with the groups that the given nodes can be moved to.

    - *

    These groups are the nodes that have the same parent as the given nodes and are not in the given nodes array.

    - * @param nodes Nodes to get available groups to be moved - * @return Available groups array of null if the nodes don't all have the same parent - */ - Node[] getAvailableGroupsToMoveNodes(Node[] nodes); - - /** - * Indicates if a given node can be moved to a group node. - * To move a node to a group, they must have the same parent and the group node has to be a group of nodes. - * @param node Node to check if can be moved - * @param group Group node - * @return True if it can be moved, false otherwise - */ - boolean canMoveNodeToGroup(Node node, Node group); - - /** - * Removes a node from its group if the node is in a group (has a parent). - * Also breaks the group if the last node is removed. - * @param node Node to remove from its group - * @return True if the node was removed from a group, false otherwise - */ - boolean removeNodeFromGroup(Node node); - - /** - * Tries to remove every node in the array from its group checking first they are in a group. - * Also breaks groups when the last node is removed. - * @param nodes Arrays of nodes to remove from its group - */ - void removeNodesFromGroup(Node[] nodes); - - /** - * Checks if the node is in a group (has a parent). - * @return True if the node is in a group, false otherwise - */ - boolean isNodeInGroup(Node node); + Node mergeNodes(Graph graph, Node[] nodes, Node selectedNode, Column[] columns, + AttributeRowsMergeStrategy[] mergeStrategies, boolean deleteMergedNodes); /** * Sets the fixed state of a node to the indicated. - * @param node Node to set fixed state + * + * @param node Node to set fixed state * @param fixed Fixed state for the node */ void setNodeFixed(Node node, boolean fixed); /** * Sets the fixed state of an array of nodes to the indicated. + * * @param nodes Array of nodes to set fixed state * @param fixed Fixed state for the nodes */ @@ -283,6 +300,7 @@ public interface GraphElementsController { /** * Checks the fixed state of a node. + * * @param node Node to check * @return Fixed state of the node */ @@ -290,6 +308,7 @@ public interface GraphElementsController { /** * Prepares and returns an array with the neighbour nodes of the specified node. + * * @param node Node to get neighbours * @return Array of neighbour nodes */ @@ -297,6 +316,7 @@ public interface GraphElementsController { /** * Prepares and returns an array with the edges incident to the specified node. + * * @param node Node to get edges * @return Array of incident edges */ @@ -304,18 +324,21 @@ public interface GraphElementsController { /** * Returns the number of nodes in the graph. + * * @return Nodes count */ int getNodesCount(); /** * Returns the number of edges in the graph. + * * @return Edges count */ int getEdgesCount(); /** * Checks if a node is contained in the main view graph. + * * @param node Node to check * @return True if the node is in the graph, false otherwise */ @@ -323,6 +346,7 @@ public interface GraphElementsController { /** * Checks if an array of nodes are contained in the main view graph. + * * @param nodes Array of nodes to check * @return True if all the nodes are in the graph, false otherwise */ @@ -330,6 +354,7 @@ public interface GraphElementsController { /** * Checks if an edge is contained in the main view graph. + * * @param edge Edge to check * @return True if the edge is in the graph, false otherwise */ @@ -337,6 +362,7 @@ public interface GraphElementsController { /** * Checks if an array of edges are contained in the main view graph. + * * @param edges Edges to check * @return True if all the edges are in the graph, false otherwise */ diff --git a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/SearchReplaceController.java b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/SearchReplaceController.java index 5ca2e66cd0..eb3397ff5b 100644 --- a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/SearchReplaceController.java +++ b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/SearchReplaceController.java @@ -39,23 +39,25 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.api; -import org.gephi.datalab.api.datatables.DataTablesController; import java.util.HashSet; import java.util.Set; import java.util.regex.Pattern; -import org.gephi.data.attributes.api.AttributeColumn; +import org.gephi.datalab.api.datatables.DataTablesController; +import org.gephi.graph.api.Column; import org.gephi.graph.api.Edge; +import org.gephi.graph.api.Graph; import org.gephi.graph.api.GraphController; -import org.gephi.graph.api.HierarchicalGraph; import org.gephi.graph.api.Node; import org.openide.util.Lookup; /** *

    Independent controller for search/replace feature.

    *

    Operates with SearchOptions and SearchResult objects.

    - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public interface SearchReplaceController { @@ -63,6 +65,7 @@ public interface SearchReplaceController { *

    Finds next (or first) ocurrence for the given search options.

    *

    Returns a SearchResult instance with the details or null if the search was not successful.

    *

    Modifies the given search options in order to match the next result the next time findNext is called

    + * * @param searchOptions Options of the search * @return SearchResult with details of the match or null */ @@ -72,14 +75,16 @@ public interface SearchReplaceController { *

    Finds next ocurrence for the given search options contained in a SearchResult.

    *

    Returns a SearchResult instance with the details or null if the search was not successful.

    *

    Modifies the given search options in order to match the next result the next time findNext is called

    + * * @param result Last result of the search - * @return SearchResult with details of the match or null + * @return SearchResult with details of the match or null */ SearchResult findNext(SearchResult result); /** *

    Indicates if a SearchResult can be replaced or not.

    *

    Computed columns and id columns cannot be replaced.

    + * * @param result SearchResult to check before replacing * @return True if it can be replaced, false otherwise */ @@ -90,7 +95,8 @@ public interface SearchReplaceController { *

    Also tries to find next search result and returns it.

    *

    If the data has changed and the replacement can't be done it will just return next SearchResult calling findNext.

    *

    If useRegexReplaceMode is enabled, IndexOutOfBoundsException can be thrown when the replacement is not correct for the regular expression.

    - * @param result SearchResult to replace + * + * @param result SearchResult to replace * @param replacement Replacement String * @return Next SearchResult or null if not successful */ @@ -99,8 +105,9 @@ public interface SearchReplaceController { /** *

    Replaces all SearchResults that can be replaced with the given search options from the beginning to the end of the data.

    *

    If useRegexReplaceMode is enabled, IndexOutOfBoundsException can be thrown when the replacement is not correct for the regular expression.

    + * * @param searchOptions Search options for the searches - * @param replacement Replacement String + * @param replacement Replacement String * @return Count of made replacements */ int replaceAll(SearchOptions searchOptions, String replacement); @@ -110,58 +117,21 @@ public interface SearchReplaceController { */ class SearchOptions { - private boolean searchNodes; + private final boolean searchNodes; private Node[] nodesToSearch; private Edge[] edgesToSearch; private Integer startingRow = null, startingColumn = null; - private HashSet columnsToSearch = new HashSet(); + private final HashSet columnsToSearch = new HashSet<>(); private boolean loopToBeginning = true; private Pattern regexPattern; private boolean useRegexReplaceMode = false; private int regionStart = 0; private boolean onlyMatchWholeAttributeValue; - public void resetStatus() { - regionStart = 0; - startingRow = null; - startingRow = null; - } - - /** - * Sets nodesToSearch as all nodes in the graph if they are null or empty array. - * Also only search on visible view if data table is showing visible only. - */ - private void checkNodesToSearch() { - if (nodesToSearch == null || nodesToSearch.length == 0) { - HierarchicalGraph hg; - if (Lookup.getDefault().lookup(DataTablesController.class).isShowOnlyVisible()) { - hg = Lookup.getDefault().lookup(GraphController.class).getModel().getHierarchicalGraphVisible(); - } else { - hg = Lookup.getDefault().lookup(GraphController.class).getModel().getHierarchicalGraph(); - } - nodesToSearch = hg.getNodesTree().toArray(); - } - } - - /** - * Sets edgesToSearch as all edges in the graph if they are null or empty array. - * Also only search on visible view if data table is showing visible only. - */ - private void checkEdgesToSearch() { - if (edgesToSearch == null || edgesToSearch.length == 0) { - HierarchicalGraph hg; - if (Lookup.getDefault().lookup(DataTablesController.class).isShowOnlyVisible()) { - hg = Lookup.getDefault().lookup(GraphController.class).getModel().getHierarchicalGraphVisible(); - } else { - hg = Lookup.getDefault().lookup(GraphController.class).getModel().getHierarchicalGraph(); - } - edgesToSearch = hg.getEdges().toArray(); - } - } - /** * Setup options to search on nodes with the given pattern. * If nodesToSearch is null, all nodes of the graph will be used. + * * @param nodesToSearch * @param regexPattern */ @@ -175,6 +145,7 @@ public SearchOptions(Node[] nodesToSearch, Pattern regexPattern) { /** * Setup options to search on edges with the given pattern. * If edgesToSearch is null, all edges of the graph will be used. + * * @param edgesToSearch * @param regexPattern */ @@ -188,9 +159,10 @@ public SearchOptions(Edge[] edgesToSearch, Pattern regexPattern) { /** * Setup options to search on nodes with the given pattern. * If nodesToSearch is null, all nodes of the graph will be used. + * * @param nodesToSearch * @param regexPattern - * @param onlyMatchWholeAttributeValue + * @param onlyMatchWholeAttributeValue */ public SearchOptions(Node[] nodesToSearch, Pattern regexPattern, boolean onlyMatchWholeAttributeValue) { this.nodesToSearch = nodesToSearch; @@ -202,6 +174,7 @@ public SearchOptions(Node[] nodesToSearch, Pattern regexPattern, boolean onlyMat /** * Setup options to search on edges with the given pattern. * If edgesToSearch is null, all edges of the graph will be used. + * * @param edgesToSearch * @param regexPattern * @param onlyMatchWholeAttributeValue @@ -213,6 +186,44 @@ public SearchOptions(Edge[] edgesToSearch, Pattern regexPattern, boolean onlyMat searchNodes = false; } + public void resetStatus() { + regionStart = 0; + startingRow = null; + startingColumn = null; + } + + /** + * Sets nodesToSearch as all nodes in the graph if they are null or empty array. + * Also only search on visible view if data table is showing visible only. + */ + private void checkNodesToSearch() { + if (nodesToSearch == null || nodesToSearch.length == 0) { + Graph graph; + if (Lookup.getDefault().lookup(DataTablesController.class).isShowOnlyVisible()) { + graph = Lookup.getDefault().lookup(GraphController.class).getGraphModel().getGraphVisible(); + } else { + graph = Lookup.getDefault().lookup(GraphController.class).getGraphModel().getGraph(); + } + nodesToSearch = graph.getNodes().toArray(); + } + } + + /** + * Sets edgesToSearch as all edges in the graph if they are null or empty array. + * Also only search on visible view if data table is showing visible only. + */ + private void checkEdgesToSearch() { + if (edgesToSearch == null || edgesToSearch.length == 0) { + Graph hg; + if (Lookup.getDefault().lookup(DataTablesController.class).isShowOnlyVisible()) { + hg = Lookup.getDefault().lookup(GraphController.class).getGraphModel().getGraphVisible(); + } else { + hg = Lookup.getDefault().lookup(GraphController.class).getGraphModel().getGraph(); + } + edgesToSearch = hg.getEdges().toArray(); + } + } + /************Getters and setters***********/ public Edge[] getEdgesToSearch() { return edgesToSearch; @@ -254,9 +265,19 @@ public void setStartingRow(Integer startingRow) { this.startingRow = startingRow; } + /** + * Returns columns indexes to search + * + * @return Set with columns indexes to search + */ + public Set getColumnsToSearch() { + return columnsToSearch; + } + /** * Set column indexes that should be used to search with the current options. * If columnsToSearch is empty, all columns will be used to search. + * * @param columnsToSearch It is safe to specify invalid columns indexes, they will be ignored */ public void setColumnsToSearch(int[] columnsToSearch) { @@ -271,25 +292,18 @@ public void setColumnsToSearch(int[] columnsToSearch) { /** * Set column that should be used to search with the current options. * If columnsToSearch is empty, all columns will be used to search. + * * @param columnsToSearch It is safe to specify invalid columns, they will be ignored */ - public void setColumnsToSearch(AttributeColumn[] columnsToSearch) { + public void setColumnsToSearch(Column[] columnsToSearch) { this.columnsToSearch.clear(); if (columnsToSearch != null) { - for (AttributeColumn c : columnsToSearch) { + for (Column c : columnsToSearch) { this.columnsToSearch.add(c.getIndex()); } } } - /** - * Returns columns indexes to search - * @return Set with columns indexes to search - */ - public Set getColumnsToSearch() { - return columnsToSearch; - } - public boolean isSearchNodes() { return searchNodes; } @@ -334,7 +348,8 @@ class SearchResult { private int foundRowIndex, foundColumnIndex; private int start, end; - public SearchResult(SearchOptions searchOptions, Node foundNode, Edge foundEdge, int foundRowIndex, int foundColumnIndex, int start, int end) { + public SearchResult(SearchOptions searchOptions, Node foundNode, Edge foundEdge, int foundRowIndex, + int foundColumnIndex, int start, int end) { this.searchOptions = searchOptions; this.foundNode = foundNode; this.foundEdge = foundEdge; diff --git a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/datatables/AttributeTableCSVExporter.java b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/datatables/AttributeTableCSVExporter.java deleted file mode 100644 index c66e51e656..0000000000 --- a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/datatables/AttributeTableCSVExporter.java +++ /dev/null @@ -1,135 +0,0 @@ -/* - Copyright 2008-2010 Gephi - Authors : Eduardo Ramos - Website : http://www.gephi.org - - This file is part of Gephi. - - DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - - Copyright 2011 Gephi Consortium. All rights reserved. - - The contents of this file are subject to the terms of either the GNU - General Public License Version 3 only ("GPL") or the Common - Development and Distribution License("CDDL") (collectively, the - "License"). You may not use this file except in compliance with the - License. You can obtain a copy of the License at - http://gephi.org/about/legal/license-notice/ - or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the - specific language governing permissions and limitations under the - License. When distributing the software, include this License Header - Notice in each file and include the License files at - /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the - License Header, with the fields enclosed by brackets [] replaced by - your own identifying information: - "Portions Copyrighted [year] [name of copyright owner]" - - If you wish your version of this file to be governed by only the CDDL - or only the GPL Version 3, indicate your decision by adding - "[Contributor] elects to include this software in this distribution - under the [CDDL or GPL Version 3] license." If you do not indicate a - single choice of license, a recipient has the option to distribute - your version of this file under either the CDDL, the GPL Version 3 or - to extend the choice of license to its licensees as provided above. - However, if you add GPL Version 3 code and therefore, elected the GPL - Version 3 license, then the option applies only if the new code is - made subject to such option by the copyright holder. - - Contributor(s): - - Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.datalab.api.datatables; - -import com.csvreader.CsvWriter; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.nio.charset.Charset; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; -import org.gephi.graph.api.Attributable; -import org.gephi.graph.api.Edge; - -public class AttributeTableCSVExporter { - - private static final Character DEFAULT_SEPARATOR = ','; - public static final int FAKE_COLUMN_EDGE_SOURCE = -1; - public static final int FAKE_COLUMN_EDGE_TARGET = -2; - public static final int FAKE_COLUMN_EDGE_TYPE = -3; - - /** - *

    Export a AttributeTable to the specified file.

    - * - * @param table Table to export - * @param file File to write - * @param separator Separator to use for separating values of a row in the CSV file. If null ',' will be used. - * @param charset Charset encoding for the file - * @param columnsToExport Indicates the indexes of the columns to export. All columns will be exported if null - * @throws IOException When an error happens while writing the file - */ - public static void writeCSVFile(AttributeTable table, File file, Character separator, Charset charset, Integer[] columnsToExport, Attributable[] rows) throws IOException { - FileOutputStream out = new FileOutputStream(file); - if (separator == null) { - separator = DEFAULT_SEPARATOR; - } - - AttributeColumn columns[] = table.getColumns(); - - if (columnsToExport == null) { - columnsToExport = new Integer[columns.length]; - for (int i = 0; i < columnsToExport.length; i++) { - columnsToExport[i] = columns[i].getIndex(); - } - } - - CsvWriter writer = new CsvWriter(out, separator, charset); - - - - //Write column headers: - for (int column = 0; column < columnsToExport.length; column++) { - int columnIndex = columnsToExport[column]; - - if (columnIndex == FAKE_COLUMN_EDGE_SOURCE) { - writer.write("Source"); - } else if (columnIndex == FAKE_COLUMN_EDGE_TARGET) { - writer.write("Target"); - } else if (columnIndex == FAKE_COLUMN_EDGE_TYPE) { - writer.write("Type"); - } else { - writer.write(table.getColumn(columnIndex).getTitle(), true); - } - - } - writer.endRecord(); - - //Write rows: - Object value; - String text; - for (int row = 0; row < rows.length; row++) { - for (int column = 0; column < columnsToExport.length; column++) { - int columnIndex = columnsToExport[column]; - - if (columnIndex == FAKE_COLUMN_EDGE_SOURCE) { - value = ((Edge)rows[row]).getSource().getNodeData().getId(); - } else if (columnIndex == FAKE_COLUMN_EDGE_TARGET) { - value = ((Edge)rows[row]).getTarget().getNodeData().getId(); - } else if (columnIndex == FAKE_COLUMN_EDGE_TYPE) { - value = ((Edge)rows[row]).isDirected() ? "Directed" : "Undirected"; - } else { - value = rows[row].getAttributes().getValue(columnIndex); - } - - if (value != null) { - text = value.toString(); - } else { - text = ""; - } - writer.write(text, true); - } - writer.endRecord(); - } - writer.close(); - } -} diff --git a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/datatables/DataTablesCommonInterface.java b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/datatables/DataTablesCommonInterface.java index 8534d232a3..c5adcd6620 100644 --- a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/datatables/DataTablesCommonInterface.java +++ b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/datatables/DataTablesCommonInterface.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.api.datatables; import org.gephi.graph.api.Edge; @@ -46,6 +47,7 @@ Development and Distribution License("CDDL") (collectively, the /** * Common interface for DataTablesEventListener and DataTablesController + * * @author Eduardo */ interface DataTablesCommonInterface { @@ -66,37 +68,57 @@ interface DataTablesCommonInterface { void refreshCurrentTable(); /** - * Requests the tables implementation to adapt the nodes table row selection to the specified nodes. - * @param nodes Nodes to select + * Gets auto-refresh suspended state. True by default. + * + * @return Current auto-refresh state */ - void setNodeTableSelection(Node[] nodes); + boolean isAutoRefreshEnabled(); /** - * Requests the tables implementation to adapt the edges table row selection to the specified edges. - * @param edges Edges to select + * Sets auto-refresh suspended state. True by default. + * + * @param enabled */ - void setEdgeTableSelection(Edge[] edges); + void setAutoRefreshEnabled(boolean enabled); /** * Request the tables implementation to provide the selected nodes in nodes table. + * * @return Array of selected nodes */ Node[] getNodeTableSelection(); + /** + * Requests the tables implementation to adapt the nodes table row selection to the specified nodes. + * + * @param nodes Nodes to select + */ + void setNodeTableSelection(Node[] nodes); + /** * Request the tables implementation to provide the selected edges in edges table. + * * @return Array of selected edges */ Edge[] getEdgeTableSelection(); + /** + * Requests the tables implementation to adapt the edges table row selection to the specified edges. + * + * @param edges Edges to select + */ + void setEdgeTableSelection(Edge[] edges); + /** * Checks if the data tables implementation is showing nodes table + * * @return True if nodes table is being shown, false otherwise */ boolean isNodeTableMode(); /** * Checks if the data tables implementation is showing edges table + * * @return True if edges table is being shown, false otherwise */ boolean isEdgeTableMode(); @@ -104,60 +126,67 @@ interface DataTablesCommonInterface { /** * Checks if the data tables implementation is showing only visible elements (nodes or edges) * in the graph at the moment. + * * @return True if only visible elements are being shown, false otherwise */ boolean isShowOnlyVisible(); /** * Requests the tables implementation to show only visible elements or not. + * * @param showOnlyVisible Indicates if only visible elements have to be shown in table */ void setShowOnlyVisible(boolean showOnlyVisible); /** * Checks if the data tables implementation is showing number lists and dynamic numbers as sparklines at the moment. + * * @return True if sparklines are on, false otherwise */ boolean isUseSparklines(); /** * Requests the tables implementation to show number lists and dynamic numbers as sparklines. + * * @param useSparklines Indicates if sparklines should be used */ void setUseSparklines(boolean useSparklines); /** * Checks if the data tables implementation is showing time intervals as graphics at the moment. + * * @return True if sparklines are on, false otherwise */ boolean isTimeIntervalGraphics(); /** * Requests the tables implementation to show time intervals as graphics. + * * @param timeIntervalGraphics Indicates if time interval graphics should be used */ void setTimeIntervalGraphics(boolean timeIntervalGraphics); /** * Checks if the data tables implementation is showing edges nodes (source and target) labels at the moment. + * * @return True if edges nodes lables are shown, false otherwise */ boolean isShowEdgesNodesLabels(); /** * Requests the tables implementation to show edges nodes (source and target). + * * @param showEdgesNodesLabels Indicates if edges nodes labels should be shown */ void setShowEdgesNodesLabels(boolean showEdgesNodesLabels); - public enum ExportMode { - - CSV - } - /** * Requests to exports current table being shown as a file. - * @param exportMode ExportMode - CSV only for now */ - void exportCurrentTable(ExportMode exportMode); + void exportCurrentTable(); + + /** + * Clears the current selected elements, if any. + */ + void clearSelection(); } diff --git a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/datatables/DataTablesController.java b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/datatables/DataTablesController.java index 4b6d8d1470..b84b13628b 100644 --- a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/datatables/DataTablesController.java +++ b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/datatables/DataTablesController.java @@ -39,46 +39,53 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.api.datatables; -import org.gephi.data.attributes.api.AttributeTable; +import org.gephi.graph.api.Table; /** *

    This interface defines part of the Data Laboratory API.

    *

    It provides methods to control the Data Table UI that shows a table for nodes and edges.

    *

    This is done by registering the data table ui as a listener of these events that can be requested with this controller. * Note that data table ui will not be registered to listen to the events of this controller until it is instanced opening Data Laboratory Group

    - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public interface DataTablesController extends DataTablesCommonInterface { /** * Request the tables implementation to show the given table (nodes or edges table) + * * @param table Table to show */ - void selectTable(AttributeTable table); - - /** - * Register a listener for these requests. - * @param listener Instance of DataTablesEventListener - */ - void setDataTablesEventListener(DataTablesEventListener listener); + void selectTable(Table table); /** * Returns the current registered DataTablesEventListener. * It can be null if it is still not activated or there is no active workspace. + * * @return Current listener or null */ DataTablesEventListener getDataTablesEventListener(); + /** + * Register a listener for these requests. + * + * @param listener Instance of DataTablesEventListener + */ + void setDataTablesEventListener(DataTablesEventListener listener); + /** * Indicates if Data Table UI is registered as a listener of the events created by this controller. + * * @return True if Data Table UI is prepared, false otherwise */ boolean isDataTablesReady(); /** * Looks for an available DataTablesEventListenerBuilder and sets its DataTablesEventListener. + * * @return True if listener found, false otherwise */ boolean prepareDataTables(); diff --git a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/datatables/DataTablesEventListener.java b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/datatables/DataTablesEventListener.java index 578b293517..8a128f391f 100644 --- a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/datatables/DataTablesEventListener.java +++ b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/datatables/DataTablesEventListener.java @@ -39,14 +39,16 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.api.datatables; /** *

    This is the interface for a listener of DataTablesController requests.

    *

    Only data table UI should be an implementation of this listener

    + * + * @author Eduardo Ramos * @see DataTablesController - * @author Eduardo Ramos */ public interface DataTablesEventListener extends DataTablesCommonInterface { - + } diff --git a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/datatables/DataTablesEventListenerBuilder.java b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/datatables/DataTablesEventListenerBuilder.java index ca160ebcc4..5e246f2cf4 100644 --- a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/datatables/DataTablesEventListenerBuilder.java +++ b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/api/datatables/DataTablesEventListenerBuilder.java @@ -39,16 +39,19 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.api.datatables; /** *

    Builder interface for providing a default DataTablesEventListener when it has not been set.

    + * * @author Eduardo */ public interface DataTablesEventListenerBuilder { /** * Get default implementation + * * @return listener */ DataTablesEventListener getDataTablesEventListener(); diff --git a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/impl/AttributeColumnsControllerImpl.java b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/impl/AttributeColumnsControllerImpl.java index 38eabb843c..2a6df5643d 100644 --- a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/impl/AttributeColumnsControllerImpl.java +++ b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/impl/AttributeColumnsControllerImpl.java @@ -39,110 +39,130 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.impl; -import com.csvreader.CsvReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; +import java.lang.reflect.Array; import java.math.BigDecimal; -import java.nio.charset.Charset; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeController; -import org.gephi.data.attributes.api.AttributeOrigin; -import org.gephi.data.attributes.api.AttributeRow; -import org.gephi.data.attributes.api.AttributeTable; -import org.gephi.data.attributes.api.AttributeType; -import org.gephi.data.attributes.api.AttributeUtils; -import org.gephi.data.attributes.api.AttributeValue; -import org.gephi.data.attributes.type.BooleanList; -import org.gephi.data.attributes.type.DynamicType; -import org.gephi.data.attributes.type.Interval; -import org.gephi.data.attributes.type.NumberList; -import org.gephi.data.attributes.type.StringList; -import org.gephi.data.attributes.type.TypeConvertor; -import org.gephi.data.properties.PropertiesColumn; import org.gephi.datalab.api.AttributeColumnsController; import org.gephi.datalab.api.GraphElementsController; import org.gephi.datalab.spi.rows.merge.AttributeRowsMergeStrategy; -import org.gephi.dynamic.api.DynamicModel; -import org.gephi.graph.api.Attributes; +import org.gephi.graph.api.AttributeUtils; +import org.gephi.graph.api.Column; import org.gephi.graph.api.Edge; +import org.gephi.graph.api.Element; import org.gephi.graph.api.Graph; import org.gephi.graph.api.GraphController; +import org.gephi.graph.api.GraphModel; +import org.gephi.graph.api.Interval; import org.gephi.graph.api.Node; +import org.gephi.graph.api.Origin; +import org.gephi.graph.api.Table; +import org.gephi.graph.api.TimeFormat; +import org.gephi.graph.api.TimeRepresentation; +import org.gephi.graph.api.types.IntervalMap; +import org.gephi.graph.api.types.TimestampMap; import org.gephi.utils.StatisticsUtils; -import org.openide.util.Exceptions; +import java.time.ZoneId; import org.openide.util.Lookup; import org.openide.util.lookup.ServiceProvider; /** * Implementation of the AttributeColumnsController interface declared in the Data Laboratory API. * - * @author Eduardo Ramos + * @author Eduardo Ramos * @see AttributeColumnsController */ @ServiceProvider(service = AttributeColumnsController.class) public class AttributeColumnsControllerImpl implements AttributeColumnsController { - public boolean setAttributeValue(Object value, Attributes row, AttributeColumn column) { - AttributeType targetType = column.getType(); - if (value != null && !value.getClass().equals(targetType.getType())) { + @Override + public boolean setAttributeValue(Object value, Element row, Column column) { + if (!canChangeColumnData(column)) { + return false; + } + + Class targetType = column.getTypeClass(); + if (value != null && !value.getClass().equals(targetType)) { try { - value = targetType.parse(value.toString());//Try to convert to target type + GraphModel graphModel = column.getTable().getGraph().getModel(); + + String stringValue = AttributeUtils.print(value, graphModel.getTimeFormat(), graphModel.getTimeZone()); + value = AttributeUtils + .parse(stringValue, targetType);//Try to convert to target type from string representation } catch (Exception ex) { - value = null;//Could not parse + return false;//Could not parse } } if (value == null && !canClearColumnData(column)) { - return false;//Do not set a null value when the column can't have a null value. + return false;//Do not set a null value when the column can't have a null value } else { - row.setValue(column.getIndex(), value); - return true; + try { + if (value == null) { + row.removeAttribute(column); + } else { + row.setAttribute(column, value); + } + + return true; + } catch (Exception e) { + Logger.getLogger("").log(Level.SEVERE, null, e); + return false; + } } } - public AttributeColumn addAttributeColumn(AttributeTable table, String title, AttributeType type) { + @Override + public Column addAttributeColumn(Table table, String title, Class type) { if (title == null || title.isEmpty()) { return null; } if (table.hasColumn(title)) { return null; } - if (type == AttributeType.TIME_INTERVAL && table.getColumn(DynamicModel.TIMEINTERVAL_COLUMN) == null) { - return table.addColumn(DynamicModel.TIMEINTERVAL_COLUMN, title, type, AttributeOrigin.PROPERTY, null); - } - return table.addColumn(title, title, type, AttributeOrigin.DATA, null); + return table.addColumn(title, type, Origin.DATA); } - public void deleteAttributeColumn(AttributeTable table, AttributeColumn column) { + @Override + public void deleteAttributeColumn(Table table, Column column) { if (canDeleteColumn(column)) { table.removeColumn(column); } } @Override - public AttributeColumn convertAttributeColumnToDynamic(AttributeTable table, AttributeColumn column, double low, double high, boolean lopen, boolean ropen) { - return convertColumnToDynamic(table, column, low, high, lopen, ropen, null); + public Column convertAttributeColumnToDynamic(Table table, Column column, double low, double high) { + return convertColumnToDynamic(table, column, low, high, null); } @Override - public AttributeColumn convertAttributeColumnToNewDynamicColumn(AttributeTable table, AttributeColumn column, double low, double high, boolean lopen, boolean ropen, String newColumnTitle) { - return convertColumnToDynamic(table, column, low, high, lopen, ropen, newColumnTitle); + public Column convertAttributeColumnToNewDynamicColumn(Table table, Column column, double low, double high, + String newColumnTitle) { + return convertColumnToDynamic(table, column, low, high, newColumnTitle); } - private AttributeColumn convertColumnToDynamic(AttributeTable table, AttributeColumn column, double low, double high, boolean lopen, boolean ropen, String newColumnTitle) { - AttributeType oldType = column.getType(); - AttributeType newType = TypeConvertor.getDynamicType(oldType); + private Column convertColumnToDynamic(Table table, Column column, double low, double high, String newColumnTitle) { + Class oldType = column.getTypeClass(); + + TimeRepresentation timeRepresentation = + Lookup.getDefault().lookup(GraphController.class).getGraphModel().getConfiguration() + .getTimeRepresentation(); + Class newType; + if (timeRepresentation == TimeRepresentation.TIMESTAMP) { + newType = AttributeUtils.getTimestampMapType(oldType); + } else { + newType = AttributeUtils.getIntervalMapType(oldType); + } if (newColumnTitle != null) { if (newColumnTitle.equals(column.getTitle())) { @@ -150,40 +170,42 @@ private AttributeColumn convertColumnToDynamic(AttributeTable table, AttributeCo } } - int oldColumnIndex = column.getIndex(); - - Attributes rows[] = getTableAttributeRows(table); + Element[] rows = getTableAttributeRows(table); Object[] oldValues = new Object[rows.length]; for (int i = 0; i < rows.length; i++) { - oldValues[i] = rows[i].getValue(oldColumnIndex); + oldValues[i] = rows[i].getAttribute(column); } - AttributeColumn newColumn; + Column newColumn; if (newColumnTitle == null) { - newColumn = table.replaceColumn(column, column.getId(), column.getTitle(), newType, column.getOrigin(), null); + table.removeColumn(column); + newColumn = table.addColumn(column.getTitle(), newType, column.getOrigin()); } else { - newColumn = table.addColumn(newColumnTitle, newColumnTitle, newType, column.getOrigin(), null); + newColumn = table.addColumn(newColumnTitle, newType, column.getOrigin()); } - int newColumnIndex = newColumn.getIndex(); - - Object value; - for (int i = 0; i < rows.length; i++) { - if (oldValues[i] != null) { - Interval interval = new Interval(low, high, lopen, ropen, oldValues[i]); - value = newType.createDynamicObject(Arrays.asList(new Interval[]{interval})); - } else { - value = null; + + if (timeRepresentation == TimeRepresentation.TIMESTAMP) { + for (int i = 0; i < rows.length; i++) { + if (oldValues[i] != null) { + rows[i].setAttribute(newColumn, oldValues[i], low); + } + } + } else { + Interval interval = new Interval(low, high); + for (int i = 0; i < rows.length; i++) { + if (oldValues[i] != null) { + rows[i].setAttribute(newColumn, oldValues[i], interval); + } } - - rows[i].setValue(newColumnIndex, value); } return newColumn; } - public AttributeColumn duplicateColumn(AttributeTable table, AttributeColumn column, String title, AttributeType type) { - AttributeColumn newColumn = addAttributeColumn(table, title, type); + @Override + public Column duplicateColumn(Table table, Column column, String title, Class type) { + Column newColumn = addAttributeColumn(table, title, type); if (newColumn == null) { return null; } @@ -191,91 +213,103 @@ public AttributeColumn duplicateColumn(AttributeTable table, AttributeColumn col return newColumn; } - public void copyColumnDataToOtherColumn(AttributeTable table, AttributeColumn sourceColumn, AttributeColumn targetColumn) { + @Override + public void copyColumnDataToOtherColumn(Table table, Column sourceColumn, Column targetColumn) { if (sourceColumn == targetColumn) { throw new IllegalArgumentException("Source and target columns can't be equal"); } - final int sourceColumnIndex = sourceColumn.getIndex(); - final int targetColumnIndex = targetColumn.getIndex(); - AttributeType targetType = targetColumn.getType(); - if (targetType != sourceColumn.getType()) { - Object value; - for (Attributes row : getTableAttributeRows(table)) { - value = row.getValue(sourceColumnIndex); + Class targetType = targetColumn.getTypeClass(); + Object value; + if (!targetType.equals(sourceColumn.getTypeClass())) { + for (Element row : getTableAttributeRows(table)) { + value = row.getAttribute(sourceColumn); setAttributeValue(value, row, targetColumn); } } else { - for (Attributes row : getTableAttributeRows(table)) { - row.setValue(targetColumnIndex, row.getValue(sourceColumnIndex)); + for (Element row : getTableAttributeRows(table)) { + value = row.getAttribute(sourceColumn); + if (value == null) { + row.removeAttribute(targetColumn); + } else { + row.setAttribute(targetColumn, value); + } } } } - public void fillColumnWithValue(AttributeTable table, AttributeColumn column, String value) { + @Override + public void fillColumnWithValue(Table table, Column column, String value) { if (canChangeColumnData(column)) { - for (Attributes row : getTableAttributeRows(table)) { + for (Element row : getTableAttributeRows(table)) { setAttributeValue(value, row, column); } } } - public void fillNodesColumnWithValue(Node[] nodes, AttributeColumn column, String value) { + @Override + public void fillNodesColumnWithValue(Node[] nodes, Column column, String value) { if (canChangeColumnData(column)) { for (Node node : nodes) { - setAttributeValue(value, node.getNodeData().getAttributes(), column); + setAttributeValue(value, node, column); } } } - public void fillEdgesColumnWithValue(Edge[] edges, AttributeColumn column, String value) { + @Override + public void fillEdgesColumnWithValue(Edge[] edges, Column column, String value) { if (canChangeColumnData(column)) { for (Edge edge : edges) { - setAttributeValue(value, edge.getEdgeData().getAttributes(), column); + setAttributeValue(value, edge, column); } } } - public void clearColumnData(AttributeTable table, AttributeColumn column) { + @Override + public void clearColumnData(Table table, Column column) { if (canClearColumnData(column)) { - final int columnIndex = column.getIndex(); - for (Attributes attributes : getTableAttributeRows(table)) { - attributes.setValue(columnIndex, null); + for (Element row : getTableAttributeRows(table)) { + row.removeAttribute(column); } } } - public Map calculateColumnValuesFrequencies(AttributeTable table, AttributeColumn column) { - Map valuesFrequencies = new HashMap(); + @Override + public Map calculateColumnValuesFrequencies(Table table, Column column) { + Map valuesFrequencies = new HashMap<>(); Object value; - for (Attributes row : getTableAttributeRows(table)) { - value = row.getValue(column.getIndex()); + for (Element row : getTableAttributeRows(table)) { + value = row.getAttribute(column); if (valuesFrequencies.containsKey(value)) { - valuesFrequencies.put(value, new Integer(valuesFrequencies.get(value) + 1)); + valuesFrequencies.put(value, valuesFrequencies.get(value) + 1); } else { - valuesFrequencies.put(value, new Integer(1)); + valuesFrequencies.put(value, 1); } } return valuesFrequencies; } - public AttributeColumn createBooleanMatchesColumn(AttributeTable table, AttributeColumn column, String newColumnTitle, Pattern pattern) { + @Override + public Column createBooleanMatchesColumn(Table table, Column column, String newColumnTitle, Pattern pattern) { if (pattern != null) { - AttributeColumn newColumn = addAttributeColumn(table, newColumnTitle, AttributeType.BOOLEAN); + Column newColumn = addAttributeColumn(table, newColumnTitle, Boolean.class); if (newColumn == null) { return null; } Matcher matcher; Object value; - for (Attributes row : getTableAttributeRows(table)) { - value = row.getValue(column.getIndex()); + + TimeFormat timeFormat = table.getGraph().getModel().getTimeFormat(); + ZoneId timeZone = table.getGraph().getModel().getTimeZone(); + for (Element row : getTableAttributeRows(table)) { + value = row.getAttribute(column); if (value != null) { - matcher = pattern.matcher(value.toString()); + matcher = pattern.matcher(AttributeUtils.print(value, timeFormat, timeZone)); } else { matcher = pattern.matcher(""); } - row.setValue(newColumn.getIndex(), matcher.matches()); + row.setAttribute(newColumn, matcher.matches()); } return newColumn; } else { @@ -283,30 +317,35 @@ public AttributeColumn createBooleanMatchesColumn(AttributeTable table, Attribut } } - public void negateBooleanColumn(AttributeTable table, AttributeColumn column) { - AttributeUtils attributeUtils = AttributeUtils.getDefault(); - if (attributeUtils.isColumnOfType(column, AttributeType.BOOLEAN)) { + @Override + public void negateBooleanColumn(Table table, Column column) { + if (column.getTypeClass().equals(Boolean.class)) { negateColumnBooleanType(table, column); - } else if (attributeUtils.isColumnOfType(column, AttributeType.LIST_BOOLEAN)) { + } else if (column.getTypeClass().equals(Boolean[].class)) { negateColumnListBooleanType(table, column); } else { throw new IllegalArgumentException(); } } - public AttributeColumn createFoundGroupsListColumn(AttributeTable table, AttributeColumn column, String newColumnTitle, Pattern pattern) { + @Override + public Column createFoundGroupsListColumn(Table table, Column column, String newColumnTitle, Pattern pattern) { if (pattern != null) { - AttributeColumn newColumn = addAttributeColumn(table, newColumnTitle, AttributeType.LIST_STRING); + Column newColumn = addAttributeColumn(table, newColumnTitle, String[].class); if (newColumn == null) { return null; } Matcher matcher; Object value; - ArrayList foundGroups = new ArrayList(); - for (Attributes attributes : getTableAttributeRows(table)) { - value = attributes.getValue(column.getIndex()); + ArrayList foundGroups = new ArrayList<>(); + + TimeFormat timeFormat = table.getGraph().getModel().getTimeFormat(); + ZoneId timeZone = table.getGraph().getModel().getTimeZone(); + + for (Element row : getTableAttributeRows(table)) { + value = row.getAttribute(column); if (value != null) { - matcher = pattern.matcher(value.toString()); + matcher = pattern.matcher(AttributeUtils.print(value, timeFormat, timeZone)); } else { matcher = pattern.matcher(""); } @@ -314,10 +353,10 @@ public AttributeColumn createFoundGroupsListColumn(AttributeTable table, Attribu foundGroups.add(matcher.group()); } if (foundGroups.size() > 0) { - attributes.setValue(newColumn.getIndex(), new StringList(foundGroups.toArray(new String[0]))); + row.setAttribute(newColumn, foundGroups.toArray(new String[0])); foundGroups.clear(); } else { - attributes.setValue(newColumn.getIndex(), null); + row.setAttribute(newColumn, null); } } return newColumn; @@ -326,111 +365,106 @@ public AttributeColumn createFoundGroupsListColumn(AttributeTable table, Attribu } } - public void clearNodeData(Node node, AttributeColumn[] columnsToClear) { - clearRowData((AttributeRow) node.getNodeData().getAttributes(), columnsToClear); + @Override + public void clearNodeData(Node node, Column[] columnsToClear) { + clearRowData(node, columnsToClear); } - public void clearNodesData(Node[] nodes, AttributeColumn[] columnsToClear) { + @Override + public void clearNodesData(Node[] nodes, Column[] columnsToClear) { for (Node n : nodes) { clearNodeData(n, columnsToClear); } } - public void clearEdgeData(Edge edge, AttributeColumn[] columnsToClear) { - clearRowData((AttributeRow) edge.getEdgeData().getAttributes(), columnsToClear); + @Override + public void clearEdgeData(Edge edge, Column[] columnsToClear) { + clearRowData(edge, columnsToClear); } - public void clearEdgesData(Edge[] edges, AttributeColumn[] columnsToClear) { + @Override + public void clearEdgesData(Edge[] edges, Column[] columnsToClear) { for (Edge e : edges) { clearEdgeData(e, columnsToClear); } } - public void clearRowData(Attributes row, AttributeColumn[] columnsToClear) { - AttributeRow attributeRow = (AttributeRow) row; + @Override + public void clearRowData(Element row, Column[] columnsToClear) { if (columnsToClear != null) { - for (AttributeColumn column : columnsToClear) { + for (Column column : columnsToClear) { //Clear all except id and computed attributes: if (canClearColumnData(column)) { - row.setValue(column.getIndex(), null); + row.removeAttribute(column); } } } else { - AttributeValue[] values = attributeRow.getValues(); - for (int i = 0; i < values.length; i++) { - //Clear all except id and computed attributes: - if (canClearColumnData(values[i].getColumn())) { - row.setValue(i, null); + Table table; + if (row instanceof Node) { + table = Lookup.getDefault().lookup(GraphController.class).getGraphModel().getNodeTable(); + } else { + table = Lookup.getDefault().lookup(GraphController.class).getGraphModel().getNodeTable(); + } + + for (Column column : table) { + if (canClearColumnData(column)) { + row.removeAttribute(column); } } } } - public void copyNodeDataToOtherNodes(Node node, Node[] otherNodes, AttributeColumn[] columnsToCopy) { - Attributes row = node.getNodeData().getAttributes(); - Attributes[] otherRows = new Attributes[otherNodes.length]; - for (int i = 0; i < otherNodes.length; i++) { - otherRows[i] = otherNodes[i].getNodeData().getAttributes(); - } - - copyRowDataToOtherRows(row, otherRows, columnsToCopy); + @Override + public void copyNodeDataToOtherNodes(Node node, Node[] otherNodes, Column[] columnsToCopy) { + copyRowDataToOtherRows(node, otherNodes, columnsToCopy); } - public void copyEdgeDataToOtherEdges(Edge edge, Edge[] otherEdges, AttributeColumn[] columnsToCopy) { - Attributes row = edge.getEdgeData().getAttributes(); - Attributes[] otherRows = new Attributes[otherEdges.length]; - for (int i = 0; i < otherEdges.length; i++) { - otherRows[i] = otherEdges[i].getEdgeData().getAttributes(); - } - - copyRowDataToOtherRows(row, otherRows, columnsToCopy); + @Override + public void copyEdgeDataToOtherEdges(Edge edge, Edge[] otherEdges, Column[] columnsToCopy) { + copyRowDataToOtherRows(edge, otherEdges, columnsToCopy); } - public void copyRowDataToOtherRows(Attributes row, Attributes[] otherRows, AttributeColumn[] columnsToCopy) { - AttributeRow attributeRow = (AttributeRow) row; + @Override + public void copyRowDataToOtherRows(Element row, Element[] otherRows, Column[] columnsToCopy) { if (columnsToCopy != null) { - for (AttributeColumn column : columnsToCopy) { + for (Column column : columnsToCopy) { //Copy all except id and computed attributes: if (canChangeColumnData(column)) { - for (Attributes otherRow : otherRows) { - otherRow.setValue(column.getIndex(), row.getValue(column.getIndex())); + for (Element otherRow : otherRows) { + Object value = row.getAttribute(column); + setAttributeValue(value, otherRow, column); } } } } else { - AttributeColumn column; - AttributeValue[] values = attributeRow.getValues(); - for (int i = 0; i < values.length; i++) { - column = values[i].getColumn(); - //Copy all except id and computed attributes: + Table table; + if (row instanceof Node) { + table = Lookup.getDefault().lookup(GraphController.class).getGraphModel().getNodeTable(); + } else { + table = Lookup.getDefault().lookup(GraphController.class).getGraphModel().getNodeTable(); + } + + for (Column column : table) { if (canChangeColumnData(column)) { - for (Attributes otherRow : otherRows) { - otherRow.setValue(column.getIndex(), row.getValue(column.getIndex())); + for (Element otherRow : otherRows) { + otherRow.removeAttribute(column); } } } } } - public Attributes[] getTableAttributeRows(AttributeTable table) { - Attributes[] attributes; + @Override + public Element[] getTableAttributeRows(Table table) { if (isNodeTable(table)) { - Node[] nodes = getNodesArray(); - attributes = new Attributes[nodes.length]; - for (int i = 0; i < nodes.length; i++) { - attributes[i] = nodes[i].getNodeData().getAttributes(); - } + return getNodesArray(); } else { - Edge[] edges = getEdgesArray(); - attributes = new Attributes[edges.length]; - for (int i = 0; i < edges.length; i++) { - attributes[i] = edges[i].getEdgeData().getAttributes(); - } + return getEdgesArray(); } - return attributes; } - public int getTableRowsCount(AttributeTable table) { + @Override + public int getTableRowsCount(Table table) { if (isNodeTable(table)) { return Lookup.getDefault().lookup(GraphElementsController.class).getNodesCount(); } else { @@ -438,359 +472,227 @@ public int getTableRowsCount(AttributeTable table) { } } - public boolean isNodeTable(AttributeTable table) { - AttributeController ac = Lookup.getDefault().lookup(AttributeController.class); - return table == ac.getModel().getNodeTable(); + @Override + public boolean isNodeTable(Table table) { + return Node.class.equals(table.getElementClass()); + } + + @Override + public boolean isEdgeTable(Table table) { + return Edge.class.equals(table.getElementClass()); } - public boolean isEdgeTable(AttributeTable table) { - AttributeController ac = Lookup.getDefault().lookup(AttributeController.class); - return table == ac.getModel().getEdgeTable(); + @Override + public boolean canDeleteColumn(Column column) { + return !column.isReadOnly() && column.getOrigin() != Origin.PROPERTY; } - public boolean canDeleteColumn(AttributeColumn column) { - return column.getOrigin() != AttributeOrigin.PROPERTY; + @Override + public boolean isTableColumn(Table table, Column column) { + return column.getTable() == table; } - public boolean canChangeColumnData(AttributeColumn column) { - AttributeUtils au = Lookup.getDefault().lookup(AttributeUtils.class); - if (au.isNodeColumn(column)) { - return canChangeGenericColumnData(column) && column.getIndex() != PropertiesColumn.NODE_ID.getIndex(); - } else if (au.isEdgeColumn(column)) { - return canChangeGenericColumnData(column) && column.getIndex() != PropertiesColumn.EDGE_ID.getIndex(); - } else { - return canChangeGenericColumnData(column); - } + @Override + public boolean isNodeColumn(Column column) { + return isNodeTable(column.getTable()); } - public boolean canClearColumnData(AttributeColumn column) { - AttributeUtils au = Lookup.getDefault().lookup(AttributeUtils.class); - if (au.isNodeColumn(column)) { - return canChangeGenericColumnData(column) && column.getIndex() != PropertiesColumn.NODE_ID.getIndex(); - } else if (au.isEdgeColumn(column)) { - return canChangeGenericColumnData(column) && column.getIndex() != PropertiesColumn.EDGE_ID.getIndex() && column.getIndex() != PropertiesColumn.EDGE_WEIGHT.getIndex(); - } else { - return canChangeGenericColumnData(column); + @Override + public boolean isEdgeColumn(Column column) { + return isEdgeTable(column.getTable()); + } + + @Override + public boolean canChangeColumnData(Column column) { + return !column.isReadOnly(); + } + + @Override + public boolean canClearColumnData(Column column) { + if (isEdgeColumn(column) && column.getId().equalsIgnoreCase("weight")) { + return false;//Should not remove weight value but grapshtore currently allows it } + + return !column.isReadOnly(); } - public boolean canConvertColumnToDynamic(AttributeColumn column) { - if(column.getType().isDynamicType()){ + @Override + public boolean canConvertColumnToDynamic(Column column) { + if (column.isReadOnly() || AttributeUtils.isDynamicType(column.getTypeClass())) { + return false; + } + + try { + //Make sure the simple type can actually be part of a dynamic type of intervals/timestamps + //For example array types cannot be converted to dynamic + AttributeUtils.getIntervalMapType(column.getTypeClass()); + AttributeUtils.getTimestampMapType(column.getTypeClass()); + } catch (Exception e) { return false; } - - AttributeUtils au = Lookup.getDefault().lookup(AttributeUtils.class); - if (au.isNodeColumn(column)) { - return canChangeGenericColumnData(column) && column.getIndex() != PropertiesColumn.NODE_ID.getIndex() && column.getIndex() != PropertiesColumn.NODE_LABEL.getIndex(); - } else if (au.isEdgeColumn(column)) { - return canChangeGenericColumnData(column) && column.getIndex() != PropertiesColumn.EDGE_ID.getIndex() && column.getIndex() != PropertiesColumn.EDGE_LABEL.getIndex(); + + if (isNodeColumn(column) || isEdgeColumn(column)) { + return !column.getTitle().equalsIgnoreCase("Label"); } else { return true; } } - public BigDecimal[] getNumberOrNumberListColumnStatistics(AttributeTable table, AttributeColumn column) { + @Override + public BigDecimal[] getNumberOrNumberListColumnStatistics(Table table, Column column) { return StatisticsUtils.getAllStatistics(getColumnNumbers(table, column)); } - public Number[] getColumnNumbers(AttributeTable table, AttributeColumn column) { + @Override + public Number[] getColumnNumbers(Table table, Column column) { return getRowsColumnNumbers(getTableAttributeRows(table), column); } - public Number[] getRowsColumnNumbers(Attributes[] rows, AttributeColumn column) { - AttributeUtils attributeUtils = AttributeUtils.getDefault(); - if (!attributeUtils.isNumberOrNumberListColumn(column)) { - throw new IllegalArgumentException("The column has to be a number or number list column"); - } - - ArrayList numbers = new ArrayList(); - final int columnIndex = column.getIndex(); - Number number; - if (attributeUtils.isNumberColumn(column)) {//Number column - for (Attributes row : rows) { - number = (Number) row.getValue(columnIndex); - if (number != null) { - numbers.add(number); - } - } - } else {//Number list column - for (Attributes row : rows) { - numbers.addAll(getNumberListColumnNumbers(row, column)); - } + @Override + public Number[] getRowsColumnNumbers(Element[] rows, Column column) { + Class type = column.getTypeClass(); + if (!AttributeUtils.isNumberType(type)) { + throw new IllegalArgumentException("The column has to be a number column"); } - return numbers.toArray(new Number[0]); - } - - public Number[] getRowNumbers(Attributes row, AttributeColumn[] columns) { - AttributeUtils attributeUtils = AttributeUtils.getDefault(); - checkColumnsAreNumberOrNumberList(columns); + boolean isDynamic = AttributeUtils.isDynamicType(type); + boolean isArray = type.isArray(); - ArrayList numbers = new ArrayList(); + ArrayList numbers = new ArrayList<>(); Number number; - for (AttributeColumn column : columns) { - if (attributeUtils.isNumberColumn(column)) {//Single number column: - number = (Number) row.getValue(column.getIndex()); - if (number != null) { - numbers.add(number); + for (Element row : rows) { + Object value = row.getAttribute(column); + if (value != null) { + if (!isDynamic) { + if (isArray) { + numbers.addAll(getArrayNumbers(value)); + } else { + //Single number column: + number = (Number) row.getAttribute(column); + if (number != null) { + numbers.add(number); + } + } + } else { + numbers.addAll(getDynamicNumberColumnNumbers(row, column)); } - } else if (attributeUtils.isNumberListColumn(column)) {//Number list column: - numbers.addAll(getNumberListColumnNumbers(row, column)); - } else if (attributeUtils.isDynamicNumberColumn(column)) {//Dynamic number column - numbers.addAll(getDynamicNumberColumnNumbers(row, column)); } } return numbers.toArray(new Number[0]); } - public void importCSVToNodesTable(File file, Character separator, Charset charset, String[] columnNames, AttributeType[] columnTypes, boolean assignNewNodeIds) { - if (columnNames == null || columnNames.length == 0) { - return; - } - - if (columnTypes == null || columnNames.length != columnTypes.length) { - throw new IllegalArgumentException("Column names length must be the same as column types lenght"); - } - - CsvReader reader = null; - try { - //Prepare attribute columns for the column names, creating the not already existing columns: - AttributeTable nodesTable = Lookup.getDefault().lookup(AttributeController.class).getModel().getNodeTable(); - String idColumn = null; - ArrayList columnsList = new ArrayList(); - HashMap columnHeaders = new HashMap();//Necessary because of column name case insensitivity, to map columns to its corresponding csv header. - for (int i = 0; i < columnNames.length; i++) { - //Separate first id column found from the list to use as id. If more are found later, the will not be in the list and be ignored. - if (columnNames[i].equalsIgnoreCase("id")) { - if (idColumn == null) { - idColumn = columnNames[i]; - } - } else if (nodesTable.hasColumn(columnNames[i])) { - AttributeColumn column = nodesTable.getColumn(columnNames[i]); - columnsList.add(column); - columnHeaders.put(column, columnNames[i]); - } else { - AttributeColumn column = addAttributeColumn(nodesTable, columnNames[i], columnTypes[i]); - if (column != null) { - columnsList.add(column); - columnHeaders.put(column, columnNames[i]); - } - } + @Override + public Number[] getRowNumbers(Element row, Column[] columns) { + ArrayList numbers = new ArrayList<>(); + Number number; + for (Column column : columns) { + Class type = column.getTypeClass(); + if (!AttributeUtils.isNumberType(type)) { + throw new IllegalArgumentException("The column has to be a number column"); } + Object value = row.getAttribute(column); - //Create nodes: - GraphElementsController gec = Lookup.getDefault().lookup(GraphElementsController.class); - Graph graph = Lookup.getDefault().lookup(GraphController.class).getModel().getGraph(); - String id = null; - Node node; - Attributes nodeAttributes; - reader = new CsvReader(new FileInputStream(file), separator, charset); - reader.setTrimWhitespace(false); - reader.readHeaders(); - while (reader.readRecord()) { - //Prepare the correct node to assign the attributes: - if (idColumn != null) { - id = reader.get(idColumn); - if (id == null || id.isEmpty()) { - node = gec.createNode(null);//id null or empty, assign one + if (value != null) { + if (!AttributeUtils.isDynamicType(type)) { + if (type.isArray()) { + numbers.addAll(getArrayNumbers(value)); } else { - graph.readLock(); - node = graph.getNode(id); - graph.readUnlock(); - if (node != null) {//Node with that id already in graph - if (assignNewNodeIds) { - node = gec.createNode(null); - } - } else { - node = gec.createNode(null, id);//New id in the graph + //Single number column: + number = (Number) value; + if (number != null) { + numbers.add(number); } } } else { - node = gec.createNode(null); - } - //Assign attributes to the current node: - nodeAttributes = node.getNodeData().getAttributes(); - for (AttributeColumn column : columnsList) { - setAttributeValue(reader.get(columnHeaders.get(column)), nodeAttributes, column); + numbers.addAll(getDynamicNumberColumnNumbers(row, column)); } } - } catch (FileNotFoundException ex) { - Exceptions.printStackTrace(ex); - } catch (IOException ex) { - Exceptions.printStackTrace(ex); - } finally { - reader.close(); + } + + return numbers.toArray(new Number[0]); } - public void importCSVToEdgesTable(File file, Character separator, Charset charset, String[] columnNames, AttributeType[] columnTypes, boolean createNewNodes) { - if (columnNames == null || columnNames.length == 0) { - return; - } + /** + * Finds the same edge (same source, target, and directedness) in the graph. If directed = false (undirected), it finds the reversed undirected edge too. + * + * @param graph Graph + * @param id Optional id, to enforce the edge id to match too + * @param source Source node + * @param target Target node + * @param directed Directedness of the edge to find + * @return The found edge or null if not found + */ + private Edge findEdge(Graph graph, String id, Node source, Node target, boolean directed) { + Edge edge = null; + if (id != null) { + //Try to find same edge with same id, if the id is provided: + edge = graph.getEdge(id); - if (columnTypes == null || columnNames.length != columnTypes.length) { - throw new IllegalArgumentException("Column names length must be the same as column types lenght"); - } + boolean sameEdgeDefinition = true; - CsvReader reader = null; - try { - //Prepare attribute columns for the column names, creating the not already existing columns: - AttributeTable edgesTable = Lookup.getDefault().lookup(AttributeController.class).getModel().getEdgeTable(); - String idColumn = null; - String sourceColumn = null; - String targetColumn = null; - String typeColumn = null; - ArrayList columnsList = new ArrayList(); - HashMap columnHeaders = new HashMap();//Necessary because of column name case insensitivity, to map columns to its corresponding csv header. - for (int i = 0; i < columnNames.length; i++) { - //Separate first id column found from the list to use as id. If more are found later, the will not be in the list and be ignored. - if (columnNames[i].equalsIgnoreCase("id")) { - if (idColumn == null) { - idColumn = columnNames[i]; + if (edge.isDirected() != directed) { + sameEdgeDefinition = false; + } else { + if (directed) { + if (edge.getSource() != source || edge.getTarget() != target) { + sameEdgeDefinition = false; } - } else if (columnNames[i].equalsIgnoreCase("source") && sourceColumn == null) {//Separate first source column found from the list to use as source node id - sourceColumn = columnNames[i]; - } else if (columnNames[i].equalsIgnoreCase("target") && targetColumn == null) {//Separate first target column found from the list to use as target node id - targetColumn = columnNames[i]; - } else if (columnNames[i].equalsIgnoreCase("type") && typeColumn == null) {//Separate first type column found from the list to use as edge type (directed/undirected) - typeColumn = columnNames[i]; - } else if (edgesTable.hasColumn(columnNames[i])) { - AttributeColumn column = edgesTable.getColumn(columnNames[i]); - columnsList.add(column); - columnHeaders.put(column, columnNames[i]); } else { - AttributeColumn column = addAttributeColumn(edgesTable, columnNames[i], columnTypes[i]); - if (column != null) { - columnsList.add(column); - columnHeaders.put(column, columnNames[i]); - } - } - } - - //Create edges: - GraphElementsController gec = Lookup.getDefault().lookup(GraphElementsController.class); - Graph graph = Lookup.getDefault().lookup(GraphController.class).getModel().getGraph(); - String id = null; - Edge edge; - String sourceId, targetId; - Node source, target; - String type; - boolean directed; - Attributes edgeAttributes; - reader = new CsvReader(new FileInputStream(file), separator, charset); - reader.setTrimWhitespace(false); - reader.readHeaders(); - while (reader.readRecord()) { - sourceId = reader.get(sourceColumn); - targetId = reader.get(targetColumn); - - if (sourceId == null || sourceId.isEmpty() || targetId == null || targetId.isEmpty()) { - continue;//No correct source and target ids were provided, ignore row - } - - graph.readLock(); - source = graph.getNode(sourceId); - graph.readUnlock(); - - if (source == null) { - if (createNewNodes) {//Create new nodes when they don't exist already and option is enabled - if (source == null) { - source = gec.createNode(null, sourceId); + if (edge.getSource() == source) { + if (edge.getTarget() != target) { + sameEdgeDefinition = false; } - } else { - continue;//Ignore this edge row, since no new nodes should be created. - } - } - - graph.readLock(); - target = graph.getNode(targetId); - graph.readUnlock(); - - if (target == null) { - if (createNewNodes) {//Create new nodes when they don't exist already and option is enabled - if (target == null) { - target = gec.createNode(null, targetId); + } else if (edge.getTarget() == source) { + if (edge.getSource() != target) { + sameEdgeDefinition = false; } } else { - continue;//Ignore this edge row, since no new nodes should be created. + //Edge data is different even when the id coincides: + sameEdgeDefinition = false; } } + } - if (typeColumn != null) { - type = reader.get(typeColumn); - //Undirected if indicated correctly, otherwise always directed: - if (type != null) { - directed = !type.equalsIgnoreCase("undirected"); - } else { - directed = true; + if (!sameEdgeDefinition) { + Logger.getLogger("").log( + Level.WARNING, + "Found edge with correct id = {0} but different definition (wanted = [source = {1}, target = {2}, directed = {3}]; found = [source = {4}, target = {5}, directed = {6}]). Cannot use this edge", + new Object[] { + id, + source.getId(), target.getId(), directed, + edge.getSource().getId(), edge.getTarget().getId(), edge.isDirected() } - } else { - directed = true;//Directed by default when not indicated - } + ); + //Edge data is different even when the id coincides: + edge = null; + } + } else { + //Find a similar edge with any id: + if (edge == null) { + edge = graph.getEdge(source, target); + } - //Prepare the correct edge to assign the attributes: - if (idColumn != null) { - id = reader.get(idColumn); - if (id == null || id.isEmpty()) { - edge = gec.createEdge(source, target, directed);//id null or empty, assign one - } else { - edge = gec.createEdge(id, source, target, directed); - if (edge == null) {//Edge with that id already in graph - edge = gec.createEdge(source, target, directed); - } - } - } else { - edge = gec.createEdge(source, target, directed); - } + if (edge == null && !directed) { + //Not from source to target but undirected and reverse? + edge = graph.getEdge(target, source); + } - if (edge != null) {//Edge could be created because it does not already exist: - //Assign attributes to the current edge: - edgeAttributes = edge.getEdgeData().getAttributes(); - for (AttributeColumn column : columnsList) { - setAttributeValue(reader.get(columnHeaders.get(column)), edgeAttributes, column); - } - } else { - //Do not ignore repeated edge, instead increase edge weight - edge = graph.getEdge(source, target); - if (edge == null) { - //Not from source to target but undirected and reverse? - edge = graph.getEdge(target, source); - if (edge != null && edge.isDirected()) { - edge = null; - } - } - if (edge != null) { - //Increase edge weight with specified weight (if specified), else increase by 1: - String weight = reader.get(columnHeaders.get(edgesTable.getColumn(PropertiesColumn.EDGE_WEIGHT.getIndex()))); - if (weight != null) { - try { - Float weightFloat = Float.parseFloat(weight); - edge.getEdgeData().getAttributes().setValue(PropertiesColumn.EDGE_WEIGHT.getIndex(), edge.getWeight() + weightFloat); - } catch (NumberFormatException numberFormatException) { - //Not valid weight, add 1 - edge.getEdgeData().getAttributes().setValue(PropertiesColumn.EDGE_WEIGHT.getIndex(), edge.getWeight() + 1); - } - } else { - //Add 1 (weight not specified) - edge.getEdgeData().getAttributes().setValue(PropertiesColumn.EDGE_WEIGHT.getIndex(), edge.getWeight() + 1); - } - } - } + if (edge != null && edge.isDirected() != directed) { + edge = null;//Cannot use it since directedness is different } - } catch (FileNotFoundException ex) { - Exceptions.printStackTrace(ex); - } catch (IOException ex) { - Exceptions.printStackTrace(ex); - } finally { - reader.close(); } + + return edge; } - public void mergeRowsValues(AttributeTable table, AttributeRowsMergeStrategy[] mergeStrategies, Attributes[] rows, Attributes selectedRow, Attributes resultRow) { - AttributeColumn[] columns = table.getColumns(); + @Override + public void mergeRowsValues(Column[] columns, AttributeRowsMergeStrategy[] mergeStrategies, Element[] rows, + Element selectedRow, Element resultRow) { if (columns.length != mergeStrategies.length) { - throw new IllegalArgumentException("The number of columns must be equal to the number of merge strategies provided"); + throw new IllegalArgumentException( + "The number of columns must be equal to the number of merge strategies provided"); } if (selectedRow == null) { selectedRow = rows[0]; @@ -798,48 +700,56 @@ public void mergeRowsValues(AttributeTable table, AttributeRowsMergeStrategy[] m AttributeRowsMergeStrategy mergeStrategy; Object value; - for (int i = 0; i < columns.length; i++) { + + int i = 0; + for (Column column : columns) { mergeStrategy = mergeStrategies[i]; if (mergeStrategy != null) { - mergeStrategy.setup(rows, selectedRow, columns[i]); + mergeStrategy.setup(rows, selectedRow, column); if (mergeStrategy.canExecute()) { mergeStrategy.execute(); value = mergeStrategy.getReducedValue(); } else { - value = selectedRow.getValue(columns[i].getIndex()); + value = selectedRow.getAttribute(column); } } else { - value = selectedRow.getValue(columns[i].getIndex()); + value = selectedRow.getAttribute(column); } - setAttributeValue(value, resultRow, columns[i]); + setAttributeValue(value, resultRow, column); + + i++; } } - public List> detectNodeDuplicatesByColumn(AttributeColumn column, boolean caseSensitive) { - final HashMap> valuesMap = new HashMap>(); - final int columnIndex = column.getIndex(); + @Override + public List> detectNodeDuplicatesByColumn(Column column, boolean caseSensitive) { + final HashMap> valuesMap = new HashMap<>(); - Graph graph = Lookup.getDefault().lookup(GraphController.class).getModel().getGraph(); + Graph graph = Lookup.getDefault().lookup(GraphController.class).getGraphModel().getGraph(); Object value; String strValue; + + TimeFormat timeFormat = graph.getModel().getTimeFormat(); + ZoneId timeZone = graph.getModel().getTimeZone(); + for (Node node : graph.getNodes().toArray()) { - value = node.getNodeData().getAttributes().getValue(columnIndex); + value = node.getAttribute(column); if (value != null) { - strValue = value.toString(); + strValue = AttributeUtils.print(value, timeFormat, timeZone); if (!caseSensitive) { strValue = strValue.toLowerCase(); } if (valuesMap.containsKey(strValue)) { valuesMap.get(strValue).add(node); } else { - ArrayList newGroup = new ArrayList(); + ArrayList newGroup = new ArrayList<>(); newGroup.add(node); valuesMap.put(strValue, newGroup); } } } - final List> groupsList = new ArrayList>(); + final List> groupsList = new ArrayList<>(); for (List group : valuesMap.values()) { if (group.size() > 1) { groupsList.add(group); @@ -857,7 +767,7 @@ public List> detectNodeDuplicatesByColumn(AttributeColumn column, boo * @return Array with all graph nodes */ private Node[] getNodesArray() { - return Lookup.getDefault().lookup(GraphController.class).getModel().getHierarchicalGraph().getNodesTree().toArray(); + return Lookup.getDefault().lookup(GraphController.class).getGraphModel().getGraph().getNodes().toArray(); } /** @@ -866,30 +776,20 @@ private Node[] getNodesArray() { * @return Array with all graph edges */ private Edge[] getEdgesArray() { - return Lookup.getDefault().lookup(GraphController.class).getModel().getHierarchicalGraph().getEdges().toArray(); - } - - /** - * Only checks that a column is not - * COMPUTED or - * DELEGATE - */ - private boolean canChangeGenericColumnData(AttributeColumn column) { - return column.getOrigin() != AttributeOrigin.COMPUTED && column.getOrigin() != AttributeOrigin.DELEGATE; + return Lookup.getDefault().lookup(GraphController.class).getGraphModel().getGraph().getEdges().toArray(); } /** * Used to negate the values of a single boolean column. */ - private void negateColumnBooleanType(AttributeTable table, AttributeColumn column) { - final int columnIndex = column.getIndex(); + private void negateColumnBooleanType(Table table, Column column) { Object value; Boolean newValue; - for (Attributes row : getTableAttributeRows(table)) { - value = row.getValue(columnIndex); + for (Element row : getTableAttributeRows(table)) { + value = row.getAttribute(column); if (value != null) { newValue = !((Boolean) value); - row.setValue(columnIndex, newValue); + row.setAttribute(column, newValue); } } } @@ -897,74 +797,67 @@ private void negateColumnBooleanType(AttributeTable table, AttributeColumn colum /** * Used to negate all values of a list of boolean values column. */ - private void negateColumnListBooleanType(AttributeTable table, AttributeColumn column) { - final int columnIndex = column.getIndex(); + private void negateColumnListBooleanType(Table table, Column column) { Object value; - BooleanList list; Boolean[] newValues; - for (Attributes row : getTableAttributeRows(table)) { - value = row.getValue(columnIndex); + for (Element row : getTableAttributeRows(table)) { + value = row.getAttribute(column); if (value != null) { - list = (BooleanList) value; - newValues = new Boolean[list.size()]; - for (int i = 0; i < list.size(); i++) { - newValues[i] = !list.getItem(i); + Boolean[] list = (Boolean[]) value; + newValues = new Boolean[list.length]; + for (int i = 0; i < list.length; i++) { + newValues[i] = !list[i]; } - row.setValue(columnIndex, new BooleanList(newValues)); + row.setAttribute(column, newValues); } } } /** - * Used for obtaining a list of the numbers of row of a number list column. + * Used for obtaining a list of the numbers of row of a dynamic number column. + * + * @param row Row + * @param column Column with dynamic type + * @return list of numbers */ - private ArrayList getNumberListColumnNumbers(Attributes row, AttributeColumn column) { - if (!AttributeUtils.getDefault().isNumberListColumn(column)) { - throw new IllegalArgumentException("Column must be a number list column"); + private List getDynamicNumberColumnNumbers(Element row, Column column) { + Class type = column.getTypeClass(); + if (!(AttributeUtils.isNumberType(type) && AttributeUtils.isDynamicType(type))) { + throw new IllegalArgumentException("Column must be a dynamic number column"); } - ArrayList numbers = new ArrayList(); - NumberList list = (NumberList) row.getValue(column.getIndex()); - if (list == null) { - return numbers; - } - Number n; - for (int i = 0; i < list.size(); i++) { - n = (Number) list.getItem(i); - if (n != null) { - numbers.add((Number) n); + if (TimestampMap.class.isAssignableFrom(type)) {//Timestamp type: + TimestampMap timestampMap = (TimestampMap) row.getAttribute(column); + if (timestampMap == null) { + return new ArrayList<>(); + } + Number[] dynamicNumbers = (Number[]) timestampMap.toValuesArray(); + return Arrays.asList(dynamicNumbers); + } else if (IntervalMap.class.isAssignableFrom(type)) {//Interval type: + IntervalMap intervalMap = (IntervalMap) row.getAttribute(column); + if (intervalMap == null) { + return new ArrayList<>(); } + Number[] dynamicNumbers = (Number[]) intervalMap.toValuesArray(); + return Arrays.asList(dynamicNumbers); + } else { + throw new IllegalArgumentException("Unsupported dynamic type class " + type.getCanonicalName()); } - return numbers; } /** - * Used for obtaining a list of the numbers of row of a dynamic number column. + * Works for arrays of primitive and non primitive numbers. + * + * @param arr Array of Number assignable type + * @return numbers */ - private ArrayList getDynamicNumberColumnNumbers(Attributes row, AttributeColumn column) { - if (!AttributeUtils.getDefault().isDynamicNumberColumn(column)) { - throw new IllegalArgumentException("Column must be a dynamic number column"); - } - ArrayList numbers = new ArrayList(); - DynamicType dynamicList = (DynamicType) row.getValue(column.getIndex()); - if (dynamicList == null) { - return numbers; - } - Number[] dynamicNumbers; - dynamicNumbers = (Number[]) dynamicList.getValues().toArray(new Number[0]); - Number n; - for (int i = 0; i < dynamicNumbers.length; i++) { - n = (Number) dynamicNumbers[i]; - if (n != null) { - numbers.add((Number) n); - } - } - return numbers; - } + private List getArrayNumbers(Object arr) { + int length = Array.getLength(arr); + List result = new ArrayList<>(); - private void checkColumnsAreNumberOrNumberList(AttributeColumn[] columns) { - if (columns == null || (!AttributeUtils.getDefault().areAllNumberOrNumberListColumns(columns) && !AttributeUtils.getDefault().areAllDynamicNumberColumns(columns))) { - throw new IllegalArgumentException("All columns have to be number or number list columns and can't be null"); + for (int i = 0; i < length; i++) { + result.add((Number) Array.get(arr, i)); } + return result; } } diff --git a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/impl/AttributeColumnsMergeStrategiesControllerImpl.java b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/impl/AttributeColumnsMergeStrategiesControllerImpl.java index 525bc3a0d5..f3930bb1c4 100644 --- a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/impl/AttributeColumnsMergeStrategiesControllerImpl.java +++ b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/impl/AttributeColumnsMergeStrategiesControllerImpl.java @@ -39,50 +39,54 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.impl; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeOrigin; -import org.gephi.data.attributes.api.AttributeTable; -import org.gephi.data.attributes.api.AttributeType; -import org.gephi.data.attributes.api.AttributeUtils; -import org.gephi.data.attributes.type.TimeInterval; -import org.gephi.datalab.api.AttributeColumnsMergeStrategiesController; +import java.util.TimeZone; import org.gephi.datalab.api.AttributeColumnsController; -import org.gephi.dynamic.api.DynamicController; -import org.gephi.dynamic.api.DynamicModel; -import org.gephi.graph.api.Attributes; +import org.gephi.datalab.api.AttributeColumnsMergeStrategiesController; +import org.gephi.graph.api.AttributeUtils; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Element; +import org.gephi.graph.api.GraphModel; +import org.gephi.graph.api.Origin; +import org.gephi.graph.api.Table; +import org.gephi.graph.api.TimeFormat; +import org.gephi.graph.api.types.IntervalSet; import org.gephi.utils.StatisticsUtils; +import java.time.ZoneId; import org.openide.util.Lookup; import org.openide.util.lookup.ServiceProvider; /** * Implementation of the AttributeColumnsMergeStrategiesController interface * declared in the Data Laboratory API. - * @author Eduardo Ramos + * + * @author Eduardo Ramos * @see AttributeColumnsMergeStrategiesController */ @ServiceProvider(service = AttributeColumnsMergeStrategiesController.class) public class AttributeColumnsMergeStrategiesControllerImpl implements AttributeColumnsMergeStrategiesController { - public AttributeColumn joinWithSeparatorMerge(AttributeTable table, AttributeColumn[] columnsToMerge, AttributeType newColumnType, String newColumnTitle, String separator) { + @Override + public Column joinWithSeparatorMerge(Table table, Column[] columnsToMerge, Class newColumnType, + String newColumnTitle, String separator) { if (table == null || columnsToMerge == null) { throw new IllegalArgumentException("Table or columns can't be null"); } AttributeColumnsController ac = Lookup.getDefault().lookup(AttributeColumnsController.class); - AttributeColumn newColumn; - newColumn = ac.addAttributeColumn(table, newColumnTitle, newColumnType != null ? newColumnType : AttributeType.STRING);//Create as STRING column by default. Then it can be duplicated to other type. + Column newColumn; + newColumn = ac.addAttributeColumn(table, newColumnTitle, newColumnType != null ? newColumnType : + String.class);//Create as STRING column by default. Then it can be duplicated to other type. if (newColumn == null) { return null; } - final int newColumnIndex = newColumn.getIndex(); - if (separator == null) { separator = ""; } @@ -91,46 +95,58 @@ public AttributeColumn joinWithSeparatorMerge(AttributeTable table, AttributeCol StringBuilder sb; final int columnsCount = columnsToMerge.length; - for (Attributes row : ac.getTableAttributeRows(table)) { + GraphModel graphModel = table.getGraph().getModel(); + TimeFormat timeFormat = graphModel.getTimeFormat(); + ZoneId timeZone = graphModel.getTimeZone(); + + for (Element row : ac.getTableAttributeRows(table)) { sb = new StringBuilder(); for (int i = 0; i < columnsCount; i++) { - value = row.getValue(columnsToMerge[i].getIndex()); + value = row.getAttribute(columnsToMerge[i]); if (value != null) { - sb.append(value.toString()); + sb.append(AttributeUtils.print(value, timeFormat, timeZone)); if (i < columnsCount - 1) { sb.append(separator); } } } - row.setValue(newColumnIndex, sb.toString()); + + ac.setAttributeValue(sb.toString(), row, newColumn); } return newColumn; } - public AttributeColumn booleanLogicOperationsMerge(AttributeTable table, AttributeColumn[] columnsToMerge, BooleanOperations[] booleanOperations, String newColumnTitle) { - AttributeUtils attributeUtils = AttributeUtils.getDefault(); + @Override + public Column booleanLogicOperationsMerge(Table table, Column[] columnsToMerge, + BooleanOperations[] booleanOperations, String newColumnTitle) { AttributeColumnsController ac = Lookup.getDefault().lookup(AttributeColumnsController.class); - if (table == null || columnsToMerge == null || !attributeUtils.areAllColumnsOfType(columnsToMerge, AttributeType.BOOLEAN) || booleanOperations == null || booleanOperations.length != columnsToMerge.length - 1) { - throw new IllegalArgumentException("All columns have to be boolean columns, table, columns or operations can't be null and operations length must be columns length -1"); + if (table == null || columnsToMerge == null || booleanOperations == null || + booleanOperations.length != columnsToMerge.length - 1) { + throw new IllegalArgumentException( + "table, columns or operations can't be null and operations length must be columns length -1"); + } + + for (Column column : columnsToMerge) { + if (!column.getTypeClass().equals(Boolean.class)) { + throw new IllegalArgumentException("All columns have to be boolean columns"); + } } - AttributeColumn newColumn; - newColumn = ac.addAttributeColumn(table, newColumnTitle, AttributeType.BOOLEAN); + Column newColumn; + newColumn = ac.addAttributeColumn(table, newColumnTitle, Boolean.class); if (newColumn == null) { return null; } - final int newColumnIndex = newColumn.getIndex(); - Boolean value; Boolean secondValue; - for (Attributes row : ac.getTableAttributeRows(table)) { - value = (Boolean) row.getValue(columnsToMerge[0].getIndex()); + for (Element row : ac.getTableAttributeRows(table)) { + value = (Boolean) row.getAttribute(columnsToMerge[0]); value = value != null ? value : false;//Use false if null for (int i = 0; i < booleanOperations.length; i++) { - secondValue = (Boolean) row.getValue(columnsToMerge[i + 1].getIndex()); + secondValue = (Boolean) row.getAttribute(columnsToMerge[i + 1]); secondValue = secondValue != null ? secondValue : false;//Use false if null switch (booleanOperations[i]) { case AND: @@ -150,29 +166,33 @@ public AttributeColumn booleanLogicOperationsMerge(AttributeTable table, Attribu break; } } - row.setValue(newColumnIndex, value); + row.setAttribute(newColumn, value); } return newColumn; } - public AttributeColumn mergeNumericColumnsToTimeInterval(AttributeTable table, AttributeColumn startColumn, AttributeColumn endColumn, double defaultStart, double defaultEnd) { + @Override + public Column mergeNumericColumnsToTimeInterval(Table table, Column startColumn, Column endColumn, + double defaultStart, double defaultEnd) { checkTableAndOneColumn(table, startColumn, endColumn); - AttributeColumn timeIntervalColumn = getTimeIntervalColumn(table); - final int timeIntervalColumnIndex = timeIntervalColumn.getIndex(); + Column timeIntervalColumn = getTimeIntervalColumn(table); final int startColumnIndex = startColumn != null ? startColumn.getIndex() : -1; final int endColumnIndex = endColumn != null ? endColumn.getIndex() : -1; - final boolean isStartColumnNumeric = startColumn != null ? AttributeUtils.getDefault().isNumberColumn(startColumn) : false; - final boolean isEndColumnNumeric = endColumn != null ? AttributeUtils.getDefault().isNumberColumn(endColumn) : false; + final boolean isStartColumnNumeric = + startColumn != null && (!AttributeUtils.isDynamicType(startColumn.getTypeClass()) && + AttributeUtils.isNumberType(startColumn.getTypeClass())); + final boolean isEndColumnNumeric = + endColumn != null && (!AttributeUtils.isDynamicType(endColumn.getTypeClass()) && + AttributeUtils.isNumberType(endColumn.getTypeClass())); AttributeColumnsController ac = Lookup.getDefault().lookup(AttributeColumnsController.class); Object value; double start, end; - TimeInterval timeInterval; - for (Attributes row : ac.getTableAttributeRows(table)) { + for (Element row : ac.getTableAttributeRows(table)) { if (startColumnIndex != -1) { - value = row.getValue(startColumnIndex); + value = row.getAttribute(startColumn); if (value != null) { if (isStartColumnNumeric) { start = ((Number) value).doubleValue(); @@ -186,7 +206,7 @@ public AttributeColumn mergeNumericColumnsToTimeInterval(AttributeTable table, A start = defaultStart; } if (endColumnIndex != -1) { - value = row.getValue(endColumnIndex); + value = row.getAttribute(endColumn); if (value != null) { if (isEndColumnNumeric) { end = ((Number) value).doubleValue(); @@ -210,21 +230,27 @@ public AttributeColumn mergeNumericColumnsToTimeInterval(AttributeTable table, A end = Double.POSITIVE_INFINITY; } } - timeInterval = new TimeInterval(start, end); - row.setValue(timeIntervalColumnIndex, timeInterval); + + IntervalSet timeInterval = new IntervalSet(new double[] {start, end}); + row.setAttribute(timeIntervalColumn, timeInterval); } - Lookup.getDefault().lookup(DynamicController.class).setTimeFormat(DynamicModel.TimeFormat.DOUBLE); + return timeIntervalColumn; } - public AttributeColumn mergeDateColumnsToTimeInterval(AttributeTable table, AttributeColumn startColumn, AttributeColumn endColumn, SimpleDateFormat dateFormat, String defaultStartDate, String defaultEndDate) { + @Override + public Column mergeDateColumnsToTimeInterval(Table table, Column startColumn, Column endColumn, + SimpleDateFormat dateFormat, String defaultStartDate, + String defaultEndDate) { checkTableAndOneColumn(table, startColumn, endColumn); if (dateFormat == null) { throw new IllegalArgumentException("Date format can't be null can't be null"); } - AttributeColumn timeIntervalColumn = getTimeIntervalColumn(table); - final int timeIntervalColumnIndex = timeIntervalColumn.getIndex(); + Column timeIntervalColumn = getTimeIntervalColumn(table); + ZoneId timeZone = table.getGraph().getModel().getTimeZone(); + dateFormat.setTimeZone(TimeZone.getTimeZone(timeZone)); + final int startColumnIndex = startColumn != null ? startColumn.getIndex() : -1; final int endColumnIndex = endColumn != null ? endColumn.getIndex() : -1; double defaultStart = parseDateToDouble(dateFormat, defaultStartDate, Double.NEGATIVE_INFINITY); @@ -233,16 +259,15 @@ public AttributeColumn mergeDateColumnsToTimeInterval(AttributeTable table, Attr AttributeColumnsController ac = Lookup.getDefault().lookup(AttributeColumnsController.class); Object value; double start, end; - TimeInterval timeInterval; - for (Attributes row : ac.getTableAttributeRows(table)) { + for (Element row : ac.getTableAttributeRows(table)) { if (startColumnIndex != -1) { - value = row.getValue(startColumnIndex); + value = row.getAttribute(startColumn); start = parseDateToDouble(dateFormat, value != null ? value.toString() : null, defaultStart); } else { start = defaultStart; } if (endColumnIndex != -1) { - value = row.getValue(endColumnIndex); + value = row.getAttribute(endColumn); end = parseDateToDouble(dateFormat, value != null ? value.toString() : null, defaultEnd); } else { end = defaultEnd; @@ -258,64 +283,63 @@ public AttributeColumn mergeDateColumnsToTimeInterval(AttributeTable table, Attr end = Double.POSITIVE_INFINITY; } } - timeInterval = new TimeInterval(start, end); - row.setValue(timeIntervalColumnIndex, timeInterval); + + IntervalSet timeInterval = new IntervalSet(new double[] {start, end}); + row.setAttribute(timeIntervalColumn, timeInterval); } - Lookup.getDefault().lookup(DynamicController.class).setTimeFormat(DynamicModel.TimeFormat.DATE); return timeIntervalColumn; } - public AttributeColumn averageNumberMerge(AttributeTable table, AttributeColumn[] columnsToMerge, String newColumnTitle) { + @Override + public Column averageNumberMerge(Table table, Column[] columnsToMerge, String newColumnTitle) { checkTableAndColumnsAreNumberOrNumberList(table, columnsToMerge); AttributeColumnsController ac = Lookup.getDefault().lookup(AttributeColumnsController.class); - AttributeColumn newColumn; - newColumn = ac.addAttributeColumn(table, newColumnTitle, AttributeType.BIGDECIMAL);//Create as BIGDECIMAL column by default. Then it can be duplicated to other type. + Column newColumn; + newColumn = ac.addAttributeColumn(table, newColumnTitle, + BigDecimal.class);//Create as BIGDECIMAL column by default. Then it can be duplicated to other type. if (newColumn == null) { return null; } - final int newColumnIndex = newColumn.getIndex(); BigDecimal average; - for (Attributes row : ac.getTableAttributeRows(table)) { + for (Element row : ac.getTableAttributeRows(table)) { average = StatisticsUtils.average(ac.getRowNumbers(row, columnsToMerge)); - row.setValue(newColumnIndex, average); + row.setAttribute(newColumn, average); } return newColumn; } - public AttributeColumn firstQuartileNumberMerge(AttributeTable table, AttributeColumn[] columnsToMerge, String newColumnTitle) { + @Override + public Column firstQuartileNumberMerge(Table table, Column[] columnsToMerge, String newColumnTitle) { checkTableAndColumnsAreNumberOrNumberList(table, columnsToMerge); AttributeColumnsController ac = Lookup.getDefault().lookup(AttributeColumnsController.class); - AttributeColumn newColumn; - newColumn = ac.addAttributeColumn(table, newColumnTitle, AttributeType.BIGDECIMAL);//Create as BIGDECIMAL column by default. Then it can be duplicated to other type. + Column newColumn; + newColumn = ac.addAttributeColumn(table, newColumnTitle, + BigDecimal.class);//Create as BIGDECIMAL column by default. Then it can be duplicated to other type. if (newColumn == null) { return null; } - if (newColumn == null) { - return null; - } - - final int newColumnIndex = newColumn.getIndex(); - BigDecimal Q1; - for (Attributes row : ac.getTableAttributeRows(table)) { + for (Element row : ac.getTableAttributeRows(table)) { Q1 = StatisticsUtils.quartile1(ac.getRowNumbers(row, columnsToMerge)); - row.setValue(newColumnIndex, Q1); + row.setAttribute(newColumn, Q1); } return newColumn; } - public AttributeColumn medianNumberMerge(AttributeTable table, AttributeColumn[] columnsToMerge, String newColumnTitle) { + @Override + public Column medianNumberMerge(Table table, Column[] columnsToMerge, String newColumnTitle) { checkTableAndColumnsAreNumberOrNumberList(table, columnsToMerge); AttributeColumnsController ac = Lookup.getDefault().lookup(AttributeColumnsController.class); - AttributeColumn newColumn; - newColumn = ac.addAttributeColumn(table, newColumnTitle, AttributeType.BIGDECIMAL);//Create as BIGDECIMAL column by default. Then it can be duplicated to other type. + Column newColumn; + newColumn = ac.addAttributeColumn(table, newColumnTitle, + BigDecimal.class);//Create as BIGDECIMAL column by default. Then it can be duplicated to other type. if (newColumn == null) { return null; } @@ -323,50 +347,50 @@ public AttributeColumn medianNumberMerge(AttributeTable table, AttributeColumn[] final int newColumnIndex = newColumn.getIndex(); BigDecimal median; - for (Attributes row : ac.getTableAttributeRows(table)) { + for (Element row : ac.getTableAttributeRows(table)) { median = StatisticsUtils.median(ac.getRowNumbers(row, columnsToMerge)); - row.setValue(newColumnIndex, median); + row.setAttribute(newColumn, median); } return newColumn; } - public AttributeColumn thirdQuartileNumberMerge(AttributeTable table, AttributeColumn[] columnsToMerge, String newColumnTitle) { + @Override + public Column thirdQuartileNumberMerge(Table table, Column[] columnsToMerge, String newColumnTitle) { checkTableAndColumnsAreNumberOrNumberList(table, columnsToMerge); AttributeColumnsController ac = Lookup.getDefault().lookup(AttributeColumnsController.class); - AttributeColumn newColumn; - newColumn = ac.addAttributeColumn(table, newColumnTitle, AttributeType.BIGDECIMAL);//Create as BIGDECIMAL column by default. Then it can be duplicated to other type. + Column newColumn; + newColumn = ac.addAttributeColumn(table, newColumnTitle, + BigDecimal.class);//Create as BIGDECIMAL column by default. Then it can be duplicated to other type. if (newColumn == null) { return null; } - final int newColumnIndex = newColumn.getIndex(); - BigDecimal Q3; - for (Attributes row : ac.getTableAttributeRows(table)) { + for (Element row : ac.getTableAttributeRows(table)) { Q3 = StatisticsUtils.quartile3(ac.getRowNumbers(row, columnsToMerge)); - row.setValue(newColumnIndex, Q3); + row.setAttribute(newColumn, Q3); } return newColumn; } - public AttributeColumn interQuartileRangeNumberMerge(AttributeTable table, AttributeColumn[] columnsToMerge, String newColumnTitle) { + @Override + public Column interQuartileRangeNumberMerge(Table table, Column[] columnsToMerge, String newColumnTitle) { checkTableAndColumnsAreNumberOrNumberList(table, columnsToMerge); AttributeColumnsController ac = Lookup.getDefault().lookup(AttributeColumnsController.class); - AttributeColumn newColumn; - newColumn = ac.addAttributeColumn(table, newColumnTitle, AttributeType.BIGDECIMAL);//Create as BIGDECIMAL column by default. Then it can be duplicated to other type. + Column newColumn; + newColumn = ac.addAttributeColumn(table, newColumnTitle, + BigDecimal.class);//Create as BIGDECIMAL column by default. Then it can be duplicated to other type. if (newColumn == null) { return null; } - final int newColumnIndex = newColumn.getIndex(); - BigDecimal IQR, Q1, Q3; Number[] rowNumbers; - for (Attributes row : ac.getTableAttributeRows(table)) { + for (Element row : ac.getTableAttributeRows(table)) { rowNumbers = ac.getRowNumbers(row, columnsToMerge); Q3 = StatisticsUtils.quartile3(rowNumbers); Q1 = StatisticsUtils.quartile1(rowNumbers); @@ -375,80 +399,81 @@ public AttributeColumn interQuartileRangeNumberMerge(AttributeTable table, Attri } else { IQR = null; } - row.setValue(newColumnIndex, IQR); + row.setAttribute(newColumn, IQR); } return newColumn; } - public AttributeColumn sumNumbersMerge(AttributeTable table, AttributeColumn[] columnsToMerge, String newColumnTitle) { + @Override + public Column sumNumbersMerge(Table table, Column[] columnsToMerge, String newColumnTitle) { checkTableAndColumnsAreNumberOrNumberList(table, columnsToMerge); AttributeColumnsController ac = Lookup.getDefault().lookup(AttributeColumnsController.class); - AttributeColumn newColumn; - newColumn = ac.addAttributeColumn(table, newColumnTitle, AttributeType.BIGDECIMAL);//Create as BIGDECIMAL column by default. Then it can be duplicated to other type. + Column newColumn; + newColumn = ac.addAttributeColumn(table, newColumnTitle, + BigDecimal.class);//Create as BIGDECIMAL column by default. Then it can be duplicated to other type. if (newColumn == null) { return null; } - final int newColumnIndex = newColumn.getIndex(); - BigDecimal sum; - for (Attributes row : ac.getTableAttributeRows(table)) { + for (Element row : ac.getTableAttributeRows(table)) { sum = StatisticsUtils.sum(ac.getRowNumbers(row, columnsToMerge)); - row.setValue(newColumnIndex, sum); + row.setAttribute(newColumn, sum); } return newColumn; } - public AttributeColumn minValueNumbersMerge(AttributeTable table, AttributeColumn[] columnsToMerge, String newColumnTitle) { + @Override + public Column minValueNumbersMerge(Table table, Column[] columnsToMerge, String newColumnTitle) { checkTableAndColumnsAreNumberOrNumberList(table, columnsToMerge); AttributeColumnsController ac = Lookup.getDefault().lookup(AttributeColumnsController.class); - AttributeColumn newColumn; - newColumn = ac.addAttributeColumn(table, newColumnTitle, AttributeType.BIGDECIMAL);//Create as BIGDECIMAL column by default. Then it can be duplicated to other type. + Column newColumn; + newColumn = ac.addAttributeColumn(table, newColumnTitle, + BigDecimal.class);//Create as BIGDECIMAL column by default. Then it can be duplicated to other type. if (newColumn == null) { return null; } - final int newColumnIndex = newColumn.getIndex(); - BigDecimal min; - for (Attributes row : ac.getTableAttributeRows(table)) { + for (Element row : ac.getTableAttributeRows(table)) { min = StatisticsUtils.minValue(ac.getRowNumbers(row, columnsToMerge)); - row.setValue(newColumnIndex, min); + row.setAttribute(newColumn, min); } return newColumn; } - public AttributeColumn maxValueNumbersMerge(AttributeTable table, AttributeColumn[] columnsToMerge, String newColumnTitle) { + @Override + public Column maxValueNumbersMerge(Table table, Column[] columnsToMerge, String newColumnTitle) { checkTableAndColumnsAreNumberOrNumberList(table, columnsToMerge); AttributeColumnsController ac = Lookup.getDefault().lookup(AttributeColumnsController.class); - AttributeColumn newColumn; - newColumn = ac.addAttributeColumn(table, newColumnTitle, AttributeType.BIGDECIMAL);//Create as BIGDECIMAL column by default. Then it can be duplicated to other type. + Column newColumn; + newColumn = ac.addAttributeColumn(table, newColumnTitle, + BigDecimal.class);//Create as BIGDECIMAL column by default. Then it can be duplicated to other type. if (newColumn == null) { return null; } - final int newColumnIndex = newColumn.getIndex(); - BigDecimal max; - for (Attributes row : ac.getTableAttributeRows(table)) { + for (Element row : ac.getTableAttributeRows(table)) { max = StatisticsUtils.maxValue(ac.getRowNumbers(row, columnsToMerge)); - row.setValue(newColumnIndex, max); + row.setAttribute(newColumn, max); } return newColumn; } /*************Private methods:*************/ - private AttributeColumn getTimeIntervalColumn(AttributeTable table) { - AttributeColumn column = table.getColumn(DynamicModel.TIMEINTERVAL_COLUMN); + private Column getTimeIntervalColumn(Table table) { + Column column = table.getColumn("timeset"); if (column == null) { - column = table.addColumn(DynamicModel.TIMEINTERVAL_COLUMN, "Time Interval", AttributeType.TIME_INTERVAL, AttributeOrigin.PROPERTY, null); + //This should not happen with our graphstore usage + column = table.addColumn("timeset", "Interval", IntervalSet.class, Origin.PROPERTY, null, true); } return column; } @@ -478,7 +503,7 @@ private double parseDateToDouble(SimpleDateFormat dateFormat, String date, doubl } } - private void checkTableAndOneColumn(AttributeTable table, AttributeColumn startColumn, AttributeColumn endColumn) { + private void checkTableAndOneColumn(Table table, Column startColumn, Column endColumn) { if (table == null) { throw new IllegalArgumentException("Table can't be null"); } @@ -487,16 +512,23 @@ private void checkTableAndOneColumn(AttributeTable table, AttributeColumn startC } } - private void checkTableAndColumnsAreNumberOrNumberList(AttributeTable table, AttributeColumn[] columns) { + private void checkTableAndColumnsAreNumberOrNumberList(Table table, Column[] columns) { if (table == null) { throw new IllegalArgumentException("Table can't be null"); } checkColumnsAreNumberOrNumberList(columns); } - private void checkColumnsAreNumberOrNumberList(AttributeColumn[] columns) { - if (columns == null || !AttributeUtils.getDefault().areAllNumberOrNumberListColumns(columns)) { - throw new IllegalArgumentException("All columns have to be number or number list columns and can't be null"); + private void checkColumnsAreNumberOrNumberList(Column[] columns) { + if (columns == null) { + throw new IllegalArgumentException( + "All columns have to be number or number list columns and can't be null"); + } + for (Column column : columns) { + if (!AttributeUtils.isNumberType(column.getTypeClass())) { + throw new IllegalArgumentException( + "All columns have to be number or number list columns and can't be null"); + } } } } diff --git a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/impl/DataTablesControllerImpl.java b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/impl/DataTablesControllerImpl.java index 3d6cd143c2..30c9ed1566 100644 --- a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/impl/DataTablesControllerImpl.java +++ b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/impl/DataTablesControllerImpl.java @@ -1,136 +1,155 @@ /* -Copyright 2008-2010 Gephi -Authors : Eduardo Ramos -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. + Copyright 2008-2010 Gephi + Authors : Eduardo Ramos + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2011 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.impl; -import org.gephi.data.attributes.api.AttributeController; -import org.gephi.data.attributes.api.AttributeTable; +import org.gephi.datalab.api.AttributeColumnsController; import org.gephi.datalab.api.datatables.DataTablesController; import org.gephi.datalab.api.datatables.DataTablesEventListener; import org.gephi.datalab.api.datatables.DataTablesEventListenerBuilder; import org.gephi.graph.api.Edge; import org.gephi.graph.api.Node; +import org.gephi.graph.api.Table; import org.openide.util.Lookup; import org.openide.util.lookup.ServiceProvider; /** - * Implementation of the DataTablesController interface - * declared in the Data Laboratory API. - * @author Eduardo Ramos + * Implementation of the DataTablesController interface declared in the Data Laboratory API. + * + * @author Eduardo Ramos * @see DataTablesController */ @ServiceProvider(service = DataTablesController.class) public class DataTablesControllerImpl implements DataTablesController { - DataTablesEventListener listener; - - public void setDataTablesEventListener(DataTablesEventListener listener) { - this.listener = listener; - } + private DataTablesEventListener listener; + @Override public DataTablesEventListener getDataTablesEventListener() { return listener; } + @Override + public void setDataTablesEventListener(DataTablesEventListener listener) { + this.listener = listener; + } + + @Override public boolean isDataTablesReady() { - return listener!=null; + return listener != null; } + @Override public void selectNodesTable() { if (listener != null) { listener.selectNodesTable(); } } + @Override public void selectEdgesTable() { if (listener != null) { listener.selectEdgesTable(); } } - public void selectTable(AttributeTable table) { + @Override + public void selectTable(Table table) { if (listener != null) { - AttributeController ac = Lookup.getDefault().lookup(AttributeController.class); - if (ac.getModel().getNodeTable() == table) { - selectNodesTable(); - } else { + if (Lookup.getDefault().lookup(AttributeColumnsController.class).isEdgeTable(table)) { selectEdgesTable(); + } else { + selectNodesTable(); } } } + @Override public void refreshCurrentTable() { if (listener != null) { listener.refreshCurrentTable(); } } - public void setNodeTableSelection(Node[] nodes) { + @Override + public Node[] getNodeTableSelection() { if (listener != null) { - listener.setNodeTableSelection(nodes); + return listener.getNodeTableSelection(); + } else { + return null; } } - public void setEdgeTableSelection(Edge[] edges) { + @Override + public void setNodeTableSelection(Node[] nodes) { if (listener != null) { - listener.setEdgeTableSelection(edges); + listener.setNodeTableSelection(nodes); } } - public Node[] getNodeTableSelection() { + @Override + public Edge[] getEdgeTableSelection() { if (listener != null) { - return listener.getNodeTableSelection(); + return listener.getEdgeTableSelection(); } else { return null; } } - public Edge[] getEdgeTableSelection() { + @Override + public void setEdgeTableSelection(Edge[] edges) { if (listener != null) { - return listener.getEdgeTableSelection(); - } else { - return null; + listener.setEdgeTableSelection(edges); } } + @Override + public void clearSelection() { + if (listener != null) { + listener.clearSelection(); + } + } + + @Override public boolean isNodeTableMode() { if (listener != null) { return listener.isNodeTableMode(); @@ -139,6 +158,7 @@ public boolean isNodeTableMode() { } } + @Override public boolean isEdgeTableMode() { if (listener != null) { return listener.isEdgeTableMode(); @@ -147,6 +167,7 @@ public boolean isEdgeTableMode() { } } + @Override public boolean isShowOnlyVisible() { if (listener != null) { return listener.isShowOnlyVisible(); @@ -155,18 +176,21 @@ public boolean isShowOnlyVisible() { } } - public void setShowOnlyVisible(boolean showOnlyVisible){ + @Override + public void setShowOnlyVisible(boolean showOnlyVisible) { if (listener != null) { listener.setShowOnlyVisible(showOnlyVisible); } } - public void exportCurrentTable(ExportMode exportMode) { + @Override + public void exportCurrentTable() { if (listener != null) { - listener.exportCurrentTable(exportMode); + listener.exportCurrentTable(); } } + @Override public boolean isUseSparklines() { if (listener != null) { return listener.isUseSparklines(); @@ -175,12 +199,14 @@ public boolean isUseSparklines() { } } + @Override public void setUseSparklines(boolean useSparklines) { if (listener != null) { listener.setUseSparklines(useSparklines); } } + @Override public boolean isTimeIntervalGraphics() { if (listener != null) { return listener.isTimeIntervalGraphics(); @@ -189,12 +215,14 @@ public boolean isTimeIntervalGraphics() { } } + @Override public void setTimeIntervalGraphics(boolean timeIntervalGraphics) { if (listener != null) { listener.setTimeIntervalGraphics(timeIntervalGraphics); } } + @Override public boolean isShowEdgesNodesLabels() { if (listener != null) { return listener.isShowEdgesNodesLabels(); @@ -203,17 +231,35 @@ public boolean isShowEdgesNodesLabels() { } } + @Override public void setShowEdgesNodesLabels(boolean showEdgesNodesLabels) { if (listener != null) { listener.setShowEdgesNodesLabels(showEdgesNodesLabels); } } + @Override public boolean prepareDataTables() { - DataTablesEventListenerBuilder builder=Lookup.getDefault().lookup(DataTablesEventListenerBuilder.class); - if(builder!=null){ - listener=builder.getDataTablesEventListener(); + DataTablesEventListenerBuilder builder = Lookup.getDefault().lookup(DataTablesEventListenerBuilder.class); + if (builder != null) { + listener = builder.getDataTablesEventListener(); } return isDataTablesReady(); } + + @Override + public boolean isAutoRefreshEnabled() { + if (listener != null) { + return listener.isAutoRefreshEnabled(); + } else { + return false; + } + } + + @Override + public void setAutoRefreshEnabled(boolean enabled) { + if (listener != null) { + listener.setAutoRefreshEnabled(enabled); + } + } } diff --git a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/impl/GraphElementsControllerImpl.java b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/impl/GraphElementsControllerImpl.java index 4edc823831..65836d9804 100644 --- a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/impl/GraphElementsControllerImpl.java +++ b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/impl/GraphElementsControllerImpl.java @@ -1,76 +1,68 @@ /* -Copyright 2008-2010 Gephi -Authors : Eduardo Ramos -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. + Copyright 2008-2010 Gephi + Authors : Eduardo Ramos + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2011 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.impl; -import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.Set; -import org.gephi.data.attributes.api.AttributeController; -import org.gephi.data.attributes.api.AttributeRow; -import org.gephi.data.attributes.api.AttributeTable; -import org.gephi.data.properties.PropertiesColumn; +import java.util.logging.Level; +import java.util.logging.Logger; import org.gephi.datalab.api.AttributeColumnsController; import org.gephi.datalab.api.GraphElementsController; import org.gephi.datalab.spi.rows.merge.AttributeRowsMergeStrategy; -import org.gephi.graph.api.Attributes; -import org.gephi.graph.api.DirectedGraph; +import org.gephi.graph.api.Column; import org.gephi.graph.api.Edge; import org.gephi.graph.api.Graph; import org.gephi.graph.api.GraphController; -import org.gephi.graph.api.HierarchicalGraph; import org.gephi.graph.api.Node; -import org.gephi.graph.api.NodeData; -import org.gephi.graph.api.UndirectedGraph; -import org.openide.DialogDisplayer; -import org.openide.NotifyDescriptor; +import org.gephi.graph.api.Table; import org.openide.util.Lookup; -import org.openide.util.NbBundle; import org.openide.util.lookup.ServiceProvider; /** - * Implementation of the GraphElementsController interface - * declared in the Data Laboratory API - * @author Eduardo Ramos + * Implementation of the GraphElementsController interface declared in the Data Laboratory API + * + * @author Eduardo Ramos * @see GraphElementsController */ @ServiceProvider(service = GraphElementsController.class) @@ -79,16 +71,27 @@ public class GraphElementsControllerImpl implements GraphElementsController { private static final float DEFAULT_NODE_SIZE = 10f; private static final float DEFAULT_EDGE_WEIGHT = 1f; + @Override public Node createNode(String label) { - Node newNode = buildNode(label); - getGraph().addNode(newNode); + return createNode(label, getCurrentGraph()); + } + + @Override + public Node createNode(String label, Graph graph) { + Node newNode = buildNode(graph, label); + graph.addNode(newNode); return newNode; } + @Override public Node createNode(String label, String id) { - Graph graph = getGraph(); + return createNode(label, id, getCurrentGraph()); + } + + @Override + public Node createNode(String label, String id, Graph graph) { if (graph.getNode(id) == null) { - Node newNode = buildNode(label, id); + Node newNode = buildNode(graph, label, id); graph.addNode(newNode); return newNode; } else { @@ -96,61 +99,74 @@ public Node createNode(String label, String id) { } } + @Override public Node duplicateNode(Node node) { - HierarchicalGraph hg = getHierarchicalGraph(); + Graph g = getCurrentGraph(); - Node copy = copyNodeRecursively(node, hg.getParent(node), hg);//Add copy to the same level as the original node + Node copy = copyNode(node, g); return copy; } + @Override public void duplicateNodes(Node[] nodes) { for (Node n : nodes) { duplicateNode(n); } } + @Override public Edge createEdge(Node source, Node target, boolean directed) { - Edge newEdge; - if (directed) { - newEdge = buildEdge(source, target, true); - if (getDirectedGraph().addEdge(newEdge)) {//The edge will be created if it does not already exist. - return newEdge; - } else { - return null; - } - } else { - newEdge = buildEdge(source, target, false); - if (getUndirectedGraph().addEdge(newEdge)) {//The edge will be created if it does not already exist. - return newEdge; - } else { - return null; - } - } + return createEdge(null, source, target, directed, getCurrentGraph()); } + @Override + public Edge createEdge(Node source, Node target, boolean directed, Graph graph) { + return createEdge(null, source, target, directed, graph); + } + + @Override public Edge createEdge(String id, Node source, Node target, boolean directed) { - Edge newEdge; - if (source != target) {//Cannot create self-loop - if (directed) { - newEdge = buildEdge(id, source, target, true); - if (getDirectedGraph().addEdge(newEdge)) {//The edge will be created if it does not already exist. - return newEdge; - } else { - return null; - } - } else { - newEdge = buildEdge(id, source, target, false); - if (getUndirectedGraph().addEdge(newEdge)) {//The edge will be created if it does not already exist. - return newEdge; - } else { - return null; - } + return createEdge(id, source, target, directed, getCurrentGraph()); + } + + @Override + public Edge createEdge(Node source, Node target, boolean directed, Object typeLabel) { + return createEdge(null, source, target, directed, typeLabel, getCurrentGraph()); + } + + @Override + public Edge createEdge(Node source, Node target, boolean directed, Object typeLabel, Graph graph) { + return createEdge(null, source, target, directed, typeLabel, graph); + } + + @Override + public Edge createEdge(String id, Node source, Node target, boolean directed, Object typeLabel) { + return createEdge(id, source, target, directed, typeLabel, getCurrentGraph()); + } + + @Override + public Edge createEdge(String id, Node source, Node target, boolean directed, Graph graph) { + return createEdge(id, source, target, directed, null, graph); + } + + @Override + public Edge createEdge(String id, Node source, Node target, boolean directed, Object typeLabel, Graph graph) { + Edge newEdge = buildEdge(graph, id, source, target, directed, typeLabel); + try { + if (graph.addEdge(newEdge)) {//The edge will be created if it does not already exist. + return newEdge; } - } else { - return null; + } catch (Exception e) { + Logger.getLogger("").log( + Level.SEVERE, + "Error when adding edge [id = {0}, source = {1}, target = {2}, directed = {3}, typeLabel = {4}] to the graph. Exception message: {5}", + new Object[] {id, source.getId(), target.getId(), directed, typeLabel, e.getMessage()} + ); } + return null; } + @Override public void createEdges(Node source, Node[] allNodes, boolean directed) { for (Node n : allNodes) { if (n != source) { @@ -159,28 +175,33 @@ public void createEdges(Node source, Node[] allNodes, boolean directed) { } } + @Override public void deleteNode(Node node) { - removeNode(node, getGraph()); + removeNode(node, getCurrentGraph()); } + @Override public void deleteNodes(Node[] nodes) { - Graph graph = getGraph(); + Graph graph = getCurrentGraph(); for (Node node : nodes) { removeNode(node, graph); } } + @Override public void deleteEdge(Edge edge) { - removeEdge(edge, getGraph()); + removeEdge(edge, getCurrentGraph()); } + @Override public void deleteEdges(Edge[] edges) { - Graph graph = getGraph(); + Graph graph = getCurrentGraph(); for (Edge edge : edges) { removeEdge(edge, graph); } } + @Override public void deleteEdgeWithNodes(Edge edge, boolean deleteSource, boolean deleteTarget) { if (deleteSource) { deleteNode(edge.getSource()); @@ -188,164 +209,88 @@ public void deleteEdgeWithNodes(Edge edge, boolean deleteSource, boolean deleteT if (deleteTarget) { deleteNode(edge.getTarget()); } - removeEdge(edge, getGraph());//If no node is deleted, we need to remove the edge. + removeEdge(edge, getCurrentGraph());//If no node is deleted, we need to remove the edge. } + @Override public void deleteEdgesWithNodes(Edge[] edges, boolean deleteSource, boolean deleteTarget) { for (Edge edge : edges) { deleteEdgeWithNodes(edge, deleteSource, deleteTarget); } } - public boolean groupNodes(Node[] nodes) { - if (canGroupNodes(nodes)) { - HierarchicalGraph graph = getHierarchicalGraph(); - try { - float centroidX = 0; - float centroidY = 0; - int len = 0; - float sizes = 0; - float r = 0; - float g = 0; - float b = 0; - Node group = graph.groupNodes(nodes); - group.getNodeData().setLabel(NbBundle.getMessage(GraphElementsControllerImpl.class, "Group.nodeCount.label", nodes.length)); - group.getNodeData().setSize(10f); - for (Node child : nodes) { - centroidX += child.getNodeData().x(); - centroidY += child.getNodeData().y(); - len++; - sizes += child.getNodeData().getSize() / 10f; - r += child.getNodeData().r(); - g += child.getNodeData().g(); - b += child.getNodeData().b(); - } - centroidX /= len; - centroidY /= len; - group.getNodeData().setSize(sizes); - group.getNodeData().setColor(r / len, g / len, b / len); - group.getNodeData().setX(centroidX); - group.getNodeData().setY(centroidY); - } catch (Exception e) { - graph.readUnlockAll(); - NotifyDescriptor.Message nd = new NotifyDescriptor.Message(e.getMessage()); - DialogDisplayer.getDefault().notifyLater(nd); - return false; - } - return true; - } else { - return false; - } - } - - public boolean canGroupNodes(Node[] nodes) { - HierarchicalGraph hg = getHierarchicalGraph(); - Node parent = hg.getParent(nodes[0]); - for (Node n : nodes) { - if (hg.getParent(n) != parent) { - return false; - } - } - return true; - } - - public boolean ungroupNode(Node node) { - if (canUngroupNode(node)) { - HierarchicalGraph hg = getHierarchicalGraph(); - hg.ungroupNodes(node); - return true; - } else { - return false; - } - } - - public void ungroupNodes(Node[] nodes) { - for (Node n : nodes) { - ungroupNode(n); - } - } - - public boolean ungroupNodeRecursively(Node node) { - if (canUngroupNode(node)) { - HierarchicalGraph hg = getHierarchicalGraph(); - //We can get directly all descendant nodes withoud using recursion and break the groups: - ungroupNodes(hg.getDescendant(node).toArray()); - ungroupNode(node); - return true; - } else { - return false; - } - } - - public void ungroupNodesRecursively(Node[] nodes) { - for (Node n : nodes) { - ungroupNodeRecursively(n); - } - } - - public boolean canUngroupNode(Node node) { - boolean canUngroup; - HierarchicalGraph hg = getHierarchicalGraph(); - canUngroup = getNodeChildrenCount(hg, node) > 0;//The node has children - return canUngroup; - } - - public Node mergeNodes(Node[] nodes, Node selectedNode, AttributeRowsMergeStrategy[] mergeStrategies, boolean deleteMergedNodes) { - AttributeTable nodesTable = Lookup.getDefault().lookup(AttributeController.class).getModel().getNodeTable(); + @Override + public Node mergeNodes(Graph graph, Node[] nodes, Node selectedNode, Column[] columns, + AttributeRowsMergeStrategy[] mergeStrategies, boolean deleteMergedNodes) { + Table edgesTable = graph.getModel().getEdgeTable(); if (selectedNode == null) { selectedNode = nodes[0];//Use first node as selected node if null } - + //Create empty new node: - Node newNode = createNode(""); + Node newNode = createNode("", null, graph); //Set properties (position, size and color) using the selected node properties: - NodeData newNodeData = newNode.getNodeData(); - NodeData selectedNodeData = selectedNode.getNodeData(); - newNodeData.setX(selectedNodeData.x()); - newNodeData.setY(selectedNodeData.y()); - newNodeData.setZ(selectedNodeData.z()); - newNodeData.setSize(selectedNodeData.getSize()); - newNodeData.setColor(selectedNodeData.r(), selectedNodeData.g(), selectedNodeData.b()); - newNodeData.setAlpha(selectedNodeData.alpha()); - - //Prepare node rows: - Attributes[] rows = new Attributes[nodes.length]; - for (int i = 0; i < nodes.length; i++) { - rows[i] = nodes[i].getAttributes(); - } + newNode.setPosition(selectedNode.x(), selectedNode.y(), selectedNode.z()); + + newNode.setSize(selectedNode.size()); + + newNode.setR(selectedNode.r()); + newNode.setG(selectedNode.g()); + newNode.setB(selectedNode.b()); + newNode.setAlpha(selectedNode.alpha()); + + newNode.getTextProperties().setR(selectedNode.getTextProperties().getR()); + newNode.getTextProperties().setG(selectedNode.getTextProperties().getG()); + newNode.getTextProperties().setB(selectedNode.getTextProperties().getB()); + newNode.getTextProperties().setAlpha(selectedNode.getTextProperties().getAlpha()); + newNode.getTextProperties().setSize(selectedNode.getTextProperties().getSize()); //Merge attributes: AttributeColumnsController ac = Lookup.getDefault().lookup(AttributeColumnsController.class); - ac.mergeRowsValues(nodesTable, mergeStrategies, rows, selectedNode.getAttributes(), newNode.getAttributes()); + ac.mergeRowsValues(columns, mergeStrategies, nodes, selectedNode, newNode); - Set nodesSet=new HashSet(); + Set nodesSet = new HashSet<>(); nodesSet.addAll(Arrays.asList(nodes)); - + //Assign edges to the new node: Edge newEdge; for (Node node : nodes) { for (Edge edge : getNodeEdges(node)) { + Node newEdgeSource; + Node newEdgeTarget; if (edge.getSource() == node) { + newEdgeSource = newNode; if (nodesSet.contains(edge.getTarget())) { - newEdge = createEdge(newNode, newNode, edge.isDirected());//Self loop because of edge between merged nodes + newEdgeTarget = newNode;//Self loop because of edge between merged nodes } else { - newEdge = createEdge(newNode, edge.getTarget(), edge.isDirected()); + newEdgeTarget = edge.getTarget(); } } else { + newEdgeTarget = newNode; if (nodesSet.contains(edge.getSource())) { - newEdge = createEdge(newNode, newNode, edge.isDirected());//Self loop because of edge between merged nodes + newEdgeSource = newNode;//Self loop because of edge between merged nodes } else { - newEdge = createEdge(edge.getSource(), newNode, edge.isDirected()); + newEdgeSource = edge.getSource(); } } + if (graph.getEdge(newEdgeSource, newEdgeTarget) != null) { + //This edge already exists + continue; + } + + newEdge = createEdge(newEdgeSource, newEdgeTarget, edge.isDirected(), edge.getTypeLabel(), graph); if (newEdge != null) {//Edge may not be created if repeated //Copy edge attributes: - AttributeRow row = (AttributeRow) edge.getAttributes(); - for (int i = 0; i < row.countValues(); i++) { - if (row.getAttributeValueAt(i).getColumn().getIndex() != PropertiesColumn.EDGE_ID.getIndex()) { - newEdge.getAttributes().setValue(i, row.getValue(i)); + for (Column column : edgesTable) { + if (!column.isReadOnly()) { + Object value = edge.getAttribute(column); + if (value == null) { + newEdge.removeAttribute(column); + } else { + newEdge.setAttribute(column, edge.getAttribute(column)); + } } } } @@ -360,128 +305,53 @@ public Node mergeNodes(Node[] nodes, Node selectedNode, AttributeRowsMergeStrate return newNode; } - public boolean moveNodeToGroup(Node node, Node group) { - if (canMoveNodeToGroup(node, group)) { - getHierarchicalGraph().moveToGroup(node, group); - return true; - } else { - return false; - } - } - - public void moveNodesToGroup(Node[] nodes, Node group) { - for (Node n : nodes) { - moveNodeToGroup(n, group); - } - } - - public Node[] getAvailableGroupsToMoveNodes(Node[] nodes) { - if (canGroupNodes(nodes)) { - HierarchicalGraph hg = getHierarchicalGraph(); - Set nodesSet = new HashSet(); - nodesSet.addAll(Arrays.asList(nodes)); - - //All have the same parent, get children and check what of them are groups and are not in the nodes array: - Node parent = hg.getParent(nodes[0]); - Node[] possibleGroups; - //If no parent, get nodes at level 0: - if (parent != null) { - possibleGroups = hg.getChildren(parent).toArray(); - } else { - possibleGroups = hg.getNodes(0).toArray(); - } - ArrayList availableGroups = new ArrayList(); - - for (Node n : possibleGroups) { - if (!nodesSet.contains(n) && getNodeChildrenCount(hg, n) > 0) { - availableGroups.add(n); - } - } - - return availableGroups.toArray(new Node[0]); - } else { - return null; - } - } - - public boolean canMoveNodeToGroup(Node node, Node group) { - HierarchicalGraph hg = getHierarchicalGraph(); - return node != group && hg.getParent(node) == hg.getParent(group) && canUngroupNode(group); - } - - public boolean removeNodeFromGroup(Node node) { - if (isNodeInGroup(node)) { - HierarchicalGraph hg = getHierarchicalGraph(); - Node parent = hg.getParent(node); - hg.readLock(); - int childrenCount = hg.getChildrenCount(parent); - hg.readUnlock(); - if (childrenCount == 1) { - hg.ungroupNodes(parent);//Break group when the last child is removed. - } else { - hg.removeFromGroup(node); - } - return true; - } else { - return false; - } - } - - public void removeNodesFromGroup(Node[] nodes) { - for (Node n : nodes) { - removeNodeFromGroup(n); - } - } - - public boolean isNodeInGroup(Node node) { - HierarchicalGraph hg = getHierarchicalGraph(); - return hg.getParent(node) != null; - } - + @Override public void setNodeFixed(Node node, boolean fixed) { - node.getNodeData().setFixed(fixed); + node.setFixed(fixed); } + @Override public void setNodesFixed(Node[] nodes, boolean fixed) { for (Node n : nodes) { setNodeFixed(n, fixed); } } + @Override public boolean isNodeFixed(Node node) { - return node.getNodeData().isFixed(); + return node.isFixed(); } + @Override public Node[] getNodeNeighbours(Node node) { - return getGraph().getNeighbors(node).toArray(); + return getCurrentGraph().getNeighbors(node).toArray(); } + @Override public Edge[] getNodeEdges(Node node) { - return getGraph().getEdges(node).toArray(); + return getCurrentGraph().getEdges(node).toArray(); } + @Override public int getNodesCount() { - Graph graph = getGraph(); - graph.readLock(); - int nodesCount = graph.getNodeCount(); - graph.readUnlock(); - return nodesCount; + Graph graph = getCurrentGraph(); + return graph.getNodeCount(); } + @Override public int getEdgesCount() { - Graph graph = getGraph(); - graph.readLock(); - int edgesCount = graph.getEdgeCount(); - graph.readUnlock(); - return edgesCount; + Graph graph = getCurrentGraph(); + return graph.getEdgeCount(); } + @Override public boolean isNodeInGraph(Node node) { - return getGraph().contains(node); + return getCurrentGraph().contains(node); } + @Override public boolean areNodesInGraph(Node[] nodes) { - Graph graph = getGraph(); + Graph graph = getCurrentGraph(); for (Node n : nodes) { if (!graph.contains(n)) { return false; @@ -490,12 +360,14 @@ public boolean areNodesInGraph(Node[] nodes) { return true; } + @Override public boolean isEdgeInGraph(Edge edge) { - return getGraph().contains(edge); + return getCurrentGraph().contains(edge); } + @Override public boolean areEdgesInGraph(Edge[] edges) { - Graph graph = getGraph(); + Graph graph = getCurrentGraph(); for (Edge e : edges) { if (!graph.contains(e)) { return false; @@ -504,81 +376,75 @@ public boolean areEdgesInGraph(Edge[] edges) { return true; } - /************Private methods : ************/ - private Graph getGraph() { - return Lookup.getDefault().lookup(GraphController.class).getModel().getGraph(); - } - - private DirectedGraph getDirectedGraph() { - return Lookup.getDefault().lookup(GraphController.class).getModel().getDirectedGraph(); + /** + * **********Private methods : *********** + */ + private Graph getCurrentGraph() { + return Lookup.getDefault().lookup(GraphController.class).getGraphModel().getGraph(); } - private UndirectedGraph getUndirectedGraph() { - return Lookup.getDefault().lookup(GraphController.class).getModel().getUndirectedGraph(); + private Node buildNode(Graph graph, String label) { + return buildNode(graph, label, null); } - private HierarchicalGraph getHierarchicalGraph() { - return Lookup.getDefault().lookup(GraphController.class).getModel().getHierarchicalGraph(); - } + private Node buildNode(Graph graph, String label, String id) { + Node newNode; + if (id != null) { + newNode = graph.getModel().factory().newNode(id); + } else { + newNode = graph.getModel().factory().newNode(); + } + newNode.setSize(DEFAULT_NODE_SIZE); + newNode.setLabel(label); - private Node buildNode(String label) { - Node newNode = Lookup.getDefault().lookup(GraphController.class).getModel().factory().newNode(); - newNode.getNodeData().setSize(DEFAULT_NODE_SIZE); - newNode.getNodeData().setLabel(label); - return newNode; - } + //Set random position to the node: + newNode.setX((float) ((0.01 + Math.random()) * 1000) - 500); + newNode.setY((float) ((0.01 + Math.random()) * 1000) - 500); - private Node buildNode(String label, String id) { - Node newNode = Lookup.getDefault().lookup(GraphController.class).getModel().factory().newNode(id); - newNode.getNodeData().setSize(DEFAULT_NODE_SIZE); - newNode.getNodeData().setLabel(label); return newNode; } - private Edge buildEdge(Node source, Node target, boolean directed) { - Edge newEdge = Lookup.getDefault().lookup(GraphController.class).getModel().factory().newEdge(source, target, DEFAULT_EDGE_WEIGHT, directed); - return newEdge; - } + private Edge buildEdge(Graph graph, String id, Node source, Node target, boolean directed, Object typeLabel) { + int type; + if (typeLabel == null) { + type = graph.getModel().getEdgeType(null); + } else { + //Create the type if missing: + type = graph.getModel().addEdgeType(typeLabel); + } - private Edge buildEdge(String id, Node source, Node target, boolean directed) { - Edge newEdge = Lookup.getDefault().lookup(GraphController.class).getModel().factory().newEdge(id, source, target, DEFAULT_EDGE_WEIGHT, directed); + Edge newEdge; + if (id != null) { + newEdge = graph.getModel().factory().newEdge(id, source, target, type, DEFAULT_EDGE_WEIGHT, directed); + } else { + newEdge = graph.getModel().factory().newEdge(source, target, type, DEFAULT_EDGE_WEIGHT, directed); + } return newEdge; } - private Node copyNodeRecursively(Node node, Node parent, HierarchicalGraph hg) { - NodeData nodeData = node.getNodeData(); - Node copy = buildNode(nodeData.getLabel()); - NodeData copyData = copy.getNodeData(); + private Node copyNode(Node node, Graph graph) { + Node copy = buildNode(graph, node.getLabel()); //Copy properties (position, size and color): - copyData.setX(nodeData.x()); - copyData.setY(nodeData.y()); - copyData.setZ(nodeData.z()); - copyData.setSize(nodeData.getSize()); - copyData.setColor(nodeData.r(), nodeData.g(), nodeData.b()); - copyData.setAlpha(nodeData.alpha()); + copy.setX(node.x()); + copy.setY(node.y()); + copy.setZ(node.z()); + copy.setSize(node.size()); + copy.setR(node.r()); + copy.setG(node.g()); + copy.setB(node.b()); + copy.setAlpha(node.alpha()); + + Table nodeTable = graph.getModel().getNodeTable(); //Copy attributes: - AttributeRow row = (AttributeRow) nodeData.getAttributes(); - for (int i = 0; i < row.countValues(); i++) { - if (row.getAttributeValueAt(i).getColumn().getIndex() != PropertiesColumn.NODE_ID.getIndex()) { - copyData.getAttributes().setValue(i, row.getValue(i)); + for (Column column : nodeTable) { + if (!column.isReadOnly()) { + copy.setAttribute(column, node.getAttribute(column)); } } - if (parent != null) { - hg.addNode(copy, parent); - } else { - hg.addNode(copy); - } - - //Copy the children of the original node if any: - Node[] children = hg.getChildren(node).toArray(); - if (children != null) { - for (Node child : children) { - copyNodeRecursively(child, copy, hg); - } - } + graph.addNode(copy); return copy; } @@ -590,11 +456,4 @@ private void removeNode(Node node, Graph graph) { private void removeEdge(Edge edge, Graph graph) { graph.removeEdge(edge); } - - private int getNodeChildrenCount(HierarchicalGraph hg, Node n) { - hg.readLock(); - int childrenCount = hg.getChildrenCount(n); - hg.readUnlock(); - return childrenCount; - } } diff --git a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/impl/SearchReplaceControllerImpl.java b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/impl/SearchReplaceControllerImpl.java index bfc393ef3d..8da8656ed3 100644 --- a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/impl/SearchReplaceControllerImpl.java +++ b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/impl/SearchReplaceControllerImpl.java @@ -39,33 +39,37 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.impl; import java.util.Set; import java.util.regex.Matcher; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeController; -import org.gephi.data.attributes.api.AttributeRow; -import org.gephi.data.attributes.api.AttributeTable; import org.gephi.datalab.api.AttributeColumnsController; import org.gephi.datalab.api.GraphElementsController; import org.gephi.datalab.api.SearchReplaceController; -import org.gephi.datalab.api.SearchReplaceController.SearchResult; -import org.gephi.graph.api.Attributes; +import org.gephi.graph.api.AttributeUtils; +import org.gephi.graph.api.Column; import org.gephi.graph.api.Edge; +import org.gephi.graph.api.Element; +import org.gephi.graph.api.GraphController; +import org.gephi.graph.api.GraphModel; import org.gephi.graph.api.Node; +import org.gephi.graph.api.Table; +import org.gephi.graph.api.TimeFormat; +import java.time.ZoneId; import org.openide.util.Lookup; import org.openide.util.lookup.ServiceProvider; /** - * Implementation of the SearchReplaceController interface - * declared in the Data Laboratory API. + * Implementation of the SearchReplaceController interface declared in the Data Laboratory API. + * + * @author Eduardo Ramos * @see SearchReplaceController - * @author Eduardo Ramos */ @ServiceProvider(service = SearchReplaceController.class) public class SearchReplaceControllerImpl implements SearchReplaceController { + @Override public SearchResult findNext(SearchOptions searchOptions) { int row = 0; int column = 0; @@ -80,7 +84,8 @@ public SearchResult findNext(SearchOptions searchOptions) { result = findOnNodes(searchOptions, row, column); if (result == null && searchOptions.isLoopToBeginning()) { searchOptions.resetStatus(); - return findOnNodes(searchOptions, 0, 0);//If the end of data is reached with no success, try to search again from the beginning as a loop + return findOnNodes(searchOptions, 0, + 0);//If the end of data is reached with no success, try to search again from the beginning as a loop } else { return result; } @@ -88,60 +93,71 @@ public SearchResult findNext(SearchOptions searchOptions) { result = findOnEdges(searchOptions, row, column); if (result == null && searchOptions.isLoopToBeginning()) { searchOptions.resetStatus(); - return findOnEdges(searchOptions, 0, 0);//If the end of data is reached with no success, try to search again from the beginning as a loop + return findOnEdges(searchOptions, 0, + 0);//If the end of data is reached with no success, try to search again from the beginning as a loop } else { return result; } } } + @Override public SearchResult findNext(SearchResult result) { return findNext(result.getSearchOptions()); } + @Override public boolean canReplace(SearchResult result) { - AttributeController ac = Lookup.getDefault().lookup(AttributeController.class); - AttributeTable table; - AttributeColumn column; + GraphController gc = Lookup.getDefault().lookup(GraphController.class); + Table table; + Column column; if (result.getFoundNode() != null) { - table = ac.getModel().getNodeTable(); + table = gc.getGraphModel().getNodeTable(); column = table.getColumn(result.getFoundColumnIndex()); } else { - table = ac.getModel().getEdgeTable(); + table = gc.getGraphModel().getEdgeTable(); column = table.getColumn(result.getFoundColumnIndex()); } return Lookup.getDefault().lookup(AttributeColumnsController.class).canChangeColumnData(column); } + @Override public SearchResult replace(SearchResult result, String replacement) { if (result == null) { throw new IllegalArgumentException(); } if (!canReplace(result)) { - //Data has changed and the replacement can't be done, continue finding. + //Data has changed and the replacement can't be done, continue looking. return findNext(result);//Go to next search result } - AttributeController ac = Lookup.getDefault().lookup(AttributeController.class); + GraphController gc = Lookup.getDefault().lookup(GraphController.class); Object value; String str; - Attributes attributes; - AttributeColumn column; + Element attributes; + Column column; if (!result.getSearchOptions().isUseRegexReplaceMode()) { - replacement = Matcher.quoteReplacement(replacement);//Avoid using groups and other regex aspects in the replacement + replacement = + Matcher.quoteReplacement(replacement);//Avoid using groups and other regex aspects in the replacement } try { //Get value to re-match and replace: if (result.getFoundNode() != null) { - attributes = result.getFoundNode().getNodeData().getAttributes(); - column = ac.getModel().getNodeTable().getColumn(result.getFoundColumnIndex()); + attributes = result.getFoundNode(); + column = gc.getGraphModel().getNodeTable().getColumn(result.getFoundColumnIndex()); } else { - attributes = result.getFoundEdge().getEdgeData().getAttributes(); - column = ac.getModel().getEdgeTable().getColumn(result.getFoundColumnIndex()); + attributes = result.getFoundEdge(); + column = gc.getGraphModel().getEdgeTable().getColumn(result.getFoundColumnIndex()); } - value = attributes.getValue(result.getFoundColumnIndex()); - str = value != null ? value.toString() : ""; + + GraphModel graphModel = column.getTable().getGraph().getModel(); + TimeFormat timeFormat = graphModel.getTimeFormat(); + ZoneId timeZone = graphModel.getTimeZone(); + + value = attributes.getAttribute(column); + + str = value != null ? AttributeUtils.print(value, timeFormat, timeZone) : ""; StringBuffer sb = new StringBuffer(); //Match and replace the result: @@ -150,28 +166,30 @@ public SearchResult replace(SearchResult result, String replacement) { matcher.appendReplacement(sb, replacement); int replaceLong = sb.length(); matcher.appendTail(sb); - str = str.substring(0, result.getStart()) + sb.toString(); + str = str.substring(0, result.getStart()) + sb; result.getSearchOptions().setRegionStart(result.getStart() + replaceLong); Lookup.getDefault().lookup(AttributeColumnsController.class).setAttributeValue(str, attributes, column); return findNext(result);//Go to next search result } else { - //Data has changed and the replacement can't be done, continue finding. + //Data has changed and the replacement can't be done, continue looking. return findNext(result);//Go to next search result } } catch (Exception ex) { if (ex instanceof IndexOutOfBoundsException) { throw new IndexOutOfBoundsException();//Rethrow the exception when it is caused by a bad regex replacement } - //Data has changed (a lot of different errors can happen) and the replacement can't be done, continue finding. + //Data has changed (a lot of different errors can happen) and the replacement can't be done, continue looking. return findNext(result);//Go to next search result } } + @Override public int replaceAll(SearchOptions searchOptions, String replacement) { int replacementsCount = 0; searchOptions.resetStatus(); - searchOptions.setLoopToBeginning(false);//To avoid infinite loop when the replacement parse makes it to match again. + searchOptions + .setLoopToBeginning(false);//To avoid infinite loop when the replacement parse makes it to match again. SearchResult result; result = findNext(searchOptions); while (result != null) { @@ -191,20 +209,32 @@ private SearchResult findOnNodes(SearchOptions searchOptions, int rowIndex, int SearchResult result = null; Set columnsToSearch = searchOptions.getColumnsToSearch(); boolean searchAllColumns = columnsToSearch.isEmpty(); + Table table = Lookup.getDefault().lookup(GraphController.class).getGraphModel().getNodeTable(); Node[] nodes = searchOptions.getNodesToSearch(); - AttributeRow row; + Node row; Object value; + + TimeFormat timeFormat = table.getGraph().getModel().getTimeFormat(); + ZoneId timeZone = table.getGraph().getModel().getTimeZone(); + + // Use toArray() to get a compact, gap-free snapshot of active columns. + // Column indices in the store may not be contiguous after deletions, so + // countColumns() cannot safely be used as an upper bound for index-based access. + Column[] columns = table.toArray(); + for (; rowIndex < nodes.length; rowIndex++) { if (!gec.isNodeInGraph(nodes[rowIndex])) { continue;//Make sure node is still in graph when continuing a search } - row = (AttributeRow) nodes[rowIndex].getNodeData().getAttributes(); - for (; columnIndex < row.countValues(); columnIndex++) { - if (searchAllColumns || columnsToSearch.contains(columnIndex)) { - value = row.getValue(columnIndex); - result = matchRegex(value, searchOptions, rowIndex, columnIndex); + row = nodes[rowIndex]; + for (; columnIndex < columns.length; columnIndex++) { + Column column = columns[columnIndex]; + if (searchAllColumns || columnsToSearch.contains(column.getIndex())) { + value = row.getAttribute(column); + result = matchRegex(value, searchOptions, rowIndex, columnIndex, timeFormat, timeZone); if (result != null) { result.setFoundNode(nodes[rowIndex]); + result.setFoundColumnIndex(column.getIndex()); return result; } } @@ -221,20 +251,32 @@ private SearchResult findOnEdges(SearchOptions searchOptions, int rowIndex, int SearchResult result = null; Set columnsToSearch = searchOptions.getColumnsToSearch(); boolean searchAllColumns = columnsToSearch.isEmpty(); + Table table = Lookup.getDefault().lookup(GraphController.class).getGraphModel().getEdgeTable(); Edge[] edges = searchOptions.getEdgesToSearch(); - AttributeRow row; + Edge row; Object value; + + TimeFormat timeFormat = table.getGraph().getModel().getTimeFormat(); + ZoneId timeZone = table.getGraph().getModel().getTimeZone(); + + // Use toArray() to get a compact, gap-free snapshot of active columns. + // Column indices in the store may not be contiguous after deletions, so + // countColumns() cannot safely be used as an upper bound for index-based access. + Column[] columns = table.toArray(); + for (; rowIndex < edges.length; rowIndex++) { if (!gec.isEdgeInGraph(edges[rowIndex])) { continue;//Make sure edge is still in graph when continuing a search } - row = (AttributeRow) edges[rowIndex].getEdgeData().getAttributes(); - for (; columnIndex < row.countValues(); columnIndex++) { - if (searchAllColumns || columnsToSearch.contains(columnIndex)) { - value = row.getValue(columnIndex); - result = matchRegex(value, searchOptions, rowIndex, columnIndex); + row = edges[rowIndex]; + for (; columnIndex < columns.length; columnIndex++) { + Column column = columns[columnIndex]; + if (searchAllColumns || columnsToSearch.contains(column.getIndex())) { + value = row.getAttribute(column); + result = matchRegex(value, searchOptions, rowIndex, columnIndex, timeFormat, timeZone); if (result != null) { result.setFoundEdge(edges[rowIndex]); + result.setFoundColumnIndex(column.getIndex()); return result; } } @@ -246,9 +288,12 @@ private SearchResult findOnEdges(SearchOptions searchOptions, int rowIndex, int return result; } - private SearchResult matchRegex(Object value, SearchOptions searchOptions, int rowIndex, int columnIndex) { + private SearchResult matchRegex(Object value, SearchOptions searchOptions, int rowIndex, int columnIndex, + TimeFormat timeFormat, ZoneId timeZone) { boolean found; - String str = value != null ? value.toString() : ""; + + String str = value != null ? AttributeUtils.print(value, timeFormat, timeZone) : ""; + Matcher matcher = searchOptions.getRegexPattern().matcher(str); if (str.isEmpty()) { if (searchOptions.getRegionStart() > 0) { @@ -261,7 +306,8 @@ private SearchResult matchRegex(Object value, SearchOptions searchOptions, int r if (searchOptions.isOnlyMatchWholeAttributeValue()) { found = matcher.matches();//Try to match the whole value } else { - matcher.region(searchOptions.getRegionStart(), str.length());//Try to match a group in the remaining part of the value + matcher.region(searchOptions.getRegionStart(), + str.length());//Try to match a group in the remaining part of the value found = matcher.find(); } @@ -275,8 +321,10 @@ private SearchResult matchRegex(Object value, SearchOptions searchOptions, int r if (str.isEmpty()) { end++;//To be able to search on next values when the value matched is empty } - searchOptions.setRegionStart(end);//Start next search after this match in this value. (If it is greater than the length of the value, it will be discarded at the beginning of this method next time) - return new SearchResult(searchOptions, null, null, rowIndex, columnIndex, matcher.start(), matcher.end());//Set node or edge values later + searchOptions.setRegionStart( + end);//Start next search after this match in this value. (If it is greater than the length of the value, it will be discarded at the beginning of this method next time) + return new SearchResult(searchOptions, null, null, rowIndex, columnIndex, matcher.start(), + matcher.end());//Set node or edge values later } else { return null; } diff --git a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/ContextMenuItemManipulator.java b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/ContextMenuItemManipulator.java index 4a8ef43352..d4baf5c09b 100644 --- a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/ContextMenuItemManipulator.java +++ b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/ContextMenuItemManipulator.java @@ -1,4 +1,3 @@ - /* Copyright 2008-2010 Gephi Authors : Eduardo Ramos @@ -40,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.spi; import org.gephi.datalab.spi.nodes.NodesManipulator; @@ -48,7 +48,8 @@ Development and Distribution License("CDDL") (collectively, the /** *

    This interface defines a common extension for the manipulators that appear as context menu items * such as NodesManipulator, EdgesManipulator and GraphContextMenuItem (from Visualization API)

    - * @author Eduardo Ramos + * + * @author Eduardo Ramos * @see NodesManipulator */ public interface ContextMenuItemManipulator extends Manipulator { @@ -61,12 +62,14 @@ public interface ContextMenuItemManipulator extends Manipulator { * must return the subitem(s) with the mnemonic even when it has not been setup. * If you don't need a mnemonic, return null if the item is not setup.

    *

    Returned items have to be of the same type as the subinterface (NodesManipulator for example)

    - * @return + * + * @return sub items */ ContextMenuItemManipulator[] getSubItems(); /** * Indicates if this item has to appear in the context menu at all + * * @return True to show, false otherwise */ boolean isAvailable(); @@ -74,6 +77,7 @@ public interface ContextMenuItemManipulator extends Manipulator { /** * Optional. Allows to declare a mnemonic key for this item in the menu. * There should not be 2 items with the same mnemonic at the same time. + * * @return Integer from KeyEvent values or null */ Integer getMnemonicKey(); diff --git a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/DialogControls.java b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/DialogControls.java index c333afaab6..d893ff4985 100644 --- a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/DialogControls.java +++ b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/DialogControls.java @@ -39,25 +39,29 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.spi; /** *

    An instance of this interface is passed to any type of manipulator UI, allowing the * UIs to enable/disable the dialog controls

    *

    For now allows to enable/disable the Ok button of the dialog

    - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public interface DialogControls { - /** - * Enable or disable the Ok button of the dialog for the UI. - * @param enabled - */ - void setOkButtonEnabled(boolean enabled); - /** * Indicates if ok button is enabled for this dialog at the moment + * * @return true if ok button is enabled */ boolean isOkButtonEnabled(); + + /** + * Enable or disable the Ok button of the dialog for the UI. + * + * @param enabled + */ + void setOkButtonEnabled(boolean enabled); } diff --git a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/Manipulator.java b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/Manipulator.java index 211fdcff78..120fe1b235 100644 --- a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/Manipulator.java +++ b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/Manipulator.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.spi; import javax.swing.Icon; @@ -58,8 +59,9 @@ Development and Distribution License("CDDL") (collectively, the *

    Used for different manipulators such as NodesManipulator, EdgesManipulator and GeneralActionsManipulator.

    *

    The only methods that are called before setting up a manipulator (subtypes have special setup methods) with the data are getType and getPosition. * This way, the other methods behaviour can depend on the data that has been setup before

    + * + * @author Eduardo Ramos * @see NodesManipulator - * @author Eduardo Ramos */ public interface Manipulator { @@ -73,12 +75,14 @@ public interface Manipulator { *

    Return name to show for this Manipulator on the ui.

    *

    Implementations can provide different names depending on the data this * Manipulator has (for example depending on the number of nodes in a NodesManipulator).

    + * * @return Name to show at current time and conditions */ String getName(); /** * Description of the Manipulator. + * * @return Description */ String getDescription(); @@ -86,12 +90,14 @@ public interface Manipulator { /** * Indicates if this Manipulator has to be executable. * Implementations should evaluate the current data and conditions. + * * @return True if it has to be executable, false otherwise */ boolean canExecute(); /** * Returns a ManipulatorUI for this Manipulator if it needs one. + * * @return ManipulatorUI for this Manipulator or null */ ManipulatorUI getUI(); @@ -99,6 +105,7 @@ public interface Manipulator { /** * Type of manipulator. This is used for separating the manipulators * in groups when shown, using popup separators. First types to show will be the lesser. + * * @return Type of this manipulator */ int getType(); @@ -106,12 +113,14 @@ public interface Manipulator { /** * Returns a position value that indicates the position * of this Manipulator in its type group. Less means upper. + * * @return This Manipulator position */ int getPosition(); /** * Returns an icon for this manipulator if necessary. + * * @return Icon for the manipulator or null */ Icon getIcon(); diff --git a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/ManipulatorUI.java b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/ManipulatorUI.java index 7c10edeb8d..ed260068e0 100644 --- a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/ManipulatorUI.java +++ b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/ManipulatorUI.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.spi; import javax.swing.JPanel; @@ -48,13 +49,15 @@ Development and Distribution License("CDDL") (collectively, the *

    Must provide a JPanel, a window name/title and indicate if it is modal.

    *

    The panel will be shown in a dialog with Ok/Cancel options only.

    *

    The ok button can be enabled/disabled with the DialogControls instance passed at setup

    - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public interface ManipulatorUI { /** * Prepare this UI to be able to interact with its Manipulator. - * @param m Manipulator for the UI + * + * @param m Manipulator for the UI * @param dialogControls Used to enable/disable the dialog controls */ void setup(Manipulator m, DialogControls dialogControls); @@ -66,19 +69,22 @@ public interface ManipulatorUI { /** * Returns name/title for the window + * * @return Name/title for the window */ String getDisplayName(); /** * Returns a settings panel instance for this Manipulator. + * * @return Settings panel instance */ - public JPanel getSettingsPanel(); + JPanel getSettingsPanel(); /** * Indicates if the created dialog has to be modal + * * @return True if modal, false otherwise */ - public boolean isModal(); + boolean isModal(); } diff --git a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/columns/AttributeColumnsManipulator.java b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/columns/AttributeColumnsManipulator.java index ad03289144..74232f3460 100644 --- a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/columns/AttributeColumnsManipulator.java +++ b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/columns/AttributeColumnsManipulator.java @@ -1,115 +1,123 @@ - /* -Copyright 2008-2010 Gephi -Authors : Eduardo Ramos -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. + Copyright 2008-2010 Gephi + Authors : Eduardo Ramos + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2011 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.spi.columns; import java.awt.Image; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Table; /** *

    Manipulation action to use for Data Laboratory column manipulator buttons.

    - *

    This special type of manipulator does not need any builder, implementations can be published simply with @ServiceProvider(service = AttributeColumnsManipulator.class) annotation

    + *

    This special type of manipulator does not need any builder, implementations can be published simply with + * @ServiceProvider(service = AttributeColumnsManipulator.class) annotation

    *

    These are shown as drop down buttons and are able to:

    *
      - *
    • Execute an action with 1 column
    • - *
    • Provide a name, description, type and order of appearance (position in group of its type)
    • - *
    • Indicate wether they can be executed on a specific AttributeColumn or not
    • - *
    • Provide and UI or not
    • - *
    • Provide and icon or not
    • + *
    • Execute an action with 1 column
    • + *
    • Provide a name, description, type and order of appearance (position in group of its type)
    • + *
    • Indicate wether they can be executed on a specific AttributeColumn or not
    • + *
    • Provide and UI or not
    • + *
    • Provide and icon or not
    • *
    - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public interface AttributeColumnsManipulator { /** * Execute this AttributeColumnsManipulator with the indicated table and column - * @param table AttributeTable of the column + * + * @param table AttributeTable of the column * @param column AttributeColumn of the table to manipulate */ - void execute(AttributeTable table,AttributeColumn column); + void execute(Table table, Column column); /** * Return name to show for this AttributeColumnsManipulator on the ui. + * * @return Name to show in UI */ String getName(); /** * Description of the AttributeColumnsManipulator. + * * @return Description */ String getDescription(); /** * Indicates if this AttributeColumnsManipulator can manipulate a specific AttributeColumn. + * * @return True if it can manipulate the column, false otherwise */ - boolean canManipulateColumn(AttributeTable table,AttributeColumn column); + boolean canManipulateColumn(Table table, Column column); /** * Returns a ManipulatorUI for this Manipulator if it needs one. - * @param table AttributeTable of the column + * + * @param table AttributeTable of the column * @param column AttributeColumn of the table to manipulate * @return ManipulatorUI for this Manipulator or null */ - AttributeColumnsManipulatorUI getUI(AttributeTable table,AttributeColumn column); + AttributeColumnsManipulatorUI getUI(Table table, Column column); /** - * Type of manipulator. This is used for separating the manipulators - * in groups when shown. First types to show will be the lesser. + * Type of manipulator. This is used for separating the manipulators in groups when shown. First types to show will be the lesser. + * * @return Type of this manipulator */ int getType(); /** - * Returns a position value that indicates the position - * of this AttributeColumnsManipulator in its type group. Less means upper. + * Returns a position value that indicates the position of this AttributeColumnsManipulator in its type group. Less means upper. + * * @return This AttributeColumnsManipulator position */ int getPosition(); /** * Returns an icon for this AttributeColumnsManipulator if necessary. + * * @return Icon for the manipulator or null */ Image getIcon(); diff --git a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/columns/AttributeColumnsManipulatorUI.java b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/columns/AttributeColumnsManipulatorUI.java index 8563f13226..a03755b557 100644 --- a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/columns/AttributeColumnsManipulatorUI.java +++ b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/columns/AttributeColumnsManipulatorUI.java @@ -1,4 +1,3 @@ - /* Copyright 2008-2010 Gephi Authors : Eduardo Ramos @@ -40,30 +39,36 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.spi.columns; import javax.swing.JPanel; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; import org.gephi.datalab.spi.DialogControls; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.GraphModel; +import org.gephi.graph.api.Table; /** *

    UI AttributeColumnsManipulators can provide.

    *

    Must provide a JPanel, a window name/title and indictate if it is modal.

    *

    The panel will be shown in a dialog with Ok/Cancel options only.

    *

    The ok button can be enabled/disabled with the DialogControls instance passed at setup

    - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public interface AttributeColumnsManipulatorUI { /** * Prepare this UI to be able to interact with its AttributeColumnsManipulator. - * @param m Manipulator for the UI - * @param table Table of the column to manipulate - * @param column Column to manipulate + * + * @param m Manipulator for the UI + * @param graphModel Graph model of the table + * @param table Table of the column to manipulate + * @param column Column to manipulate * @param dialogControls Used to enable/disable the dialog controls */ - void setup(AttributeColumnsManipulator m, AttributeTable table, AttributeColumn column, DialogControls dialogControls); + void setup(AttributeColumnsManipulator m, GraphModel graphModel, Table table, Column column, + DialogControls dialogControls); /** * Called when the window is closed or accepted. @@ -72,19 +77,22 @@ public interface AttributeColumnsManipulatorUI { /** * Returns name/title for the window + * * @return Name/title for the window */ String getDisplayName(); /** * Returns a settings panel instance for this AttributeColumnsManipulator. + * * @return Settings panel instance */ - public JPanel getSettingsPanel(); + JPanel getSettingsPanel(); /** * Indicates if the created dialog has to be modal + * * @return True if modal, false otherwise */ - public boolean isModal(); + boolean isModal(); } diff --git a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/columns/merge/AttributeColumnsMergeStrategy.java b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/columns/merge/AttributeColumnsMergeStrategy.java index 1a339a68ef..2608e04443 100644 --- a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/columns/merge/AttributeColumnsMergeStrategy.java +++ b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/columns/merge/AttributeColumnsMergeStrategy.java @@ -39,25 +39,28 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.spi.columns.merge; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; import org.gephi.datalab.spi.Manipulator; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Table; /** *

    Service for defining strategies for merging attribute columns of a table.

    *

    Has the same interface as a manipulator.

    + * + * @author Eduardo Ramos * @see Manipulator - * @author Eduardo Ramos */ -public interface AttributeColumnsMergeStrategy extends Manipulator{ +public interface AttributeColumnsMergeStrategy extends Manipulator { /** * Prepare columns (with their table) for this merge strategy. * At least 1 column will be set up to merge always. - * @param table Table of the columns + * + * @param table Table of the columns * @param columns Columns to merge */ - void setup(AttributeTable table, AttributeColumn[] columns); + void setup(Table table, Column[] columns); } diff --git a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/columns/merge/AttributeColumnsMergeStrategyBuilder.java b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/columns/merge/AttributeColumnsMergeStrategyBuilder.java index f350c0bcdd..3fe2e8820d 100644 --- a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/columns/merge/AttributeColumnsMergeStrategyBuilder.java +++ b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/columns/merge/AttributeColumnsMergeStrategyBuilder.java @@ -39,13 +39,15 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.spi.columns.merge; /** *

    This interface is used for providing AttributeColumnsMergeStrategy instances * using the Netbeans Lookup but avoiding the singleton it causes.

    *

    Each AttributeColumnsMergeStrategy should have a AttributeColumnsMergeStrategyBuilder and publish it with @ServiceProvider(service=AttributeColumnsMergeStrategyBuilder.class) annotation.

    - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public interface AttributeColumnsMergeStrategyBuilder { diff --git a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/edges/EdgesManipulator.java b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/edges/EdgesManipulator.java index 02d13feb9f..5f0be357c6 100644 --- a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/edges/EdgesManipulator.java +++ b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/edges/EdgesManipulator.java @@ -1,4 +1,3 @@ - /* Copyright 2008-2010 Gephi Authors : Eduardo Ramos @@ -40,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.spi.edges; import org.gephi.datalab.spi.ContextMenuItemManipulator; @@ -48,13 +48,15 @@ Development and Distribution License("CDDL") (collectively, the /** * Manipulator for edges. + * + * @author Eduardo Ramos * @see Manipulator - * @author Eduardo Ramos */ -public interface EdgesManipulator extends ContextMenuItemManipulator{ +public interface EdgesManipulator extends ContextMenuItemManipulator { /** * Prepare edges for this action. - * @param edges All selected edges to operate + * + * @param edges All selected edges to operate * @param clickedEdge The right clicked edge of all edges */ void setup(Edge[] edges, Edge clickedEdge); diff --git a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/edges/EdgesManipulatorBuilder.java b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/edges/EdgesManipulatorBuilder.java index bf356f5412..5571f1eb1a 100644 --- a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/edges/EdgesManipulatorBuilder.java +++ b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/edges/EdgesManipulatorBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.spi.edges; /** @@ -46,7 +47,8 @@ Development and Distribution License("CDDL") (collectively, the * using the Netbeans Lookup but avoiding the singleton it causes.

    *

    Each EdgesManipulator should have a EdgesManipulatorBuilder * with @ServiceProvider(service=EdgesManipulatorBuilder.class) annotation to be public.

    - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public interface EdgesManipulatorBuilder { diff --git a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/general/GeneralActionsManipulator.java b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/general/GeneralActionsManipulator.java index 0e026cd297..25ce715687 100644 --- a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/general/GeneralActionsManipulator.java +++ b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/general/GeneralActionsManipulator.java @@ -1,4 +1,3 @@ - /* Copyright 2008-2010 Gephi Authors : Eduardo Ramos @@ -40,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.spi.general; import org.gephi.datalab.spi.Manipulator; @@ -48,8 +48,9 @@ Development and Distribution License("CDDL") (collectively, the *

    Manipulator for general actions that don't need to obtain any data before being executed.

    *

    They are added as buttons in Data table toolbar.

    *

    The implementations don't need a builder and can simply be published with @ServiceProvider(service = GeneralActionsManipulator.class) annotation

    + * + * @author Eduardo Ramos * @see Manipulator - * @author Eduardo Ramos */ public interface GeneralActionsManipulator extends Manipulator { diff --git a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/general/PluginGeneralActionsManipulator.java b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/general/PluginGeneralActionsManipulator.java index cc5c0db32e..b098aff8c8 100644 --- a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/general/PluginGeneralActionsManipulator.java +++ b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/general/PluginGeneralActionsManipulator.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.spi.general; import org.gephi.datalab.spi.Manipulator; @@ -47,8 +48,9 @@ Development and Distribution License("CDDL") (collectively, the *

    This interface defines the same service as GeneralActionsManipulator, with one * only change: the actions are shown in a drop down panel as plugins, * to tell the difference between normal, basic general actions in data laboratory and plugins.

    - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -public interface PluginGeneralActionsManipulator extends Manipulator{ +public interface PluginGeneralActionsManipulator extends Manipulator { } diff --git a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/nodes/NodesManipulator.java b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/nodes/NodesManipulator.java index cb9be1d086..12ed8c8029 100644 --- a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/nodes/NodesManipulator.java +++ b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/nodes/NodesManipulator.java @@ -1,4 +1,3 @@ - /* Copyright 2008-2010 Gephi Authors : Eduardo Ramos @@ -40,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.spi.nodes; import org.gephi.datalab.spi.ContextMenuItemManipulator; @@ -50,13 +50,15 @@ Development and Distribution License("CDDL") (collectively, the *

    Please note that the methods offered in this service are the same as Visualization API GraphContextMenuItem. * It is possible to reuse actions implementations by adding both ServiceProvider annotations.

    * Manipulator for nodes. + * + * @author Eduardo Ramos * @see Manipulator - * @author Eduardo Ramos */ public interface NodesManipulator extends ContextMenuItemManipulator { /** * Prepare nodes for this action. - * @param nodes All selected nodes to operate + * + * @param nodes All selected nodes to operate * @param clickedNode The right clicked node of all nodes */ void setup(Node[] nodes, Node clickedNode); diff --git a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/nodes/NodesManipulatorBuilder.java b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/nodes/NodesManipulatorBuilder.java index 8832188d8a..6754b0415b 100644 --- a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/nodes/NodesManipulatorBuilder.java +++ b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/nodes/NodesManipulatorBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.spi.nodes; /** @@ -46,7 +47,8 @@ Development and Distribution License("CDDL") (collectively, the * using the Netbeans Lookup but avoiding the singleton it causes.

    *

    Each NodesManipulator should have a NodesManipulatorBuilder * with @ServiceProvider(service=NodesManipulatorBuilder.class) annotation to be public.

    - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public interface NodesManipulatorBuilder { diff --git a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/rows/merge/AttributeRowsMergeStrategy.java b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/rows/merge/AttributeRowsMergeStrategy.java index d63b72af44..6712262a2c 100644 --- a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/rows/merge/AttributeRowsMergeStrategy.java +++ b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/rows/merge/AttributeRowsMergeStrategy.java @@ -39,32 +39,36 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.spi.rows.merge; -import org.gephi.data.attributes.api.AttributeColumn; import org.gephi.datalab.spi.Manipulator; -import org.gephi.graph.api.Attributes; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Element; /** *

    Service for defining strategies for merging a column of rows of a table.

    *

    Has the same interface as a manipulator.

    *

    When a RowsMergeStrategy is executed it must reduce all values to one that should be returned later when getReducedValue is called

    + * + * @author Eduardo Ramos * @see Manipulator - * @author Eduardo Ramos */ -public interface AttributeRowsMergeStrategy extends Manipulator{ +public interface AttributeRowsMergeStrategy extends Manipulator { /** * Prepare column and rows for this merge strategy. * At least 1 row will be set up to merge always. - * @param rows Rows to merge + * + * @param rows Rows to merge * @param selectedRow Main row of the row group to merge - * @param column Column to merge + * @param column Column to merge */ - void setup(Attributes[] rows, Attributes selectedRow, AttributeColumn column); - + void setup(Element[] rows, Element selectedRow, Column column); + /** * This method is always called after the strategy is set up and executed. + * * @return Reduced value from all rows and the column */ Object getReducedValue(); diff --git a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/rows/merge/AttributeRowsMergeStrategyBuilder.java b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/rows/merge/AttributeRowsMergeStrategyBuilder.java index 8c3f9a5a36..e922fdffa9 100644 --- a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/rows/merge/AttributeRowsMergeStrategyBuilder.java +++ b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/rows/merge/AttributeRowsMergeStrategyBuilder.java @@ -39,13 +39,15 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.spi.rows.merge; /** *

    This interface is used for providing RowsMergeStrategy instances * using the Netbeans Lookup but avoiding the singleton it causes.

    *

    Each RowsMergeStrategy should have a RowsMergeStrategyBuilder and publish it with @ServiceProvider(service=RowsMergeStrategyBuilder.class) annotation.

    - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public interface AttributeRowsMergeStrategyBuilder { diff --git a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/values/AttributeValueManipulator.java b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/values/AttributeValueManipulator.java index 82306b1e93..e93f91a419 100644 --- a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/values/AttributeValueManipulator.java +++ b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/values/AttributeValueManipulator.java @@ -1,4 +1,3 @@ - /* Copyright 2008-2010 Gephi Authors : Eduardo Ramos @@ -40,23 +39,26 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.spi.values; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeRow; import org.gephi.datalab.spi.Manipulator; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Element; /** * Manipulator for a single AttributeValue (cells) on right click. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -public interface AttributeValueManipulator extends Manipulator{ +public interface AttributeValueManipulator extends Manipulator { /** * Prepare the AttributeValue data. * AttributeRow and AttributeColumn are provided. - * @param row Row + * + * @param row Row * @param column Column */ - void setup (AttributeRow row, AttributeColumn column); + void setup(Element row, Column column); } diff --git a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/values/AttributeValueManipulatorBuilder.java b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/values/AttributeValueManipulatorBuilder.java index 9c0242ad80..f1736b536d 100644 --- a/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/values/AttributeValueManipulatorBuilder.java +++ b/modules/DataLaboratoryAPI/src/main/java/org/gephi/datalab/spi/values/AttributeValueManipulatorBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.spi.values; /** @@ -46,7 +47,8 @@ Development and Distribution License("CDDL") (collectively, the * using the Netbeans Lookup but avoiding the singleton it causes.

    *

    Each AttributeValueManipulator should have a AttributeValueManipulatorBuilder * with @ServiceProvider(service=AttributeValueManipulatorBuilder.class) annotation to be public.

    - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public interface AttributeValueManipulatorBuilder { diff --git a/modules/DataLaboratoryAPI/src/main/nbm/manifest.mf b/modules/DataLaboratoryAPI/src/main/nbm/manifest.mf index 76d3dd3456..efd6683035 100644 --- a/modules/DataLaboratoryAPI/src/main/nbm/manifest.mf +++ b/modules/DataLaboratoryAPI/src/main/nbm/manifest.mf @@ -1,4 +1,6 @@ Manifest-Version: 1.0 AutoUpdate-Essential-Module: true OpenIDE-Module-Localizing-Bundle: org/gephi/datalab/api/Bundle.properties -OpenIDE-Module-Specification-Version: ${gephi.modules.specification.version} \ No newline at end of file +OpenIDE-Module-Specification-Version: ${gephi.modules.specification.version} +OpenIDE-Module-Display-Category: Gephi Core +OpenIDE-Module-Name: Data Laboratory API \ No newline at end of file diff --git a/modules/DataLaboratoryAPI/src/main/nbm/module.xml b/modules/DataLaboratoryAPI/src/main/nbm/module.xml deleted file mode 100644 index 91797546f7..0000000000 --- a/modules/DataLaboratoryAPI/src/main/nbm/module.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle.properties index 292e73c9d0..5c2b656c61 100644 --- a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle.properties +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle.properties @@ -1,7 +1,4 @@ -OpenIDE-Module-Display-Category=Gephi Core -OpenIDE-Module-Long-Description=\ - API/SPI for interacting with the Data Laboratory and extending it. -OpenIDE-Module-Name=Data Laboratory API +OpenIDE-Module-Long-Description=API/SPI for interacting with the Data Laboratory and extending it. OpenIDE-Module-Short-Description=API/SPI for interacting with the Data Laboratory and extending it DataLaboratoryHelper.ui.okButton.text=Ok SettingsPanel.title={0} diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_ar.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_ar.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_ar.properties @@ -0,0 +1 @@ + diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_ca.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_ca.properties new file mode 100644 index 0000000000..5c1fcf61e0 --- /dev/null +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_ca.properties @@ -0,0 +1,4 @@ +OpenIDE-Module-Long-Description=API/SPI per interactuar i expandir el Laboratori de Dades +OpenIDE-Module-Short-Description=API/SPI per interactuar i expandir el Laboratori de Dades +DataLaboratoryHelper.ui.okButton.text=Ok +SettingsPanel.title={0} diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_cs.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_cs.properties index d6d99b458d..f2ca6a9180 100644 --- a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_cs.properties +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_cs.properties @@ -1,15 +1,4 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Zbyn\u011bk Schwarz , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-02-28 21\:31+0000\nLast-Translator\: Zbyn\u011bk Schwarz \nLanguage-Team\: Czech (http\://www.transifex.com/projects/p/gephi/language/cs/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: cs\nPlural-Forms\: nplurals\=3; plural\=(n\=\=1) ? 0 \: (n>\=2 && n<\=4) ? 1 \: 2;\n - -OpenIDE-Module-Long-Description=API/SPI pro interakci s datovou laborato\u0159\u00ed a jej\u00edm roz\u0161i\u0159ov\u00e1n\u00edm - -OpenIDE-Module-Short-Description=API/SPI pro interakci s datovou laborato\u0159\u00ed a jej\u00edm roz\u0161i\u0159ov\u00e1n\u00edm - -DataLaboratoryHelper.ui.okButton.text=Ok - -SettingsPanel.title={0} +OpenIDE-Module-Long-Description=API/SPI pro interakci s datovou laborato\u0159ν a jejνm roz\u0161i\u0159ovαnνm +OpenIDE-Module-Short-Description=API/SPI pro interakci s datovou laborato\u0159ν a jejνm roz\u0161i\u0159ovαnνm +DataLaboratoryHelper.ui.okButton.text=Ok +SettingsPanel.title={0} diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_de.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_de.properties new file mode 100644 index 0000000000..98664c68ae --- /dev/null +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_de.properties @@ -0,0 +1,4 @@ +OpenIDE-Module-Long-Description=API/SPI zur Interaktion mit und Erweiterung des Datenlabors. +OpenIDE-Module-Short-Description=API/SPI zur Interaktion mit und Erweiterung des Datenlabors +DataLaboratoryHelper.ui.okButton.text=Ok +SettingsPanel.title={0} diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_es.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_es.properties index 0a8e0e368d..0baf24f0d2 100644 --- a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_es.properties +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_es.properties @@ -1,15 +1,4 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 14\:29+0000\nLast-Translator\: gephi \nLanguage-Team\: Spanish (http\://www.transifex.com/projects/p/gephi/language/es/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: es\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n - OpenIDE-Module-Long-Description=API/SPI para interactuar con el Laboratorio de Datos y extenderlo. - -OpenIDE-Module-Short-Description=API/SPI para interactuar con el Laboratorio de Datos y extenderlo. - +OpenIDE-Module-Short-Description=API/SPI para interactuar con el Laboratorio de Datos y ampliarlo DataLaboratoryHelper.ui.okButton.text=Ok - SettingsPanel.title={0} diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_fr.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_fr.properties index c5cea5a0ad..95a2824d2a 100644 --- a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_fr.properties +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_fr.properties @@ -1,15 +1,4 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 14\:29+0000\nLast-Translator\: gephi \nLanguage-Team\: French (http\://www.transifex.com/projects/p/gephi/language/fr/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fr\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -OpenIDE-Module-Long-Description=API/SPI pour interagir avec le Data Laboratory et l'\u00e9tendre - -OpenIDE-Module-Short-Description=API/SPI pour interagir avec le Data Laboratory et l'\u00e9tendre - -DataLaboratoryHelper.ui.okButton.text=Ok - -SettingsPanel.title={0} +OpenIDE-Module-Long-Description=API/SPI pour interagir avec le Data Laboratory et l'ιtendre +OpenIDE-Module-Short-Description=API/SPI pour interagir avec le Data Laboratory et l'ιtendre +DataLaboratoryHelper.ui.okButton.text=Ok +SettingsPanel.title={0} diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_he.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_he.properties new file mode 100644 index 0000000000..bb92c28e57 --- /dev/null +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_he.properties @@ -0,0 +1,4 @@ +OpenIDE-Module-Long-Description=\u05de\u05e0\u05e9\u05e7 \u05ea\u05d5\u05db\u05e0\u05d4 (API/SPI) \u05dc\u05d4\u05ea\u05de\u05de\u05e9\u05e7\u05d5\u05ea \u05e2\u05dd \u05de\u05e2\u05d1\u05d3\u05ea \u05d4\u05ea\u05d5\u05e0\u05d9\u05dd \u05d5\u05dc\u05d4\u05e8\u05d7\u05d9\u05d1\u05d4 +OpenIDE-Module-Short-Description=\u05de\u05e0\u05e9\u05e7 \u05ea\u05d5\u05db\u05e0\u05d4 (API/SPI) \u05dc\u05d4\u05ea\u05de\u05de\u05e9\u05e7\u05d5\u05ea \u05e2\u05dd \u05de\u05e2\u05d1\u05d3\u05ea \u05d4\u05ea\u05d5\u05e0\u05d9\u05dd \u05d5\u05dc\u05d4\u05e8\u05d7\u05d9\u05d1\u05d4 +DataLaboratoryHelper.ui.okButton.text=\u05d0\u05e9\u05e8 +SettingsPanel.title={0} diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_hu.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_hu.properties new file mode 100644 index 0000000000..fecf823c4b --- /dev/null +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_hu.properties @@ -0,0 +1,6 @@ + + +DataLaboratoryHelper.ui.okButton.text=Ok +SettingsPanel.title={0} +OpenIDE-Module-Short-Description=API/SPI az Adatlaborat\u00F3riummal val\u00F3 interakci\u00F3hoz \u00E9s annak b\u0151v\u00EDt\u00E9s\u00E9hez +OpenIDE-Module-Long-Description=API/SPI az Adatlaborat\u00F3riummal val\u00F3 interakci\u00F3hoz \u00E9s annak b\u0151v\u00EDt\u00E9s\u00E9hez. diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_it.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_it.properties new file mode 100644 index 0000000000..85f0157707 --- /dev/null +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_it.properties @@ -0,0 +1,4 @@ +OpenIDE-Module-Long-Description=API/SPI per interagire con il Data Laboratory o per estenderlo. +OpenIDE-Module-Short-Description=API/SPI per interagire con il Data Laboratory o per estenderlo +DataLaboratoryHelper.ui.okButton.text=Ok +SettingsPanel.title={0} diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_ja.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_ja.properties index 369e10b3ae..05e2da58ad 100644 --- a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_ja.properties +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_ja.properties @@ -1,15 +1,4 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-25 16\:22+0000\nLast-Translator\: Siro Kida \nLanguage-Team\: Japanese (http\://www.transifex.com/projects/p/gephi/language/ja/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ja\nPlural-Forms\: nplurals\=1; plural\=0;\n - -OpenIDE-Module-Long-Description=\u30c7\u30fc\u30bf\u5de5\u623f\u3068\u306e\u76f8\u4e92\u4f5c\u7528\u3068\u305d\u308c\u3092\u62e1\u5f35\u3059\u308b\u305f\u3081\u306eAPI / SPI\u3002 - -OpenIDE-Module-Short-Description=\u30c7\u30fc\u30bf\u5de5\u623f\u3068\u306e\u76f8\u4e92\u4f5c\u7528\u3068\u305d\u308c\u3092\u62e1\u5f35\u3059\u308b\u305f\u3081\u306eAPI / SPI\u3002 - -DataLaboratoryHelper.ui.okButton.text=Ok - -SettingsPanel.title={0} +OpenIDE-Module-Long-Description=\u30c7\u30fc\u30bf\u5de5\u623f\u3068\u306e\u76f8\u4e92\u4f5c\u7528\u3068\u305d\u308c\u3092\u62e1\u5f35\u3059\u308b\u305f\u3081\u306eAPI / SPI\u3002 +OpenIDE-Module-Short-Description=\u30c7\u30fc\u30bf\u5de5\u623f\u3068\u306e\u76f8\u4e92\u4f5c\u7528\u3068\u305d\u308c\u3092\u62e1\u5f35\u3059\u308b\u305f\u3081\u306eAPI / SPI\u3002 +DataLaboratoryHelper.ui.okButton.text=Ok +SettingsPanel.title={0} diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_nl.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_nl.properties new file mode 100644 index 0000000000..4cadcbd519 --- /dev/null +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_nl.properties @@ -0,0 +1,4 @@ +OpenIDE-Module-Long-Description=API/SPI for interacting with the Data Laboratory and extending it. +OpenIDE-Module-Short-Description=API/SPI for interacting with the Data Laboratory and extending it +DataLaboratoryHelper.ui.okButton.text=OK +SettingsPanel.title={0} diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_pt_BR.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_pt_BR.properties index 4f26d35eba..9fcbfbc580 100644 --- a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_pt_BR.properties +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_pt_BR.properties @@ -1,15 +1,4 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# C\u00e9lio CJr , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 23\:42+0000\nLast-Translator\: C\u00e9lio Faria Jr. \nLanguage-Team\: Portuguese (Brazil) (http\://www.transifex.com/projects/p/gephi/language/pt_BR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt_BR\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -OpenIDE-Module-Long-Description=API/SPI para interagir com o Laborat\u00f3rio de Dados e estend\u00ea-lo. - -OpenIDE-Module-Short-Description=API/SPI para interagir com o Laborat\u00f3rio de Dados e estend\u00ea-lo - -DataLaboratoryHelper.ui.okButton.text=Ok - -SettingsPanel.title={0} +OpenIDE-Module-Long-Description=API/SPI para interagir com o Laboratσrio de Dados e estendκ-lo. +OpenIDE-Module-Short-Description=API/SPI para interagir com o Laboratσrio de Dados e estendκ-lo +DataLaboratoryHelper.ui.okButton.text=Ok +SettingsPanel.title={0} diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_ro.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_ro.properties new file mode 100644 index 0000000000..3390b9130c --- /dev/null +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_ro.properties @@ -0,0 +1,6 @@ + + +OpenIDE-Module-Long-Description=API/SPI pentru interac\u021Biunea cu Laboratorul de date \u0219i extensiile lui. +OpenIDE-Module-Short-Description=API/SPI pentru interac\u021Biunea cu Laboratorul de date \u0219i extensiile lui +DataLaboratoryHelper.ui.okButton.text=Ok +SettingsPanel.title={0} diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_ru.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_ru.properties index a96ccd17c7..e754f1127e 100644 --- a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_ru.properties +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_ru.properties @@ -1,16 +1,4 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# , 2012. -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-14 15\:03+0000\nLast-Translator\: Altsoph \nLanguage-Team\: Russian (http\://www.transifex.com/projects/p/gephi/language/ru/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ru\nPlural-Forms\: nplurals\=3; plural\=(n%10\=\=1 && n%100\!\=11 ? 0 \: n%10>\=2 && n%10<\=4 && (n%100<10 || n%100>\=20) ? 1 \: 2);\n - -OpenIDE-Module-Long-Description=API/SPI \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u041b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u0438\u0435\u0439 \u0414\u0430\u043d\u043d\u044b\u0445 - -OpenIDE-Module-Short-Description=API/SPI \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u041b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u0438\u0435\u0439 \u0414\u0430\u043d\u043d\u044b\u0445 - -DataLaboratoryHelper.ui.okButton.text=\u041e\u043a - -SettingsPanel.title={0} +OpenIDE-Module-Long-Description=API/SPI \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u041b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u0438\u0435\u0439 \u0414\u0430\u043d\u043d\u044b\u0445 +OpenIDE-Module-Short-Description=API/SPI \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u041b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u0438\u0435\u0439 \u0414\u0430\u043d\u043d\u044b\u0445 +DataLaboratoryHelper.ui.okButton.text=\u041e\u043a +SettingsPanel.title={0} diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_th.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_th.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_th.properties @@ -0,0 +1 @@ + diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_tr.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_tr.properties new file mode 100644 index 0000000000..ba6c320098 --- /dev/null +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_tr.properties @@ -0,0 +1,4 @@ +OpenIDE-Module-Long-Description=API/SPI for interacting with the Data Laboratory and extending it. +OpenIDE-Module-Short-Description=API/SPI for interacting with the Data Laboratory and extending it +DataLaboratoryHelper.ui.okButton.text=Tamam +SettingsPanel.title={0} diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_zh_CN.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_zh_CN.properties index 05b0fed49b..fcd659a3dd 100644 --- a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_zh_CN.properties +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_zh_CN.properties @@ -1,14 +1,4 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-08 00\:20+0000\nLast-Translator\: gephi \nLanguage-Team\: Chinese (China) (http\://www.transifex.com/projects/p/gephi/language/zh_CN/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: zh_CN\nPlural-Forms\: nplurals\=1; plural\=0;\n - -OpenIDE-Module-Long-Description=\u4e0e\u5b9e\u9a8c\u6570\u636e\u4ea4\u4e92\u7684\u4ee5\u53ca\u6269\u5c55\u7684API/SPI - +OpenIDE-Module-Long-Description=\u4E0E\u6570\u636E\u5B9E\u9A8C\u5BA4\u4E92\u52A8\u5E76\u6269\u5C55\u5B83\u7684 API/SPI\u3002 OpenIDE-Module-Short-Description=\u4e0e\u5b9e\u9a8c\u6570\u636e\u4ea4\u4e92\u7684\u4ee5\u53ca\u6269\u5c55\u7684API/SPI - DataLaboratoryHelper.ui.okButton.text=\u597d - SettingsPanel.title={0} diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_zh_TW.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_zh_TW.properties new file mode 100644 index 0000000000..8cf04b167c --- /dev/null +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/Bundle_zh_TW.properties @@ -0,0 +1,4 @@ +OpenIDE-Module-Long-Description=\u5728\u8cc7\u6599\u5be6\u9a57\u5ba4\u4e2d\u5ef6\u4f38\u4f7f\u7528 API/SPI +OpenIDE-Module-Short-Description=\u5728\u8cc7\u6599\u5be6\u9a57\u5ba4\u4e2d\u5ef6\u4f38\u4f7f\u7528 API/SPI +DataLaboratoryHelper.ui.okButton.text=\u78ba\u5b9a +SettingsPanel.title={0} diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/cs.po b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/cs.po deleted file mode 100644 index 8678a82229..0000000000 --- a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/cs.po +++ /dev/null @@ -1,31 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# ZbynΔ›k Schwarz , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-02-28 21:31+0000\n" -"Last-Translator: ZbynΔ›k Schwarz \n" -"Language-Team: Czech (http://www.transifex.com/projects/p/gephi/language/cs/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: cs\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "API/SPI pro interakci s datovou laboratoΕ™Γ­ a jejΓ­m rozΕ‘iΕ™ovΓ‘nΓ­m" - -msgid "OpenIDE-Module-Short-Description" -msgstr "API/SPI pro interakci s datovou laboratoΕ™Γ­ a jejΓ­m rozΕ‘iΕ™ovΓ‘nΓ­m" - -msgid "DataLaboratoryHelper.ui.okButton.text" -msgstr "Ok" - -msgid "SettingsPanel.title" -msgstr "{0}" diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/es.po b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/es.po deleted file mode 100644 index a428911d8e..0000000000 --- a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/es.po +++ /dev/null @@ -1,31 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 14:29+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/gephi/language/es/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "API/SPI para interactuar con el Laboratorio de Datos y extenderlo." - -msgid "OpenIDE-Module-Short-Description" -msgstr "API/SPI para interactuar con el Laboratorio de Datos y extenderlo." - -msgid "DataLaboratoryHelper.ui.okButton.text" -msgstr "Ok" - -msgid "SettingsPanel.title" -msgstr "{0}" diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/fr.po b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/fr.po deleted file mode 100644 index fdc5f42d4e..0000000000 --- a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/fr.po +++ /dev/null @@ -1,31 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 14:29+0000\n" -"Last-Translator: gephi \n" -"Language-Team: French (http://www.transifex.com/projects/p/gephi/language/fr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "API/SPI pour interagir avec le Data Laboratory et l'Γ©tendre" - -msgid "OpenIDE-Module-Short-Description" -msgstr "API/SPI pour interagir avec le Data Laboratory et l'Γ©tendre" - -msgid "DataLaboratoryHelper.ui.okButton.text" -msgstr "Ok" - -msgid "SettingsPanel.title" -msgstr "{0}" diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/ja.po b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/ja.po deleted file mode 100644 index 6ca2cdb18c..0000000000 --- a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/ja.po +++ /dev/null @@ -1,31 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-25 16:22+0000\n" -"Last-Translator: Siro Kida \n" -"Language-Team: Japanese (http://www.transifex.com/projects/p/gephi/language/ja/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ja\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "データε·₯房とγη›ΈδΊ’δ½œη”¨γ¨γγ‚Œγ‚’ζ‹‘εΌ΅γ™γ‚‹γŸγ‚γAPI / SPI。" - -msgid "OpenIDE-Module-Short-Description" -msgstr "データε·₯房とγη›ΈδΊ’δ½œη”¨γ¨γγ‚Œγ‚’ζ‹‘εΌ΅γ™γ‚‹γŸγ‚γAPI / SPI。" - -msgid "DataLaboratoryHelper.ui.okButton.text" -msgstr "Ok" - -msgid "SettingsPanel.title" -msgstr "{0}" diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/org-gephi-datalab-api.pot b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/org-gephi-datalab-api.pot deleted file mode 100644 index b7f9297c91..0000000000 --- a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/org-gephi-datalab-api.pot +++ /dev/null @@ -1,28 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# Gephi Team , 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: Gephi 0.8\n" -"Report-Msgid-Bugs-To: gephi.team@lists.launchpad.net\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-05 14:52+0200\n" -"Last-Translator: Mathieu Bastian \n" -"Language-Team: English \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "API/SPI for interacting with the Data Laboratory and extending it." - -msgid "OpenIDE-Module-Short-Description" -msgstr "API/SPI for interacting with the Data Laboratory and extending it" - -msgid "DataLaboratoryHelper.ui.okButton.text" -msgstr "Ok" - -msgid "SettingsPanel.title" -msgstr "{0}" diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/package.html b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/package.html index 6c3160dd32..bee1d118b6 100644 --- a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/package.html +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/package.html @@ -1,7 +1,12 @@ - + - - Data Laboratory API, all capabilites are exposed through various controllers. + + org.gephi.datalab.api + + +

    + Data Laboratory API, all capabilites are exposed through various controllers. +

    Use the various controllers to perform the same actions programatically as the Data Laboratory UI is doing. Use Lookup to find diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/pt_BR.po b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/pt_BR.po deleted file mode 100644 index 4a7f8ae9c3..0000000000 --- a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/pt_BR.po +++ /dev/null @@ -1,31 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# CΓ©lio CJr , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 23:42+0000\n" -"Last-Translator: CΓ©lio Faria Jr. \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/gephi/language/pt_BR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "API/SPI para interagir com o LaboratΓ³rio de Dados e estendΓͺ-lo." - -msgid "OpenIDE-Module-Short-Description" -msgstr "API/SPI para interagir com o LaboratΓ³rio de Dados e estendΓͺ-lo" - -msgid "DataLaboratoryHelper.ui.okButton.text" -msgstr "Ok" - -msgid "SettingsPanel.title" -msgstr "{0}" diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/ru.po b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/ru.po deleted file mode 100644 index eb5c28acf3..0000000000 --- a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/ru.po +++ /dev/null @@ -1,32 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# , 2012. -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-14 15:03+0000\n" -"Last-Translator: Altsoph \n" -"Language-Team: Russian (http://www.transifex.com/projects/p/gephi/language/ru/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "API/SPI для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π›Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΈΠ΅ΠΉ Π”Π°Π½Π½Ρ‹Ρ…" - -msgid "OpenIDE-Module-Short-Description" -msgstr "API/SPI для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π›Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΈΠ΅ΠΉ Π”Π°Π½Π½Ρ‹Ρ…" - -msgid "DataLaboratoryHelper.ui.okButton.text" -msgstr "Ок" - -msgid "SettingsPanel.title" -msgstr "{0}" diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/zh_CN.po b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/zh_CN.po deleted file mode 100644 index 93e232ef03..0000000000 --- a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/api/zh_CN.po +++ /dev/null @@ -1,30 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-08 00:20+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/gephi/language/zh_CN/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "OpenIDE-Module-Long-Description" -msgstr "与εžιͺŒζ•°ζδΊ€δΊ’ηš„δ»₯εŠζ‰©ε±•ηš„API/SPI" - -msgid "OpenIDE-Module-Short-Description" -msgstr "与εžιͺŒζ•°ζδΊ€δΊ’ηš„δ»₯εŠζ‰©ε±•ηš„API/SPI" - -msgid "DataLaboratoryHelper.ui.okButton.text" -msgstr "ε₯½" - -msgid "SettingsPanel.title" -msgstr "{0}" diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle.properties index 5f2aa2078c..301341cefb 100644 --- a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle.properties +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle.properties @@ -1,5 +1,2 @@ -OpenIDE-Module-Display-Category=Plugin -OpenIDE-Module-Name=Data Laboratory Plugin - Group.nodeCount.label=Group ({0} nodes) OpenIDE-Module-Short-Description=Implementation of Data Laboratory API and some manipulators diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_ar.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_ar.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_ar.properties @@ -0,0 +1 @@ + diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_ca.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_ca.properties new file mode 100644 index 0000000000..edc7b9bebc --- /dev/null +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_ca.properties @@ -0,0 +1,2 @@ +Group.nodeCount.label=Group ({0} nodes) +OpenIDE-Module-Short-Description=Implementaciσ de l\u2019API del Laboratori de Dades i alguns manipuladors diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_cs.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_cs.properties index 00fdb47044..003734387d 100644 --- a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_cs.properties +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_cs.properties @@ -1,11 +1,2 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Zbyn\u011bk Schwarz , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-02-28 21\:30+0000\nLast-Translator\: Zbyn\u011bk Schwarz \nLanguage-Team\: Czech (http\://www.transifex.com/projects/p/gephi/language/cs/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: cs\nPlural-Forms\: nplurals\=3; plural\=(n\=\=1) ? 0 \: (n>\=2 && n<\=4) ? 1 \: 2;\n - -Group.nodeCount.label=Skupina ({0} uzl\u016f) - -OpenIDE-Module-Short-Description=Zaveden\u00ed API datov\u00e9 laborato\u0159e a n\u011bkter\u00fdch manipul\u00e1tor\u016f +Group.nodeCount.label=Skupina ({0} uzl\u016f) +OpenIDE-Module-Short-Description=Zavedenν API datovι laborato\u0159e a n\u011bkterύch manipulαtor\u016f diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_de.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_de.properties new file mode 100644 index 0000000000..ea46a05be7 --- /dev/null +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_de.properties @@ -0,0 +1,2 @@ +Group.nodeCount.label=Gruppieren ({0} Knoten) +OpenIDE-Module-Short-Description=Implementierung der Datenlabor API und einiger Operatoren diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_es.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_es.properties index 4818606300..b322de2e50 100644 --- a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_es.properties +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_es.properties @@ -1,11 +1,2 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 14\:29+0000\nLast-Translator\: gephi \nLanguage-Team\: Spanish (http\://www.transifex.com/projects/p/gephi/language/es/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: es\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n - -Group.nodeCount.label=Grupo ({0} nodos) - -OpenIDE-Module-Short-Description=Implementaci\u00f3n de la API del Laboratorio de Datos y algunos manipuladores +Group.nodeCount.label=Grupo ({0} nodos) +OpenIDE-Module-Short-Description=Implementaciσn de la API del Laboratorio de Datos y algunos manipuladores diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_fr.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_fr.properties index 1c3eabf9b3..61ab216723 100644 --- a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_fr.properties +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_fr.properties @@ -1,11 +1,2 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 14\:29+0000\nLast-Translator\: gephi \nLanguage-Team\: French (http\://www.transifex.com/projects/p/gephi/language/fr/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fr\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -Group.nodeCount.label=Groupe ({0} noeuds) - +Group.nodeCount.label=Groupe ({0} n\u0153uds) OpenIDE-Module-Short-Description=Implementation du Data Laboratory API et quelques manipulateurs diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_he.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_he.properties new file mode 100644 index 0000000000..a6d96b02cd --- /dev/null +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_he.properties @@ -0,0 +1,2 @@ +Group.nodeCount.label=\u05e7\u05d1\u05d5\u05e6\u05d4 (\u05e6\u05de\u05ea\u05d9 {0}) +OpenIDE-Module-Short-Description=\u05d9\u05d9\u05e9\u05d5\u05dd \u05de\u05e0\u05e9\u05e7 \u05e0\u05e2\u05d1\u05d3\u05ea \u05d4\u05e0\u05ea\u05d5\u05e0\u05d9\u05dd \u05d5\u05de\u05ea\u05e4\u05dc\u05dc\u05d9\u05dd \u05e9\u05d5\u05e0\u05d9\u05dd diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_hu.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_hu.properties new file mode 100644 index 0000000000..259eb35cb7 --- /dev/null +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_hu.properties @@ -0,0 +1,4 @@ + + +OpenIDE-Module-Short-Description=A Data Laboratory API \u00E9s n\u00E9h\u00E1ny manipul\u00E1tor megval\u00F3s\u00EDt\u00E1sa +Group.nodeCount.label=Csoport ({0} csom\u00F3pont) diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_it.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_it.properties new file mode 100644 index 0000000000..4f0b26369b --- /dev/null +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_it.properties @@ -0,0 +1,2 @@ +Group.nodeCount.label=Gruppo ({0} nodi) +OpenIDE-Module-Short-Description=Implementazione della Data Laboratory API e di alcuni manipulators diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_ja.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_ja.properties index d5662cfd15..9cf37605b9 100644 --- a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_ja.properties +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_ja.properties @@ -1,11 +1,2 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-27 03\:09+0000\nLast-Translator\: Siro Kida \nLanguage-Team\: Japanese (http\://www.transifex.com/projects/p/gephi/language/ja/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ja\nPlural-Forms\: nplurals\=1; plural\=0;\n - -Group.nodeCount.label=\u30b0\u30eb\u30fc\u30d7 ({0}\u30ce\u30fc\u30c9) - -OpenIDE-Module-Short-Description=\u30c7\u30fc\u30bf\u30e9\u30dcAPI\u3068\u3044\u304f\u3064\u304b\u306e\u30de\u30cb\u30d4\u30e5\u30ec\u30fc\u30bf\u306e\u5b9f\u88c5 +Group.nodeCount.label=\u30b0\u30eb\u30fc\u30d7 ({0}\u30ce\u30fc\u30c9) +OpenIDE-Module-Short-Description=\u30c7\u30fc\u30bf\u30e9\u30dcAPI\u3068\u3044\u304f\u3064\u304b\u306e\u30de\u30cb\u30d4\u30e5\u30ec\u30fc\u30bf\u306e\u5b9f\u88c5 diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_nl.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_nl.properties new file mode 100644 index 0000000000..17cd9a876a --- /dev/null +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_nl.properties @@ -0,0 +1,2 @@ +Group.nodeCount.label=Groeperen ({0} knopen) +OpenIDE-Module-Short-Description=Implementation of Data Laboratory API and some manipulators diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_pt.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_pt.properties new file mode 100644 index 0000000000..0936ab5897 --- /dev/null +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_pt.properties @@ -0,0 +1,2 @@ +Group.nodeCount.label=Grupo ({0} n\u00F3s) +OpenIDE-Module-Short-Description=Implementa\u00E7\u00E3o de API de Laborat\u00F3rio de Dados e alguns manipuladores diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_pt_BR.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_pt_BR.properties index 276982b922..50d6b0d30f 100644 --- a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_pt_BR.properties +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_pt_BR.properties @@ -1,11 +1,2 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# C\u00e9lio CJr , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 23\:41+0000\nLast-Translator\: C\u00e9lio Faria Jr. \nLanguage-Team\: Portuguese (Brazil) (http\://www.transifex.com/projects/p/gephi/language/pt_BR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt_BR\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -Group.nodeCount.label=Grupo ({0} n\u00f3s) - -OpenIDE-Module-Short-Description=Implementa\u00e7\u00e3o de API de Laborat\u00f3rio de Dados e alguns manipuladores +Group.nodeCount.label=Grupo ({0} nσs) +OpenIDE-Module-Short-Description=Implementaηγo de API de Laboratσrio de Dados e alguns manipuladores diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_ro.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_ro.properties new file mode 100644 index 0000000000..a090a50749 --- /dev/null +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_ro.properties @@ -0,0 +1,4 @@ + + +Group.nodeCount.label=Grupeaz\u0103 ({0} noduri) +OpenIDE-Module-Short-Description=Implementarea API-ului Laboratorului de date \u0219i a unor manipulatori diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_ru.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_ru.properties index bb7e4edf76..792aad5f37 100644 --- a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_ru.properties +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_ru.properties @@ -1,12 +1,2 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# , 2012. -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-14 15\:06+0000\nLast-Translator\: Altsoph \nLanguage-Team\: Russian (http\://www.transifex.com/projects/p/gephi/language/ru/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ru\nPlural-Forms\: nplurals\=3; plural\=(n%10\=\=1 && n%100\!\=11 ? 0 \: n%10>\=2 && n%10<\=4 && (n%100<10 || n%100>\=20) ? 1 \: 2);\n - -Group.nodeCount.label=\u0413\u0440\u0443\u043f\u043f\u0430 (\u0447\u0438\u0441\u043b\u043e \u0443\u0437\u043b\u043e\u0432 {0}) - -OpenIDE-Module-Short-Description=\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f API \u041b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u0438\u0438 \u0414\u0430\u043d\u043d\u044b\u0445 \u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 +Group.nodeCount.label=\u0413\u0440\u0443\u043f\u043f\u0430 (\u0447\u0438\u0441\u043b\u043e \u0443\u0437\u043b\u043e\u0432 {0}) +OpenIDE-Module-Short-Description=\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f API \u041b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u0438\u0438 \u0414\u0430\u043d\u043d\u044b\u0445 \u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_th.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_th.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_th.properties @@ -0,0 +1 @@ + diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_tr.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_tr.properties new file mode 100644 index 0000000000..56c98ef6b5 --- /dev/null +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_tr.properties @@ -0,0 +1,2 @@ +Group.nodeCount.label=Grup ({0} dό\u011fόm) +OpenIDE-Module-Short-Description=Implementation of Data Laboratory API and some manipulators diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_uk.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_uk.properties new file mode 100644 index 0000000000..67fa4ec93a --- /dev/null +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_uk.properties @@ -0,0 +1,2 @@ +Group.nodeCount.label=\u0413\u0440\u0443\u043F\u0430 ({0} \u0432\u0443\u0437\u043B\u0456\u0432) +OpenIDE-Module-Short-Description=\u0412\u043F\u0440\u043E\u0432\u0430\u0434\u0436\u0435\u043D\u043D\u044F Data Laboratory API \u0442\u0430 \u0434\u0435\u044F\u043A\u0438\u0445 \u043C\u0430\u043D\u0456\u043F\u0443\u043B\u044F\u0442\u043E\u0440\u0456\u0432 diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_zh_CN.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_zh_CN.properties index 4ff1537638..fdfadc8419 100644 --- a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_zh_CN.properties +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_zh_CN.properties @@ -1,10 +1,2 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-08 00\:20+0000\nLast-Translator\: gephi \nLanguage-Team\: Chinese (China) (http\://www.transifex.com/projects/p/gephi/language/zh_CN/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: zh_CN\nPlural-Forms\: nplurals\=1; plural\=0;\n - -Group.nodeCount.label=\u7ec4\uff08{0}\u8282\u70b9\uff09 - -OpenIDE-Module-Short-Description=\u6570\u636e\u5b9e\u9a8c\u5ba4API\u5b89\u88c5\u542f\u7528\u53ca\u4e00\u4e9b\u64cd\u4f5c +Group.nodeCount.label=\u7ec4\uff08{0}\u8282\u70b9\uff09 +OpenIDE-Module-Short-Description=\u6570\u636e\u5b9e\u9a8c\u5ba4API\u5b89\u88c5\u542f\u7528\u53ca\u4e00\u4e9b\u64cd\u4f5c diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_zh_TW.properties b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_zh_TW.properties new file mode 100644 index 0000000000..4d542b0448 --- /dev/null +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/Bundle_zh_TW.properties @@ -0,0 +1,2 @@ +Group.nodeCount.label=\u7fa4\u7d44 ({0} \u7bc0\u9ede) +OpenIDE-Module-Short-Description=\u5efa\u7acb\u8cc7\u6599\u5be6\u9a57\u5ba4 API \u53ca\u8cc7\u6599\u8655\u7406\u529f\u80fd diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/cs.po b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/cs.po deleted file mode 100644 index 903abe669f..0000000000 --- a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/cs.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# ZbynΔ›k Schwarz , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-02-28 21:30+0000\n" -"Last-Translator: ZbynΔ›k Schwarz \n" -"Language-Team: Czech (http://www.transifex.com/projects/p/gephi/language/cs/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: cs\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" - -msgid "Group.nodeCount.label" -msgstr "Skupina ({0} uzlΕ―)" - -msgid "OpenIDE-Module-Short-Description" -msgstr "ZavedenΓ­ API datovΓ© laboratoΕ™e a nΔ›kterΓ½ch manipulΓ‘torΕ―" diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/es.po b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/es.po deleted file mode 100644 index 2e2a0bd994..0000000000 --- a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/es.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 14:29+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/gephi/language/es/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -msgid "Group.nodeCount.label" -msgstr "Grupo ({0} nodos)" - -msgid "OpenIDE-Module-Short-Description" -msgstr "ImplementaciΓ³n de la API del Laboratorio de Datos y algunos manipuladores" diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/fr.po b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/fr.po deleted file mode 100644 index ee116a4b85..0000000000 --- a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/fr.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 14:29+0000\n" -"Last-Translator: gephi \n" -"Language-Team: French (http://www.transifex.com/projects/p/gephi/language/fr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "Group.nodeCount.label" -msgstr "Groupe ({0} noeuds)" - -msgid "OpenIDE-Module-Short-Description" -msgstr "Implementation du Data Laboratory API et quelques manipulateurs" diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/ja.po b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/ja.po deleted file mode 100644 index 580b37f2f8..0000000000 --- a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/ja.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-27 03:09+0000\n" -"Last-Translator: Siro Kida \n" -"Language-Team: Japanese (http://www.transifex.com/projects/p/gephi/language/ja/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ja\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "Group.nodeCount.label" -msgstr "グループ ({0}γƒŽγƒΌγƒ‰)" - -msgid "OpenIDE-Module-Short-Description" -msgstr "γƒ‡γƒΌγ‚Ώγƒ©γƒœAPIといく぀かγγƒžγƒ‹γƒ”γƒ₯レータγεŸθ£…" diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/org-gephi-datalab-impl.pot b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/org-gephi-datalab-impl.pot deleted file mode 100644 index 0889598b1b..0000000000 --- a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/org-gephi-datalab-impl.pot +++ /dev/null @@ -1,22 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# Gephi Team , 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: Gephi 0.8\n" -"Report-Msgid-Bugs-To: gephi.team@lists.launchpad.net\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-05 14:52+0200\n" -"Last-Translator: Mathieu Bastian \n" -"Language-Team: English \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "Group.nodeCount.label" -msgstr "Group ({0} nodes)" - -msgid "OpenIDE-Module-Short-Description" -msgstr "Implementation of Data Laboratory API and some manipulators" diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/pt_BR.po b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/pt_BR.po deleted file mode 100644 index 01976e0975..0000000000 --- a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/pt_BR.po +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# CΓ©lio CJr , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 23:41+0000\n" -"Last-Translator: CΓ©lio Faria Jr. \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/gephi/language/pt_BR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "Group.nodeCount.label" -msgstr "Grupo ({0} nΓ³s)" - -msgid "OpenIDE-Module-Short-Description" -msgstr "ImplementaΓ§Γ£o de API de LaboratΓ³rio de Dados e alguns manipuladores" diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/ru.po b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/ru.po deleted file mode 100644 index 1acddfefb3..0000000000 --- a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/ru.po +++ /dev/null @@ -1,26 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# , 2012. -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-14 15:06+0000\n" -"Last-Translator: Altsoph \n" -"Language-Team: Russian (http://www.transifex.com/projects/p/gephi/language/ru/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -msgid "Group.nodeCount.label" -msgstr "Π“Ρ€ΡƒΠΏΠΏΠ° (число ΡƒΠ·Π»ΠΎΠ² {0})" - -msgid "OpenIDE-Module-Short-Description" -msgstr "РСализация API Π›Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΈΠΈ Π”Π°Π½Π½Ρ‹Ρ… ΠΈ нСсколько ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²" diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/zh_CN.po b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/zh_CN.po deleted file mode 100644 index 3b4a3ae53d..0000000000 --- a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/impl/zh_CN.po +++ /dev/null @@ -1,24 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-08 00:20+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/gephi/language/zh_CN/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "Group.nodeCount.label" -msgstr "η»„οΌˆ{0}θŠ‚η‚ΉοΌ‰" - -msgid "OpenIDE-Module-Short-Description" -msgstr "ζ•°ζεžιͺŒε€APIε‰θ£…ε―η”¨εŠδΈ€δΊ›ζ“δ½œ" diff --git a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/spi/package.html b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/spi/package.html index 730fe81d43..e1d0332a2a 100644 --- a/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/spi/package.html +++ b/modules/DataLaboratoryAPI/src/main/resources/org/gephi/datalab/spi/package.html @@ -1,6 +1,11 @@ - + - - Interfaces for creating data laboratory plugins. + + org.gephi.datalab.spi + + +

    + Interfaces for creating data laboratory plugins. +

    diff --git a/modules/DataLaboratoryPlugin/pom.xml b/modules/DataLaboratoryPlugin/pom.xml index dec154e65f..3148ac5cc0 100644 --- a/modules/DataLaboratoryPlugin/pom.xml +++ b/modules/DataLaboratoryPlugin/pom.xml @@ -4,13 +4,12 @@ gephi-parent org.gephi - 0.9-SNAPSHOT + 0.11.3-SNAPSHOT ../.. - org.gephi datalab-plugin - 0.9-SNAPSHOT + 0.11.3-SNAPSHOT nbm DataLaboratoryPlugin @@ -18,15 +17,27 @@ ${project.groupId} - data-attributes-api + datalab-api ${project.groupId} - datalab-api + graph-api ${project.groupId} - graph-api + project-api + + + ${project.groupId} + io-importer-api + + + ${project.groupId} + desktop-icons + + + ${project.groupId} + desktop-project ${project.groupId} @@ -34,7 +45,7 @@ ${project.groupId} - tools-api + desktop-attributes ${project.groupId} @@ -66,26 +77,26 @@ org.netbeans.api - org-openide-util-lookup + org-openide-util-ui org.netbeans.api - org-openide-windows + org-openide-util-lookup - ${project.groupId} - visualization + org.netbeans.api + org-openide-windows - ${project.groupId} - lib.validation + org.netbeans.api + org-openide-awt - org.codehaus.mojo + org.apache.netbeans.utilities nbm-maven-plugin diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/GeneralColumnsAndRowChooser.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/GeneralColumnsAndRowChooser.java index 8b6c86811c..8b80da0a4b 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/GeneralColumnsAndRowChooser.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/GeneralColumnsAndRowChooser.java @@ -39,33 +39,39 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators; import org.gephi.datalab.plugin.manipulators.nodes.CopyNodeDataToOtherNodes; +import org.gephi.graph.api.Element; /** * Interface in common for choosing columns to manipulate. * Used to be able to get/set the columns to copy and row (node or edge) to user in the GeneralChooseColumnsAndRowUI. - * @author Eduardo Ramos + * + * @author Eduardo Ramos * @see CopyNodeDataToOtherNodes */ -public interface GeneralColumnsAndRowChooser extends GeneralColumnsChooser{ +public interface GeneralColumnsAndRowChooser extends GeneralColumnsChooser { /** * Provide rows (nodes or edges) to show in the GeneralChooseColumnsAndRowUI to be selected or not. + * * @return Nodes or edges set to select one */ - Object[] getRows(); + Element[] getRows(); /** * Provide initially selected node or edge in the GeneralChooseColumnsAndRowUI + * * @return Initially selected node or edge */ - Object getRow(); + Element getRow(); /** * The GeneralChooseColumnsAndRowUI will use this method to set the row to finally manipulate, after the GeneralChooseColumnsAndRowUI is closed. + * * @param row Selected node or edge depending on the manipulator */ - void setRow(Object row); + void setRow(Element row); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/GeneralColumnsChooser.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/GeneralColumnsChooser.java index fe65a05750..f7df4f4011 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/GeneralColumnsChooser.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/GeneralColumnsChooser.java @@ -39,34 +39,39 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators; -import org.gephi.data.attributes.api.AttributeColumn; import org.gephi.datalab.plugin.manipulators.nodes.ClearNodesData; +import org.gephi.graph.api.Column; /** * Interface in common for choosing columns to manipulate. * Used to be able to get/set the columns to clear in the GeneralChooseColumnsUI. - * @author Eduardo Ramos + * + * @author Eduardo Ramos * @see ClearNodesData */ -public interface GeneralColumnsChooser{ +public interface GeneralColumnsChooser { /** * Provide columns to show in the UI to be selected or not. * Normally provide all table columns that can be manipulated. + * * @return Columns to show in the GeneralChooseColumnsUI */ - AttributeColumn[] getColumns(); + Column[] getColumns(); /** * The GeneralChooseColumnsUI will use this method to set the columns to finally manipulate, after the GeneralChooseColumnsUI is closed. + * * @param columnsToClearData Columns to manipulate */ - void setColumns(AttributeColumn[] columnsToClearData); + void setColumns(Column[] columnsToClearData); /** * Provide title for the GeneralChooseColumnsUI. + * * @return Title name */ String getName(); diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ClearColumnData.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ClearColumnData.java index 364508d7b3..7429b900a9 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ClearColumnData.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ClearColumnData.java @@ -1,102 +1,113 @@ /* -Copyright 2008-2010 Gephi -Authors : Eduardo Ramos -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. + Copyright 2008-2010 Gephi + Authors : Eduardo Ramos + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2011 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns; import java.awt.Image; import javax.swing.JOptionPane; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; import org.gephi.datalab.api.AttributeColumnsController; import org.gephi.datalab.api.datatables.DataTablesController; import org.gephi.datalab.spi.columns.AttributeColumnsManipulator; import org.gephi.datalab.spi.columns.AttributeColumnsManipulatorUI; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Table; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; import org.openide.util.NbBundle; import org.openide.util.lookup.ServiceProvider; /** - * AttributeColumnsManipulator that clears all data of a AttributeColumn of a AttributeTable. - * Only allows to clear columns with DATA AttributeOrigin or the label column of nodes and edges table. - * @author Eduardo Ramos + * AttributeColumnsManipulator that clears all data of a Column of a AttributeTable. Only allows to clear columns with DATA AttributeOrigin or the label column of nodes and edges table. + * + * @author Eduardo Ramos */ @ServiceProvider(service = AttributeColumnsManipulator.class) public class ClearColumnData implements AttributeColumnsManipulator { - public void execute(AttributeTable table, AttributeColumn column) { - if (JOptionPane.showConfirmDialog(null, NbBundle.getMessage(ClearColumnData.class, "ClearColumnData.confirmation.message",column.getTitle()), getName(), JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) { + @Override + public void execute(Table table, Column column) { + if (JOptionPane.showConfirmDialog(null, + NbBundle.getMessage(ClearColumnData.class, "ClearColumnData.confirmation.message", column.getTitle()), + getName(), JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) { Lookup.getDefault().lookup(AttributeColumnsController.class).clearColumnData(table, column); Lookup.getDefault().lookup(DataTablesController.class).selectTable(table); } } + @Override public String getName() { return NbBundle.getMessage(ClearColumnData.class, "ClearColumnData.name"); } + @Override public String getDescription() { return ""; } - public boolean canManipulateColumn(AttributeTable table, AttributeColumn column) { + @Override + public boolean canManipulateColumn(Table table, Column column) { boolean result; AttributeColumnsController ac = Lookup.getDefault().lookup(AttributeColumnsController.class); - result=ac.canClearColumnData(column); - return result&&ac.getTableRowsCount(table)>0;//Also make sure that there is at least 1 row + result = ac.canClearColumnData(column); + return result && ac.getTableRowsCount(table) > 0;//Also make sure that there is at least 1 row } - public AttributeColumnsManipulatorUI getUI(AttributeTable table,AttributeColumn column) { + @Override + public AttributeColumnsManipulatorUI getUI(Table table, Column column) { return null; } + @Override public int getType() { return 0; } + @Override public int getPosition() { return 100; } + @Override public Image getIcon() { - return ImageUtilities.loadImage("org/gephi/datalab/plugin/manipulators/resources/table-delete-column.png"); + return ImageUtilities.loadImage("DataLaboratoryPlugin/table-clear-column.svg", false); } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ColumnValuesFrequency.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ColumnValuesFrequency.java index 10da23e50c..08814d9460 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ColumnValuesFrequency.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ColumnValuesFrequency.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns; import java.awt.Dimension; @@ -49,12 +50,13 @@ Development and Distribution License("CDDL") (collectively, the import java.util.Collections; import java.util.Comparator; import java.util.Map; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; import org.gephi.datalab.api.AttributeColumnsController; import org.gephi.datalab.plugin.manipulators.columns.ui.ColumnValuesFrequencyUI; import org.gephi.datalab.spi.columns.AttributeColumnsManipulator; import org.gephi.datalab.spi.columns.AttributeColumnsManipulatorUI; +import org.gephi.graph.api.AttributeUtils; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Table; import org.gephi.utils.HTMLEscape; import org.gephi.utils.TempDirUtils; import org.gephi.utils.TempDirUtils.TempDir; @@ -66,58 +68,68 @@ Development and Distribution License("CDDL") (collectively, the import org.openide.util.ImageUtilities; import org.openide.util.Lookup; import org.openide.util.NbBundle; -import org.openide.util.lookup.ServiceProvider; /** * AttributeColumnsManipulator that shows a report with a list of the different values of a column and their frequency of appearance. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ //@ServiceProvider(service = AttributeColumnsManipulator.class) public class ColumnValuesFrequency implements AttributeColumnsManipulator { public static final int MAX_PIE_CHART_CATEGORIES = 100; - public void execute(AttributeTable table, AttributeColumn column) { + @Override + public void execute(Table table, Column column) { } + @Override public String getName() { return NbBundle.getMessage(ColumnValuesFrequency.class, "ColumnValuesFrequency.name"); } + @Override public String getDescription() { return NbBundle.getMessage(ColumnValuesFrequency.class, "ColumnValuesFrequency.description"); } - public boolean canManipulateColumn(AttributeTable table, AttributeColumn column) { + @Override + public boolean canManipulateColumn(Table table, Column column) { AttributeColumnsController ac = Lookup.getDefault().lookup(AttributeColumnsController.class); return ac.getTableRowsCount(table) > 0;//Make sure that there is at least 1 row } - public AttributeColumnsManipulatorUI getUI(AttributeTable table,AttributeColumn column) { + @Override + public AttributeColumnsManipulatorUI getUI(Table table, Column column) { return new ColumnValuesFrequencyUI(); } + @Override public int getType() { return 100; } + @Override public int getPosition() { return 0; } + @Override public Image getIcon() { - return ImageUtilities.loadImage("org/gephi/datalab/plugin/manipulators/resources/frequency-list.png"); + return ImageUtilities.loadImage("DataLaboratoryPlugin/frequency-list.svg", false); } - public String getReportHTML(AttributeTable table, AttributeColumn column, Map valuesFrequencies, JFreeChart pieChart, Dimension dimension) { + public String getReportHTML(Table table, Column column, Map valuesFrequencies, JFreeChart pieChart, + Dimension dimension) { AttributeColumnsController ac = Lookup.getDefault().lookup(AttributeColumnsController.class); int totalValuesCount = ac.getTableRowsCount(table); - ArrayList values = new ArrayList(valuesFrequencies.keySet()); + ArrayList values = new ArrayList<>(valuesFrequencies.keySet()); //Try to sort the values when they are comparable. (All objects of the set will have the same type) and not null: if (!values.isEmpty() && values.get(0) instanceof Comparable) { Collections.sort(values, new Comparator() { + @Override public int compare(Object o1, Object o2) { //Check for null objects because some comparables can't handle them (like Float...) if (o1 == null) { @@ -142,7 +154,8 @@ public int compare(Object o1, Object o2) { final StringBuilder sb = new StringBuilder(); sb.append(""); - sb.append(NbBundle.getMessage(ColumnValuesFrequency.class, "ColumnValuesFrequency.report.header", HTMLEscape.stringToHTMLString(column.getTitle()))); + sb.append(NbBundle.getMessage(ColumnValuesFrequency.class, "ColumnValuesFrequency.report.header", + HTMLEscape.stringToHTMLString(column.getTitle()))); sb.append("
    "); sb.append("
      "); @@ -152,7 +165,8 @@ public int compare(Object o1, Object o2) { sb.append("
    "); sb.append("
    "); - if (!values.isEmpty() && values.size() <= MAX_PIE_CHART_CATEGORIES) {//Do not show pie chart if there are more than 100 different values + if (!values.isEmpty() && values.size() <= + MAX_PIE_CHART_CATEGORIES) {//Do not show pie chart if there are more than 100 different values try { if (pieChart != null) { writePieChart(sb, pieChart, dimension); @@ -161,20 +175,22 @@ public int compare(Object o1, Object o2) { Exceptions.printStackTrace(ex); } } else { - sb.append(NbBundle.getMessage(ColumnValuesFrequency.class, "ColumnValuesFrequency.report.piechart.not-shown")); + sb.append( + NbBundle.getMessage(ColumnValuesFrequency.class, "ColumnValuesFrequency.report.piechart.not-shown")); } sb.append(""); return sb.toString(); } - private void writeValue(final StringBuilder sb, final Object value, final Map valuesFrequencies, final float totalValuesCount) { + private void writeValue(final StringBuilder sb, final Object value, final Map valuesFrequencies, + final float totalValuesCount) { int frequency = valuesFrequencies.get(value); sb.append("
  • "); sb.append(""); if (value != null) { - sb.append(HTMLEscape.stringToHTMLString(value.toString())); + sb.append(HTMLEscape.stringToHTMLString(AttributeUtils.print(value))); } else { sb.append("null"); } @@ -187,31 +203,34 @@ private void writeValue(final StringBuilder sb, final Object value, final Map"); } - public Map buildValuesFrequencies(AttributeTable table, AttributeColumn column){ + public Map buildValuesFrequencies(Table table, Column column) { AttributeColumnsController ac = Lookup.getDefault().lookup(AttributeColumnsController.class); return ac.calculateColumnValuesFrequencies(table, column); } public JFreeChart buildPieChart(final Map valuesFrequencies) { - final ArrayList values= new ArrayList(valuesFrequencies.keySet()); + final ArrayList values = new ArrayList<>(valuesFrequencies.keySet()); DefaultPieDataset pieDataset = new DefaultPieDataset(); for (Object value : values) { - pieDataset.setValue(value != null ? "'" + value.toString() + "'" : "null", valuesFrequencies.get(value)); + pieDataset.setValue(value != null ? "'" + AttributeUtils.print(value) + "'" : "null", + valuesFrequencies.get(value)); } - JFreeChart chart = ChartFactory.createPieChart(NbBundle.getMessage(ColumnValuesFrequency.class, "ColumnValuesFrequency.report.piechart.title"), pieDataset, false, true, false); + JFreeChart chart = ChartFactory.createPieChart( + NbBundle.getMessage(ColumnValuesFrequency.class, "ColumnValuesFrequency.report.piechart.title"), pieDataset, + false, true, false); return chart; } private void writePieChart(final StringBuilder sb, JFreeChart chart, Dimension dimension) throws IOException { TempDir tempDir = TempDirUtils.createTempDir(); - String imageFile = ""; String fileName = "frequencies-pie-chart.png"; File file = tempDir.createFile(fileName); - imageFile = "
    "; - ChartUtilities.saveChartAsPNG(file, chart, dimension != null ? dimension.width : 1000, dimension != null ? dimension.height : 1000); + String imageFile = "
    "; + ChartUtilities.saveChartAsPNG(file, chart, dimension != null ? dimension.width : 1000, + dimension != null ? dimension.height : 1000); sb.append(imageFile); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ConvertColumnToDynamic.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ConvertColumnToDynamic.java index 877e02fec7..90d6c5c68b 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ConvertColumnToDynamic.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ConvertColumnToDynamic.java @@ -39,65 +39,86 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns; import java.awt.Image; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; import org.gephi.datalab.api.AttributeColumnsController; +import org.gephi.datalab.plugin.manipulators.columns.ui.ConvertColumnToDynamicTimestampsUI; import org.gephi.datalab.plugin.manipulators.columns.ui.ConvertColumnToDynamicUI; import org.gephi.datalab.spi.columns.AttributeColumnsManipulator; import org.gephi.datalab.spi.columns.AttributeColumnsManipulatorUI; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.GraphController; +import org.gephi.graph.api.Table; +import org.gephi.graph.api.TimeRepresentation; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; import org.openide.util.NbBundle; import org.openide.util.lookup.ServiceProvider; /** - * @author Eduardo Ramos + * @author Eduardo Ramos */ @ServiceProvider(service = AttributeColumnsManipulator.class) public class ConvertColumnToDynamic implements AttributeColumnsManipulator { private String title; private double low, high; - private boolean lopen, ropen; private boolean replaceColumn; - public void execute(AttributeTable table, AttributeColumn column) { + @Override + public void execute(Table table, Column column) { if (replaceColumn) { - Lookup.getDefault().lookup(AttributeColumnsController.class).convertAttributeColumnToDynamic(table, column, low, high, lopen, ropen); + Lookup.getDefault().lookup(AttributeColumnsController.class) + .convertAttributeColumnToDynamic(table, column, low, high); } else { - Lookup.getDefault().lookup(AttributeColumnsController.class).convertAttributeColumnToNewDynamicColumn(table, column, low, high, lopen, ropen, title); + Lookup.getDefault().lookup(AttributeColumnsController.class) + .convertAttributeColumnToNewDynamicColumn(table, column, low, high, title); } } + @Override public String getName() { return NbBundle.getMessage(ConvertColumnToDynamic.class, "ConvertColumnToDynamic.name"); } + @Override public String getDescription() { return ""; } - public boolean canManipulateColumn(AttributeTable table, AttributeColumn column) { + @Override + public boolean canManipulateColumn(Table table, Column column) { return Lookup.getDefault().lookup(AttributeColumnsController.class).canConvertColumnToDynamic(column); } - public AttributeColumnsManipulatorUI getUI(AttributeTable table, AttributeColumn column) { - return new ConvertColumnToDynamicUI(); + @Override + public AttributeColumnsManipulatorUI getUI(Table table, Column column) { + TimeRepresentation timeRepresentation = + Lookup.getDefault().lookup(GraphController.class).getGraphModel().getConfiguration() + .getTimeRepresentation(); + + if (timeRepresentation == TimeRepresentation.INTERVAL) { + return new ConvertColumnToDynamicUI(); + } else { + return new ConvertColumnToDynamicTimestampsUI(); + } } + @Override public int getType() { return 400; } + @Override public int getPosition() { return 0; } + @Override public Image getIcon() { - return ImageUtilities.loadImage("org/gephi/datalab/plugin/manipulators/resources/table-insert-column.png"); + return ImageUtilities.loadImage("DataLaboratoryPlugin/table-convert-dynamic-column.svg", false); } public String getTitle() { @@ -124,22 +145,6 @@ public void setHigh(double high) { this.high = high; } - public boolean isLopen() { - return lopen; - } - - public void setLopen(boolean lopen) { - this.lopen = lopen; - } - - public boolean isRopen() { - return ropen; - } - - public void setRopen(boolean ropen) { - this.ropen = ropen; - } - public boolean isReplaceColumn() { return replaceColumn; } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/CopyDataToOtherColumn.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/CopyDataToOtherColumn.java index f95dbd8f2b..c68e81754d 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/CopyDataToOtherColumn.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/CopyDataToOtherColumn.java @@ -39,71 +39,82 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns; import java.awt.Image; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; import org.gephi.datalab.api.AttributeColumnsController; import org.gephi.datalab.api.datatables.DataTablesController; import org.gephi.datalab.plugin.manipulators.columns.ui.CopyDataToOtherColumnUI; import org.gephi.datalab.spi.columns.AttributeColumnsManipulator; import org.gephi.datalab.spi.columns.AttributeColumnsManipulatorUI; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Table; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; import org.openide.util.NbBundle; import org.openide.util.lookup.ServiceProvider; /** - * AttributeColumnsManipulator that copies data from a AttributeColumn of a AttributeTable to other AttributeColumn. + * AttributeColumnsManipulator that copies data from a Column of a Table to other AttributeColumn. * Allows the user to select the target column in the UI - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ @ServiceProvider(service = AttributeColumnsManipulator.class) public class CopyDataToOtherColumn implements AttributeColumnsManipulator { - AttributeColumn targetColumn; + Column targetColumn; - public void execute(AttributeTable table, AttributeColumn column) { + @Override + public void execute(Table table, Column column) { if (targetColumn != null && targetColumn != column) { - Lookup.getDefault().lookup(AttributeColumnsController.class).copyColumnDataToOtherColumn(table, column, targetColumn); + Lookup.getDefault().lookup(AttributeColumnsController.class) + .copyColumnDataToOtherColumn(table, column, targetColumn); Lookup.getDefault().lookup(DataTablesController.class).refreshCurrentTable(); } } + @Override public String getName() { return NbBundle.getMessage(CopyDataToOtherColumn.class, "CopyDataToOtherColumn.name"); } + @Override public String getDescription() { return ""; } - public boolean canManipulateColumn(AttributeTable table, AttributeColumn column) { + @Override + public boolean canManipulateColumn(Table table, Column column) { return true; } - public AttributeColumnsManipulatorUI getUI(AttributeTable table,AttributeColumn column) { + @Override + public AttributeColumnsManipulatorUI getUI(Table table, Column column) { return new CopyDataToOtherColumnUI(); } + @Override public int getType() { return 0; } + @Override public int getPosition() { return 200; } + @Override public Image getIcon() { - return ImageUtilities.loadImage("org/gephi/datalab/plugin/manipulators/resources/table-duplicate-column.png"); + return ImageUtilities.loadImage("DataLaboratoryPlugin/table-copy-data-to-other-column.svg", false); } - public AttributeColumn getTargetColumn() { + public Column getTargetColumn() { return targetColumn; } - public void setTargetColumn(AttributeColumn targetColumn) { + public void setTargetColumn(Column targetColumn) { this.targetColumn = targetColumn; } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/CreateBooleanMatchesColumn.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/CreateBooleanMatchesColumn.java index 3a0b4e9da2..b1731c7146 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/CreateBooleanMatchesColumn.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/CreateBooleanMatchesColumn.java @@ -39,15 +39,16 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns; import java.awt.Image; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; import org.gephi.datalab.api.AttributeColumnsController; import org.gephi.datalab.plugin.manipulators.columns.ui.GeneralCreateColumnFromRegexUI; import org.gephi.datalab.spi.columns.AttributeColumnsManipulator; import org.gephi.datalab.spi.columns.AttributeColumnsManipulatorUI; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Table; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; import org.openide.util.NbBundle; @@ -57,44 +58,54 @@ Development and Distribution License("CDDL") (collectively, the * AttributeColumnsManipulator that creates a new boolean column from the given column and regular expression with boolean values that indicate if * each of the old column values match the regular expression. * Allows the user to select the title of the new column in the UI - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ @ServiceProvider(service = AttributeColumnsManipulator.class) -public class CreateBooleanMatchesColumn extends GeneralCreateColumnFromRegex{ - public void execute(AttributeTable table, AttributeColumn column) { +public class CreateBooleanMatchesColumn extends GeneralCreateColumnFromRegex { + @Override + public void execute(Table table, Column column) { if (pattern != null) { - Lookup.getDefault().lookup(AttributeColumnsController.class).createBooleanMatchesColumn(table, column, title, pattern); + Lookup.getDefault().lookup(AttributeColumnsController.class) + .createBooleanMatchesColumn(table, column, title, pattern); } } + @Override public String getName() { return NbBundle.getMessage(CreateBooleanMatchesColumn.class, "CreateBooleanMatchesColumn.name"); } + @Override public String getDescription() { return NbBundle.getMessage(CreateBooleanMatchesColumn.class, "CreateBooleanMatchesColumn.description"); } - public boolean canManipulateColumn(AttributeTable table, AttributeColumn column) { + @Override + public boolean canManipulateColumn(Table table, Column column) { AttributeColumnsController ac = Lookup.getDefault().lookup(AttributeColumnsController.class); - return ac.getTableRowsCount(table)>0;//Make sure that there is at least 1 row + return ac.getTableRowsCount(table) > 0;//Make sure that there is at least 1 row } - public AttributeColumnsManipulatorUI getUI(AttributeTable table,AttributeColumn column) { - GeneralCreateColumnFromRegexUI ui=new GeneralCreateColumnFromRegexUI(); + @Override + public AttributeColumnsManipulatorUI getUI(Table table, Column column) { + GeneralCreateColumnFromRegexUI ui = new GeneralCreateColumnFromRegexUI(); ui.setMode(GeneralCreateColumnFromRegexUI.Mode.BOOLEAN); return ui; } + @Override public int getType() { return 200; } + @Override public int getPosition() { return 0; } + @Override public Image getIcon() { - return ImageUtilities.loadImage("org/gephi/datalab/plugin/manipulators/resources/binocular--arrow.png"); + return ImageUtilities.loadImage("DataLaboratoryPlugin/table-create-boolean-column.svg", false); } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/CreateFoundGroupsListColumn.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/CreateFoundGroupsListColumn.java index a82780a7c8..849438576a 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/CreateFoundGroupsListColumn.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/CreateFoundGroupsListColumn.java @@ -39,15 +39,16 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns; import java.awt.Image; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; import org.gephi.datalab.api.AttributeColumnsController; import org.gephi.datalab.plugin.manipulators.columns.ui.GeneralCreateColumnFromRegexUI; import org.gephi.datalab.spi.columns.AttributeColumnsManipulator; import org.gephi.datalab.spi.columns.AttributeColumnsManipulatorUI; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Table; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; import org.openide.util.NbBundle; @@ -57,45 +58,55 @@ Development and Distribution License("CDDL") (collectively, the * AttributeColumnsManipulator that creates a new string list column from the given column and regular expression with values that are * the list of matching groups of the given regular expression. * Allows the user to select the title of the new column in the UI - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ @ServiceProvider(service = AttributeColumnsManipulator.class) public class CreateFoundGroupsListColumn extends GeneralCreateColumnFromRegex { - public void execute(AttributeTable table, AttributeColumn column) { + @Override + public void execute(Table table, Column column) { if (pattern != null) { - Lookup.getDefault().lookup(AttributeColumnsController.class).createFoundGroupsListColumn(table, column, title, pattern); + Lookup.getDefault().lookup(AttributeColumnsController.class) + .createFoundGroupsListColumn(table, column, title, pattern); } } + @Override public String getName() { return NbBundle.getMessage(CreateFoundGroupsListColumn.class, "CreateFoundGroupsListColumn.name"); } + @Override public String getDescription() { return NbBundle.getMessage(CreateFoundGroupsListColumn.class, "CreateFoundGroupsListColumn.description"); } - public boolean canManipulateColumn(AttributeTable table, AttributeColumn column) { + @Override + public boolean canManipulateColumn(Table table, Column column) { AttributeColumnsController ac = Lookup.getDefault().lookup(AttributeColumnsController.class); - return ac.getTableRowsCount(table)>0;//Make sure that there is at least 1 row + return ac.getTableRowsCount(table) > 0;//Make sure that there is at least 1 row } - public AttributeColumnsManipulatorUI getUI(AttributeTable table,AttributeColumn column) { + @Override + public AttributeColumnsManipulatorUI getUI(Table table, Column column) { GeneralCreateColumnFromRegexUI ui = new GeneralCreateColumnFromRegexUI(); ui.setMode(GeneralCreateColumnFromRegexUI.Mode.MATCHING_GROUPS); return ui; } + @Override public int getType() { return 200; } + @Override public int getPosition() { return 100; } + @Override public Image getIcon() { - return ImageUtilities.loadImage("org/gephi/datalab/plugin/manipulators/resources/binocular--arrow.png"); + return ImageUtilities.loadImage("DataLaboratoryPlugin/table-create-list-column-matching-groups.svg", false); } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/DeleteColumn.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/DeleteColumn.java index c7f59cfc92..36929fbef2 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/DeleteColumn.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/DeleteColumn.java @@ -1,99 +1,110 @@ /* -Copyright 2008-2010 Gephi -Authors : Eduardo Ramos -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. + Copyright 2008-2010 Gephi + Authors : Eduardo Ramos + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2011 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns; import java.awt.Image; import javax.swing.JOptionPane; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; import org.gephi.datalab.api.AttributeColumnsController; import org.gephi.datalab.api.datatables.DataTablesController; import org.gephi.datalab.spi.columns.AttributeColumnsManipulator; import org.gephi.datalab.spi.columns.AttributeColumnsManipulatorUI; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Table; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; import org.openide.util.NbBundle; import org.openide.util.lookup.ServiceProvider; /** - * AttributeColumnsManipulator that deletes a AttributeColumn of a AttributeTable. - * Only allows to delete columns with DATA AttributeOrigin. - * @author Eduardo Ramos + * AttributeColumnsManipulator that deletes a Column of a AttributeTable. Only allows to delete columns with DATA AttributeOrigin. + * + * @author Eduardo Ramos */ @ServiceProvider(service = AttributeColumnsManipulator.class) public class DeleteColumn implements AttributeColumnsManipulator { - public void execute(AttributeTable table, AttributeColumn column) { - if (JOptionPane.showConfirmDialog(null, NbBundle.getMessage(ClearColumnData.class, "DeleteColumn.confirmation.message", column.getTitle()), getName(), JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) { + @Override + public void execute(Table table, Column column) { + if (JOptionPane.showConfirmDialog(null, + NbBundle.getMessage(ClearColumnData.class, "DeleteColumn.confirmation.message", column.getTitle()), + getName(), JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) { Lookup.getDefault().lookup(AttributeColumnsController.class).deleteAttributeColumn(table, column); Lookup.getDefault().lookup(DataTablesController.class).selectTable(table); } } + @Override public String getName() { return NbBundle.getMessage(DeleteColumn.class, "DeleteColumn.name"); } + @Override public String getDescription() { return ""; } - public boolean canManipulateColumn(AttributeTable table, AttributeColumn column) { + @Override + public boolean canManipulateColumn(Table table, Column column) { return Lookup.getDefault().lookup(AttributeColumnsController.class).canDeleteColumn(column); } - public AttributeColumnsManipulatorUI getUI(AttributeTable table,AttributeColumn column) { + @Override + public AttributeColumnsManipulatorUI getUI(Table table, Column column) { return null; } + @Override public int getType() { return 0; } + @Override public int getPosition() { return 0; } + @Override public Image getIcon() { - return ImageUtilities.loadImage("org/gephi/datalab/plugin/manipulators/resources/table-delete-column.png"); + return ImageUtilities.loadImage("DataLaboratoryPlugin/table-delete-column.svg", false); } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/DuplicateColumn.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/DuplicateColumn.java index ef5aa620b1..22345f0bde 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/DuplicateColumn.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/DuplicateColumn.java @@ -39,61 +39,70 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns; import java.awt.Image; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; -import org.gephi.data.attributes.api.AttributeType; import org.gephi.datalab.api.AttributeColumnsController; import org.gephi.datalab.plugin.manipulators.columns.ui.DuplicateColumnUI; import org.gephi.datalab.spi.columns.AttributeColumnsManipulator; import org.gephi.datalab.spi.columns.AttributeColumnsManipulatorUI; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Table; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; import org.openide.util.NbBundle; import org.openide.util.lookup.ServiceProvider; /** - * AttributeColumnsManipulator that duplicate a AttributeColumn of a AttributeTable setting the same values for the rows. + * AttributeColumnsManipulator that duplicate a Column of a Table setting the same values for the rows. * Allows the user to select the title and AttributeType of the new column in the UI - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ @ServiceProvider(service = AttributeColumnsManipulator.class) public class DuplicateColumn implements AttributeColumnsManipulator { private String title; - private AttributeType columnType; + private Class columnType; - public void execute(AttributeTable table, AttributeColumn column) { + @Override + public void execute(Table table, Column column) { Lookup.getDefault().lookup(AttributeColumnsController.class).duplicateColumn(table, column, title, columnType); } + @Override public String getName() { return NbBundle.getMessage(DuplicateColumn.class, "DuplicateColumn.name"); } + @Override public String getDescription() { return ""; } - public boolean canManipulateColumn(AttributeTable table, AttributeColumn column) { + @Override + public boolean canManipulateColumn(Table table, Column column) { return true; } - public AttributeColumnsManipulatorUI getUI(AttributeTable table,AttributeColumn column) { + @Override + public AttributeColumnsManipulatorUI getUI(Table table, Column column) { return new DuplicateColumnUI(); } + @Override public int getType() { return 0; } + @Override public int getPosition() { return 400; } + @Override public Image getIcon() { - return ImageUtilities.loadImage("org/gephi/datalab/plugin/manipulators/resources/table-duplicate-column.png"); + return ImageUtilities.loadImage("DataLaboratoryPlugin/table-duplicate-column.svg", false); } public String getTitle() { @@ -104,11 +113,11 @@ public void setTitle(String title) { this.title = title; } - public AttributeType getColumnType() { + public Class getColumnType() { return columnType; } - public void setColumnType(AttributeType columnType) { + public void setColumnType(Class columnType) { this.columnType = columnType; } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/FillColumnWithValue.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/FillColumnWithValue.java index 53c1e1926e..077d59f7c6 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/FillColumnWithValue.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/FillColumnWithValue.java @@ -39,61 +39,73 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns; import java.awt.Image; import javax.swing.JOptionPane; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; import org.gephi.datalab.api.AttributeColumnsController; import org.gephi.datalab.api.datatables.DataTablesController; import org.gephi.datalab.spi.columns.AttributeColumnsManipulator; import org.gephi.datalab.spi.columns.AttributeColumnsManipulatorUI; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Table; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; import org.openide.util.NbBundle; import org.openide.util.lookup.ServiceProvider; /** - * AttributeColumnsManipulator that fills an AttributeColumn with the value that the user provides in the UI. - * @author Eduardo Ramos + * AttributeColumnsManipulator that fills an Column with the value that the user provides in the UI. + * + * @author Eduardo Ramos */ @ServiceProvider(service = AttributeColumnsManipulator.class) public class FillColumnWithValue implements AttributeColumnsManipulator { - public void execute(AttributeTable table, AttributeColumn column) { - String value = JOptionPane.showInputDialog(null,NbBundle.getMessage(FillColumnWithValue.class, "FillColumnWithValue.inputDialog.text"),getName(),JOptionPane.QUESTION_MESSAGE); + @Override + public void execute(Table table, Column column) { + String value = JOptionPane.showInputDialog(null, + NbBundle.getMessage(FillColumnWithValue.class, "FillColumnWithValue.inputDialog.text"), getName(), + JOptionPane.QUESTION_MESSAGE); if (value != null) { Lookup.getDefault().lookup(AttributeColumnsController.class).fillColumnWithValue(table, column, value); Lookup.getDefault().lookup(DataTablesController.class).refreshCurrentTable(); } } + @Override public String getName() { return NbBundle.getMessage(FillColumnWithValue.class, "FillColumnWithValue.name"); } + @Override public String getDescription() { return ""; } - public boolean canManipulateColumn(AttributeTable table, AttributeColumn column) { + @Override + public boolean canManipulateColumn(Table table, Column column) { return Lookup.getDefault().lookup(AttributeColumnsController.class).canChangeColumnData(column); } - public AttributeColumnsManipulatorUI getUI(AttributeTable table,AttributeColumn column) { + @Override + public AttributeColumnsManipulatorUI getUI(Table table, Column column) { return null; } + @Override public int getType() { return 0; } + @Override public int getPosition() { return 300; } + @Override public Image getIcon() { - return ImageUtilities.loadImage("org/gephi/datalab/plugin/manipulators/resources/table-duplicate-column.png"); + return ImageUtilities.loadImage("DataLaboratoryPlugin/table-fill-column.svg", false); } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/GeneralCreateColumnFromRegex.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/GeneralCreateColumnFromRegex.java index 974f9b55a3..b9b538c537 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/GeneralCreateColumnFromRegex.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/GeneralCreateColumnFromRegex.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns; import java.util.regex.Pattern; @@ -47,9 +48,10 @@ Development and Distribution License("CDDL") (collectively, the /** * General abstract class for AttributeColumnManipulators that create a new column from a regular expression and another column. * They need a title for the new column and a pattern (regex). - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -public abstract class GeneralCreateColumnFromRegex implements AttributeColumnsManipulator{ +public abstract class GeneralCreateColumnFromRegex implements AttributeColumnsManipulator { protected String title; protected Pattern pattern; diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/NegateBooleanColumn.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/NegateBooleanColumn.java index b45026d131..4ee532e72f 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/NegateBooleanColumn.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/NegateBooleanColumn.java @@ -1,54 +1,54 @@ /* -Copyright 2008-2010 Gephi -Authors : Eduardo Ramos -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. + Copyright 2008-2010 Gephi + Authors : Eduardo Ramos + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2011 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns; import java.awt.Image; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; -import org.gephi.data.attributes.api.AttributeType; import org.gephi.datalab.api.AttributeColumnsController; import org.gephi.datalab.api.datatables.DataTablesController; import org.gephi.datalab.spi.columns.AttributeColumnsManipulator; import org.gephi.datalab.spi.columns.AttributeColumnsManipulatorUI; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Table; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; import org.openide.util.NbBundle; @@ -56,41 +56,50 @@ Development and Distribution License("CDDL") (collectively, the /** * AttributeColumnsManipulator that negates the not null values of a boolean or boolean list column. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ @ServiceProvider(service = AttributeColumnsManipulator.class) public class NegateBooleanColumn implements AttributeColumnsManipulator { - public void execute(AttributeTable table, AttributeColumn column) { + @Override + public void execute(Table table, Column column) { Lookup.getDefault().lookup(AttributeColumnsController.class).negateBooleanColumn(table, column); Lookup.getDefault().lookup(DataTablesController.class).refreshCurrentTable(); } + @Override public String getName() { return NbBundle.getMessage(NegateBooleanColumn.class, "NegateBooleanColumn.name"); } + @Override public String getDescription() { return ""; } - public boolean canManipulateColumn(AttributeTable table, AttributeColumn column) { - return column.getType()==AttributeType.BOOLEAN||column.getType()==AttributeType.LIST_BOOLEAN; + @Override + public boolean canManipulateColumn(Table table, Column column) { + return column.getTypeClass() == Boolean.class || column.getTypeClass() == Boolean[].class; } - public AttributeColumnsManipulatorUI getUI(AttributeTable table,AttributeColumn column) { + @Override + public AttributeColumnsManipulatorUI getUI(Table table, Column column) { return null; } + @Override public int getType() { return 300; } + @Override public int getPosition() { return 0; } + @Override public Image getIcon() { - return ImageUtilities.loadImage("org/gephi/datalab/plugin/manipulators/resources/ui-check-boxes.png"); + return ImageUtilities.loadImage("DataLaboratoryPlugin/table-negate-boolean-column.svg", false); } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/NumberColumnStatisticsReport.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/NumberColumnStatisticsReport.java index 3f5cb6c85b..537018b70e 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/NumberColumnStatisticsReport.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/NumberColumnStatisticsReport.java @@ -39,60 +39,71 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns; import java.awt.Image; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; -import org.gephi.data.attributes.api.AttributeUtils; import org.gephi.datalab.api.AttributeColumnsController; import org.gephi.datalab.plugin.manipulators.ui.GeneralNumberListStatisticsReportUI; import org.gephi.datalab.spi.columns.AttributeColumnsManipulator; import org.gephi.datalab.spi.columns.AttributeColumnsManipulatorUI; +import org.gephi.graph.api.AttributeUtils; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Table; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; import org.openide.util.NbBundle; /** * AttributeColumnsManipulator that shows a report with statistics values and charts of a number/number list column. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ //@ServiceProvider(service = AttributeColumnsManipulator.class) public class NumberColumnStatisticsReport implements AttributeColumnsManipulator { - public void execute(AttributeTable table, AttributeColumn column) { + @Override + public void execute(Table table, Column column) { } + @Override public String getName() { return getMessage("NumberColumnStatisticsReport.name"); } + @Override public String getDescription() { return getMessage("NumberColumnStatisticsReport.description"); } - public boolean canManipulateColumn(AttributeTable table, AttributeColumn column) { + @Override + public boolean canManipulateColumn(Table table, Column column) { AttributeColumnsController ac = Lookup.getDefault().lookup(AttributeColumnsController.class); - return AttributeUtils.getDefault().isNumberOrNumberListColumn(column) && ac.getTableRowsCount(table) > 0;//Make sure it is a number/number list column and there is at least 1 row + return AttributeUtils.isNumberType(column.getTypeClass()) && + ac.getTableRowsCount(table) > 0;//Make sure it is a number/number list column and there is at least 1 row } - public AttributeColumnsManipulatorUI getUI(AttributeTable table,AttributeColumn column) { + @Override + public AttributeColumnsManipulatorUI getUI(Table table, Column column) { return new GeneralNumberListStatisticsReportUI(getColumnNumbers(table, column), column.getTitle(), getName()); } + @Override public int getType() { return 100; } + @Override public int getPosition() { return 100; } + @Override public Image getIcon() { - return ImageUtilities.loadImage("org/gephi/datalab/plugin/manipulators/resources/statistics.png"); + return ImageUtilities.loadImage("DataLaboratoryPlugin/statistics.svg", false); } - public Number[] getColumnNumbers(final AttributeTable table, final AttributeColumn column) { + public Number[] getColumnNumbers(final Table table, final Column column) { AttributeColumnsController ac = Lookup.getDefault().lookup(AttributeColumnsController.class); Number[] columnNumbers = ac.getColumnNumbers(table, column); return columnNumbers; diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/AverageNumber.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/AverageNumber.java index 0f44553e5c..e5b1b3b3a1 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/AverageNumber.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/AverageNumber.java @@ -39,16 +39,17 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns.merge; import javax.swing.Icon; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; -import org.gephi.data.attributes.api.AttributeUtils; import org.gephi.datalab.api.AttributeColumnsMergeStrategiesController; import org.gephi.datalab.plugin.manipulators.columns.merge.ui.GeneralColumnTitleChooserUI; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.datalab.spi.columns.merge.AttributeColumnsMergeStrategy; +import org.gephi.graph.api.AttributeUtils; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Table; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; import org.openide.util.NbBundle; @@ -56,59 +57,79 @@ Development and Distribution License("CDDL") (collectively, the /** * AttributeColumnsMergeStrategy for any combination of number or number list columns that * calculates the average of all the values and creates a new BigDecimal column with the result of each row. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -public class AverageNumber implements AttributeColumnsMergeStrategy, GeneralColumnTitleChooser{ - private AttributeTable table; - private AttributeColumn[] columns; +public class AverageNumber implements AttributeColumnsMergeStrategy, GeneralColumnTitleChooser { + private Table table; + private Column[] columns; private String columnTitle; - public void setup(AttributeTable table, AttributeColumn[] columns) { - this.table=table; - this.columns=columns; + @Override + public void setup(Table table, Column[] columns) { + this.table = table; + this.columns = columns; } + @Override public void execute() { - Lookup.getDefault().lookup(AttributeColumnsMergeStrategiesController.class).averageNumberMerge(table, columns, columnTitle); + Lookup.getDefault().lookup(AttributeColumnsMergeStrategiesController.class) + .averageNumberMerge(table, columns, columnTitle); } + @Override public String getName() { return NbBundle.getMessage(AverageNumber.class, "AverageNumber.name"); } + @Override public String getDescription() { return NbBundle.getMessage(AverageNumber.class, "AverageNumber.description"); } + @Override public boolean canExecute() { - return AttributeUtils.getDefault().areAllNumberOrNumberListColumns(columns); + for (Column column : columns) { + if (!AttributeUtils.isNumberType(column.getTypeClass())) { + return false; + } + } + + return true; } + @Override public ManipulatorUI getUI() { return new GeneralColumnTitleChooserUI(); } + @Override public int getType() { return 100; } + @Override public int getPosition() { return 0; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/balance.png",true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/balance.svg", false); } - public AttributeTable getTable() { + @Override + public Table getTable() { return table; } + @Override public String getColumnTitle() { return columnTitle; } + @Override public void setColumnTitle(String columnTitle) { - this.columnTitle=columnTitle; + this.columnTitle = columnTitle; } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/AverageNumberBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/AverageNumberBuilder.java index 2010b311c9..17f745773d 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/AverageNumberBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/AverageNumberBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns.merge; import org.gephi.datalab.spi.columns.merge.AttributeColumnsMergeStrategy; @@ -47,11 +48,13 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for AverageNumber AttributeColumnsMergeStrategy. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=AttributeColumnsMergeStrategyBuilder.class) -public class AverageNumberBuilder implements AttributeColumnsMergeStrategyBuilder{ +@ServiceProvider(service = AttributeColumnsMergeStrategyBuilder.class) +public class AverageNumberBuilder implements AttributeColumnsMergeStrategyBuilder { + @Override public AttributeColumnsMergeStrategy getAttributeColumnsMergeStrategy() { return new AverageNumber(); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/BooleanLogicOperations.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/BooleanLogicOperations.java index 3642a45723..711162b99e 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/BooleanLogicOperations.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/BooleanLogicOperations.java @@ -1,107 +1,122 @@ /* -Copyright 2008-2010 Gephi -Authors : Eduardo Ramos -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. + Copyright 2008-2010 Gephi + Authors : Eduardo Ramos + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2011 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns.merge; import javax.swing.Icon; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; -import org.gephi.data.attributes.api.AttributeType; -import org.gephi.data.attributes.api.AttributeUtils; import org.gephi.datalab.api.AttributeColumnsMergeStrategiesController; import org.gephi.datalab.api.AttributeColumnsMergeStrategiesController.BooleanOperations; import org.gephi.datalab.plugin.manipulators.columns.merge.ui.BooleanLogicOperationsUI; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.datalab.spi.columns.merge.AttributeColumnsMergeStrategy; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Table; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; import org.openide.util.NbBundle; /** - * AttributeColumnsMergeStrategy for only all boolean columns that allows the user to select - * each operation to apply between each pair of columns to merge. - * @author Eduardo Ramos + * AttributeColumnsMergeStrategy for only all boolean columns that allows the user to select each operation to apply between each pair of columns to merge. + * + * @author Eduardo Ramos */ -public class BooleanLogicOperations implements AttributeColumnsMergeStrategy{ - private AttributeTable table; - private AttributeColumn[] columns; +public class BooleanLogicOperations implements AttributeColumnsMergeStrategy { + + private Table table; + private Column[] columns; private String newColumnTitle; - private BooleanOperations[] booleanOperations; + private BooleanOperations[] booleanOperations; - public void setup(AttributeTable table, AttributeColumn[] columns) { - this.columns=columns; - this.table=table; + @Override + public void setup(Table table, Column[] columns) { + this.columns = columns; + this.table = table; } + @Override public void execute() { - Lookup.getDefault().lookup(AttributeColumnsMergeStrategiesController.class).booleanLogicOperationsMerge(table, columns, booleanOperations, newColumnTitle); + Lookup.getDefault().lookup(AttributeColumnsMergeStrategiesController.class) + .booleanLogicOperationsMerge(table, columns, booleanOperations, newColumnTitle); } + @Override public String getName() { return NbBundle.getMessage(BooleanLogicOperations.class, "BooleanLogicOperations.name"); } + @Override public String getDescription() { return NbBundle.getMessage(BooleanLogicOperations.class, "BooleanLogicOperations.description"); } + @Override public boolean canExecute() { - AttributeUtils attributeUtils=AttributeUtils.getDefault(); - return attributeUtils.areAllColumnsOfType(columns, AttributeType.BOOLEAN); + for (Column column : columns) { + if (column.getTypeClass() != Boolean.class) { + return false; + } + } + + return true; } + @Override public ManipulatorUI getUI() { return new BooleanLogicOperationsUI(); } + @Override public int getType() { return 200; } + @Override public int getPosition() { return 0; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/script-binary.png",true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/script-binary.svg", false); } public BooleanOperations[] getBooleanOperations() { @@ -120,11 +135,11 @@ public void setNewColumnTitle(String newColumnTitle) { this.newColumnTitle = newColumnTitle; } - public AttributeColumn[] getColumns() { + public Column[] getColumns() { return columns; } - public AttributeTable getTable() { + public Table getTable() { return table; } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/BooleanLogicOperationsBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/BooleanLogicOperationsBuilder.java index 1cee06010d..a30b7f23c2 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/BooleanLogicOperationsBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/BooleanLogicOperationsBuilder.java @@ -48,11 +48,13 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for BooleanLogicOperations AttributeColumnsMergeStrategy. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=AttributeColumnsMergeStrategyBuilder.class) -public class BooleanLogicOperationsBuilder implements AttributeColumnsMergeStrategyBuilder{ +@ServiceProvider(service = AttributeColumnsMergeStrategyBuilder.class) +public class BooleanLogicOperationsBuilder implements AttributeColumnsMergeStrategyBuilder { + @Override public AttributeColumnsMergeStrategy getAttributeColumnsMergeStrategy() { return new BooleanLogicOperations(); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/CreateTimeInterval.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/CreateTimeInterval.java index a171388fde..9c5949bd30 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/CreateTimeInterval.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/CreateTimeInterval.java @@ -39,80 +39,100 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns.merge; import java.text.SimpleDateFormat; import javax.swing.Icon; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; import org.gephi.datalab.api.AttributeColumnsMergeStrategiesController; import org.gephi.datalab.plugin.manipulators.columns.merge.ui.CreateTimeIntervalUI; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.datalab.spi.columns.merge.AttributeColumnsMergeStrategy; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.GraphController; +import org.gephi.graph.api.Table; +import org.gephi.graph.api.TimeRepresentation; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; import org.openide.util.NbBundle; /** - * AttributeColumnsMergeStrategy for 1 or 2 columns that uses the column values as dates or numbers for start/end times - * to create or fill the TimeInterval column for each row. - * @author Eduardo Ramos + * AttributeColumnsMergeStrategy for 1 or 2 columns that uses the column values as dates or numbers for start/end times to create or fill the TimeInterval column for each row. + * + * @author Eduardo Ramos */ public class CreateTimeInterval implements AttributeColumnsMergeStrategy { - private AttributeTable table; - private AttributeColumn[] columns; - private AttributeColumn startColumn, endColumn; - private boolean parseNumbers=true; + private Table table; + private Column[] columns; + private Column startColumn, endColumn; + private boolean parseNumbers = true; //Number mode: private double startNumber, endNumber; //Date mode: private SimpleDateFormat dateFormat; private String startDate, endDate; - public void setup(AttributeTable table, AttributeColumn[] columns) { + @Override + public void setup(Table table, Column[] columns) { this.table = table; this.columns = columns; } + @Override public void execute() { - AttributeColumnsMergeStrategiesController ac=Lookup.getDefault().lookup(AttributeColumnsMergeStrategiesController.class); - if(parseNumbers){ + AttributeColumnsMergeStrategiesController ac = + Lookup.getDefault().lookup(AttributeColumnsMergeStrategiesController.class); + if (parseNumbers) { ac.mergeNumericColumnsToTimeInterval(table, startColumn, endColumn, startNumber, endNumber); - }else{ + } else { ac.mergeDateColumnsToTimeInterval(table, startColumn, endColumn, dateFormat, startDate, endDate); } } + @Override public String getName() { return NbBundle.getMessage(CreateTimeInterval.class, "CreateTimeInterval.name"); } + @Override public String getDescription() { return NbBundle.getMessage(CreateTimeInterval.class, "CreateTimeInterval.description"); } + @Override public boolean canExecute() { + TimeRepresentation timeRepresentation = + Lookup.getDefault().lookup(GraphController.class).getGraphModel().getConfiguration() + .getTimeRepresentation(); + if (timeRepresentation != TimeRepresentation.INTERVAL) { + return false; + } + return columns.length == 1 || columns.length == 2; } + @Override public ManipulatorUI getUI() { return new CreateTimeIntervalUI(); } + @Override public int getType() { return 0; } + @Override public int getPosition() { return 200; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/clock-select.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/clock-select.svg", false); } - public AttributeColumn[] getColumns() { + public Column[] getColumns() { return columns; } @@ -124,11 +144,11 @@ public void setDateFormat(SimpleDateFormat dateFormat) { this.dateFormat = dateFormat; } - public AttributeColumn getEndColumn() { + public Column getEndColumn() { return endColumn; } - public void setEndColumn(AttributeColumn endColumn) { + public void setEndColumn(Column endColumn) { this.endColumn = endColumn; } @@ -156,11 +176,11 @@ public void setParseNumbers(boolean parseNumbers) { this.parseNumbers = parseNumbers; } - public AttributeColumn getStartColumn() { + public Column getStartColumn() { return startColumn; } - public void setStartColumn(AttributeColumn startColumn) { + public void setStartColumn(Column startColumn) { this.startColumn = startColumn; } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/CreateTimeIntervalBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/CreateTimeIntervalBuilder.java index 5eff4ddff2..fde513f0b5 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/CreateTimeIntervalBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/CreateTimeIntervalBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns.merge; import org.gephi.datalab.spi.columns.merge.AttributeColumnsMergeStrategy; @@ -47,11 +48,13 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for CreateTimeInterval AttributeColumnsMergeStrategyBuilder. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=AttributeColumnsMergeStrategyBuilder.class) -public class CreateTimeIntervalBuilder implements AttributeColumnsMergeStrategyBuilder{ +@ServiceProvider(service = AttributeColumnsMergeStrategyBuilder.class) +public class CreateTimeIntervalBuilder implements AttributeColumnsMergeStrategyBuilder { + @Override public AttributeColumnsMergeStrategy getAttributeColumnsMergeStrategy() { return new CreateTimeInterval(); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/FirstQuartileNumber.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/FirstQuartileNumber.java index cb6130d0eb..28ca39716c 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/FirstQuartileNumber.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/FirstQuartileNumber.java @@ -39,75 +39,95 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns.merge; import javax.swing.Icon; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; -import org.gephi.data.attributes.api.AttributeUtils; import org.gephi.datalab.api.AttributeColumnsMergeStrategiesController; import org.gephi.datalab.plugin.manipulators.columns.merge.ui.GeneralColumnTitleChooserUI; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.datalab.spi.columns.merge.AttributeColumnsMergeStrategy; +import org.gephi.graph.api.AttributeUtils; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Table; import org.openide.util.Lookup; import org.openide.util.NbBundle; /** * AttributeColumnsMergeStrategy for any combination of number or number list columns that * calculates the first quartile (Q1) of all the values and creates a new BigDecimal column with the result of each row. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class FirstQuartileNumber implements AttributeColumnsMergeStrategy, GeneralColumnTitleChooser { - private AttributeTable table; - private AttributeColumn[] columns; + private Table table; + private Column[] columns; private String columnTitle; - public void setup(AttributeTable table, AttributeColumn[] columns) { + @Override + public void setup(Table table, Column[] columns) { this.table = table; this.columns = columns; } + @Override public void execute() { - Lookup.getDefault().lookup(AttributeColumnsMergeStrategiesController.class).firstQuartileNumberMerge(table, columns, columnTitle); + Lookup.getDefault().lookup(AttributeColumnsMergeStrategiesController.class) + .firstQuartileNumberMerge(table, columns, columnTitle); } + @Override public String getName() { return NbBundle.getMessage(FirstQuartileNumber.class, "FirstQuartileNumber.name"); } + @Override public String getDescription() { return NbBundle.getMessage(FirstQuartileNumber.class, "FirstQuartileNumber.description"); } + @Override public boolean canExecute() { - return AttributeUtils.getDefault().areAllNumberOrNumberListColumns(columns); + for (Column column : columns) { + if (!AttributeUtils.isNumberType(column.getTypeClass())) { + return false; + } + } + return true; } + @Override public ManipulatorUI getUI() { return new GeneralColumnTitleChooserUI(); } + @Override public int getType() { return 100; } + @Override public int getPosition() { return 100; } + @Override public Icon getIcon() { return null; } - public AttributeTable getTable() { + @Override + public Table getTable() { return table; } + @Override public String getColumnTitle() { return columnTitle; } + @Override public void setColumnTitle(String columnTitle) { this.columnTitle = columnTitle; } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/FirstQuartileNumberBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/FirstQuartileNumberBuilder.java index f3d43c7a9c..9814dd90a8 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/FirstQuartileNumberBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/FirstQuartileNumberBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns.merge; @@ -48,11 +49,13 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for MedianNumber AttributeColumnsMergeStrategy. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=AttributeColumnsMergeStrategyBuilder.class) -public class FirstQuartileNumberBuilder implements AttributeColumnsMergeStrategyBuilder{ +@ServiceProvider(service = AttributeColumnsMergeStrategyBuilder.class) +public class FirstQuartileNumberBuilder implements AttributeColumnsMergeStrategyBuilder { + @Override public AttributeColumnsMergeStrategy getAttributeColumnsMergeStrategy() { return new FirstQuartileNumber(); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/GeneralColumnTitleChooser.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/GeneralColumnTitleChooser.java index 0c8d3cbeb8..62d7d0d45c 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/GeneralColumnTitleChooser.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/GeneralColumnTitleChooser.java @@ -39,32 +39,37 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns.merge; -import org.gephi.data.attributes.api.AttributeTable; +import org.gephi.graph.api.Table; /** * Interface that general merge strategies that only need to choose a title for the column to create * should implement in order to be able to use GeneralColumnTitleChooserUI. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public interface GeneralColumnTitleChooser { /** * Provide a initial title for the UI if needed. + * * @return Title */ String getColumnTitle(); /** * Called from the UI to set the final title to use. + * * @param columnTitle Title */ void setColumnTitle(String columnTitle); /** * Manipulators must provide the table to use in the UI to validate the column title with this method. + * * @return Table for the new column */ - AttributeTable getTable(); + Table getTable(); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/InterQuartileRangeNumber.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/InterQuartileRangeNumber.java index 4c50ec0d70..48423c3668 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/InterQuartileRangeNumber.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/InterQuartileRangeNumber.java @@ -39,75 +39,95 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns.merge; import javax.swing.Icon; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; -import org.gephi.data.attributes.api.AttributeUtils; import org.gephi.datalab.api.AttributeColumnsMergeStrategiesController; import org.gephi.datalab.plugin.manipulators.columns.merge.ui.GeneralColumnTitleChooserUI; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.datalab.spi.columns.merge.AttributeColumnsMergeStrategy; +import org.gephi.graph.api.AttributeUtils; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Table; import org.openide.util.Lookup; import org.openide.util.NbBundle; /** * AttributeColumnsMergeStrategy for any combination of number or number list columns that * calculates the interquartile range (IQR) of all the values and creates a new BigDecimal column with the result of each row. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class InterQuartileRangeNumber implements AttributeColumnsMergeStrategy, GeneralColumnTitleChooser { - private AttributeTable table; - private AttributeColumn[] columns; + private Table table; + private Column[] columns; private String columnTitle; - public void setup(AttributeTable table, AttributeColumn[] columns) { + @Override + public void setup(Table table, Column[] columns) { this.table = table; this.columns = columns; } + @Override public void execute() { - Lookup.getDefault().lookup(AttributeColumnsMergeStrategiesController.class).interQuartileRangeNumberMerge(table, columns, columnTitle); + Lookup.getDefault().lookup(AttributeColumnsMergeStrategiesController.class) + .interQuartileRangeNumberMerge(table, columns, columnTitle); } + @Override public String getName() { return NbBundle.getMessage(InterQuartileRangeNumber.class, "InterQuartileRangeNumber.name"); } + @Override public String getDescription() { return NbBundle.getMessage(InterQuartileRangeNumber.class, "InterQuartileRangeNumber.description"); } + @Override public boolean canExecute() { - return AttributeUtils.getDefault().areAllNumberOrNumberListColumns(columns); + for (Column column : columns) { + if (!AttributeUtils.isNumberType(column.getTypeClass())) { + return false; + } + } + return true; } + @Override public ManipulatorUI getUI() { return new GeneralColumnTitleChooserUI(); } + @Override public int getType() { return 100; } + @Override public int getPosition() { return 400; } + @Override public Icon getIcon() { return null; } - public AttributeTable getTable() { + @Override + public Table getTable() { return table; } + @Override public String getColumnTitle() { return columnTitle; } + @Override public void setColumnTitle(String columnTitle) { this.columnTitle = columnTitle; } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/InterQuartileRangeNumberBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/InterQuartileRangeNumberBuilder.java index aa5c1f5d59..50142cc3a1 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/InterQuartileRangeNumberBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/InterQuartileRangeNumberBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns.merge; import org.gephi.datalab.spi.columns.merge.AttributeColumnsMergeStrategy; @@ -47,11 +48,13 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for MedianNumber AttributeColumnsMergeStrategy. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=AttributeColumnsMergeStrategyBuilder.class) -public class InterQuartileRangeNumberBuilder implements AttributeColumnsMergeStrategyBuilder{ +@ServiceProvider(service = AttributeColumnsMergeStrategyBuilder.class) +public class InterQuartileRangeNumberBuilder implements AttributeColumnsMergeStrategyBuilder { + @Override public AttributeColumnsMergeStrategy getAttributeColumnsMergeStrategy() { return new InterQuartileRangeNumber(); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/JoinNumberColumns.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/JoinNumberColumns.java index 17b3ceb022..843f4872fa 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/JoinNumberColumns.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/JoinNumberColumns.java @@ -1,115 +1,135 @@ /* -Copyright 2008-2010 Gephi -Authors : Eduardo Ramos -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. + Copyright 2008-2010 Gephi + Authors : Eduardo Ramos + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2011 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns.merge; import javax.swing.Icon; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; -import org.gephi.data.attributes.api.AttributeType; -import org.gephi.data.attributes.api.AttributeUtils; import org.gephi.datalab.api.AttributeColumnsMergeStrategiesController; import org.gephi.datalab.plugin.manipulators.columns.merge.ui.GeneralColumnTitleChooserUI; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.datalab.spi.columns.merge.AttributeColumnsMergeStrategy; +import org.gephi.graph.api.AttributeUtils; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Table; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; import org.openide.util.NbBundle; /** - * AttributeColumnsMergeStrategy that joins one or more number column into a number list column with AttributeType LIST_BIGDECIMAL - * @author Eduardo Ramos + * AttributeColumnsMergeStrategy that joins one or more number column into a number list column with AttributeType + * double[] + * + * @author Eduardo Ramos */ public class JoinNumberColumns implements AttributeColumnsMergeStrategy, GeneralColumnTitleChooser { private static final String SEPARATOR = ","; - private AttributeTable table; - private AttributeColumn[] columns; + private Table table; + private Column[] columns; private String columnTitle; - public void setup(AttributeTable table, AttributeColumn[] columns) { + @Override + public void setup(Table table, Column[] columns) { this.table = table; this.columns = columns; } + @Override public void execute() { - Lookup.getDefault().lookup(AttributeColumnsMergeStrategiesController.class).joinWithSeparatorMerge(table, columns, AttributeType.LIST_BIGDECIMAL, columnTitle, SEPARATOR); + Lookup.getDefault().lookup(AttributeColumnsMergeStrategiesController.class) + .joinWithSeparatorMerge(table, columns, double[].class, columnTitle, SEPARATOR); } + @Override public String getName() { return NbBundle.getMessage(JoinNumberColumns.class, "JoinNumberColumns.name"); } + @Override public String getDescription() { return NbBundle.getMessage(JoinNumberColumns.class, "JoinNumberColumns.description"); } + @Override public boolean canExecute() { - return AttributeUtils.getDefault().areAllNumberOrNumberListColumns(columns); + for (Column column : columns) { + if (!AttributeUtils.isNumberType(column.getTypeClass())) { + return false; + } + } + return true; } + @Override public ManipulatorUI getUI() { return new GeneralColumnTitleChooserUI(); } + @Override public int getType() { return 0; } + @Override public int getPosition() { return 100; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/join.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/join.svg", false); } - public AttributeTable getTable() { + @Override + public Table getTable() { return table; } + @Override public String getColumnTitle() { return columnTitle; } + @Override public void setColumnTitle(String columnTitle) { this.columnTitle = columnTitle; } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/JoinNumberColumnsBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/JoinNumberColumnsBuilder.java index b71dfc8148..f355141618 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/JoinNumberColumnsBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/JoinNumberColumnsBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns.merge; import org.gephi.datalab.spi.columns.merge.AttributeColumnsMergeStrategy; @@ -47,11 +48,13 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for JoinNumberColumns AttributeColumnsMergeStrategy. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=AttributeColumnsMergeStrategyBuilder.class) -public class JoinNumberColumnsBuilder implements AttributeColumnsMergeStrategyBuilder{ +@ServiceProvider(service = AttributeColumnsMergeStrategyBuilder.class) +public class JoinNumberColumnsBuilder implements AttributeColumnsMergeStrategyBuilder { + @Override public AttributeColumnsMergeStrategy getAttributeColumnsMergeStrategy() { return new JoinNumberColumns(); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/JoinWithSeparator.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/JoinWithSeparator.java index d38e6b4d2a..a806ed708e 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/JoinWithSeparator.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/JoinWithSeparator.java @@ -39,15 +39,16 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns.merge; import javax.swing.Icon; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; import org.gephi.datalab.api.AttributeColumnsMergeStrategiesController; import org.gephi.datalab.plugin.manipulators.columns.merge.ui.JoinWithSeparatorUI; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.datalab.spi.columns.merge.AttributeColumnsMergeStrategy; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Table; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; import org.openide.util.NbBundle; @@ -56,53 +57,65 @@ Development and Distribution License("CDDL") (collectively, the /** * AttributeColumnsMergeStrategy that joins columns of any type into a new column * using the separator string that the user provides. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class JoinWithSeparator implements AttributeColumnsMergeStrategy { public static final String SEPARATOR_SAVED_PREFERENCES = "JoinWithSeparator_Separator"; - private static final String DEFAULT_SEPARATOR = ","; - private AttributeTable table; - private AttributeColumn[] columns; + private static final String DEFAULT_SEPARATOR = ", "; + private Table table; + private Column[] columns; private String newColumnTitle, separator; - public void setup(AttributeTable table, AttributeColumn[] columns) { + @Override + public void setup(Table table, Column[] columns) { this.table = table; this.columns = columns; - separator=NbPreferences.forModule(JoinWithSeparator.class).get(SEPARATOR_SAVED_PREFERENCES, DEFAULT_SEPARATOR); + separator = + NbPreferences.forModule(JoinWithSeparator.class).get(SEPARATOR_SAVED_PREFERENCES, DEFAULT_SEPARATOR); } + @Override public void execute() { NbPreferences.forModule(JoinWithSeparator.class).put(SEPARATOR_SAVED_PREFERENCES, separator); - Lookup.getDefault().lookup(AttributeColumnsMergeStrategiesController.class).joinWithSeparatorMerge(table, columns, null, newColumnTitle, separator); + Lookup.getDefault().lookup(AttributeColumnsMergeStrategiesController.class) + .joinWithSeparatorMerge(table, columns, null, newColumnTitle, separator); } + @Override public String getName() { return NbBundle.getMessage(JoinWithSeparator.class, "JoinWithSeparator.name"); } + @Override public String getDescription() { return NbBundle.getMessage(JoinWithSeparator.class, "JoinWithSeparator.description"); } + @Override public boolean canExecute() { return true; } + @Override public ManipulatorUI getUI() { return new JoinWithSeparatorUI(); } + @Override public int getType() { return 0; } + @Override public int getPosition() { return 0; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/join.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/join.svg", false); } public String getNewColumnTitle() { @@ -121,7 +134,7 @@ public void setSeparator(String separator) { this.separator = separator; } - public AttributeTable getTable() { + public Table getTable() { return table; } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/JoinWithSeparatorBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/JoinWithSeparatorBuilder.java index 9d3f36e935..2dd124007c 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/JoinWithSeparatorBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/JoinWithSeparatorBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns.merge; import org.gephi.datalab.spi.columns.merge.AttributeColumnsMergeStrategy; @@ -47,11 +48,13 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for JoinWithSeparator AttributeColumnsMergeStrategy. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=AttributeColumnsMergeStrategyBuilder.class) -public class JoinWithSeparatorBuilder implements AttributeColumnsMergeStrategyBuilder{ +@ServiceProvider(service = AttributeColumnsMergeStrategyBuilder.class) +public class JoinWithSeparatorBuilder implements AttributeColumnsMergeStrategyBuilder { + @Override public AttributeColumnsMergeStrategy getAttributeColumnsMergeStrategy() { return new JoinWithSeparator(); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/MaximumNumber.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/MaximumNumber.java index f7389114a5..6f9a2d4ae8 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/MaximumNumber.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/MaximumNumber.java @@ -39,16 +39,17 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns.merge; import javax.swing.Icon; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; -import org.gephi.data.attributes.api.AttributeUtils; import org.gephi.datalab.api.AttributeColumnsMergeStrategiesController; import org.gephi.datalab.plugin.manipulators.columns.merge.ui.GeneralColumnTitleChooserUI; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.datalab.spi.columns.merge.AttributeColumnsMergeStrategy; +import org.gephi.graph.api.AttributeUtils; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Table; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; import org.openide.util.NbBundle; @@ -56,59 +57,78 @@ Development and Distribution License("CDDL") (collectively, the /** * AttributeColumnsMergeStrategy for any combination of number or number list columns that * calculates the maximum value of all the values and creates a new BigDecimal column with the result of each row. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class MaximumNumber implements AttributeColumnsMergeStrategy, GeneralColumnTitleChooser { - private AttributeTable table; - private AttributeColumn[] columns; + private Table table; + private Column[] columns; private String columnTitle; - public void setup(AttributeTable table, AttributeColumn[] columns) { + @Override + public void setup(Table table, Column[] columns) { this.table = table; this.columns = columns; } + @Override public void execute() { - Lookup.getDefault().lookup(AttributeColumnsMergeStrategiesController.class).maxValueNumbersMerge(table, columns, columnTitle); + Lookup.getDefault().lookup(AttributeColumnsMergeStrategiesController.class) + .maxValueNumbersMerge(table, columns, columnTitle); } + @Override public String getName() { return NbBundle.getMessage(MaximumNumber.class, "MaximumNumber.name"); } + @Override public String getDescription() { return NbBundle.getMessage(MaximumNumber.class, "MaximumNumber.description"); } + @Override public boolean canExecute() { - return AttributeUtils.getDefault().areAllNumberOrNumberListColumns(columns); + for (Column column : columns) { + if (!AttributeUtils.isNumberType(column.getTypeClass())) { + return false; + } + } + return true; } + @Override public ManipulatorUI getUI() { return new GeneralColumnTitleChooserUI(); } + @Override public int getType() { return 100; } + @Override public int getPosition() { return 700; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/plus-white.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/plus-white.svg", false); } - public AttributeTable getTable() { + @Override + public Table getTable() { return table; } + @Override public String getColumnTitle() { return columnTitle; } + @Override public void setColumnTitle(String columnTitle) { this.columnTitle = columnTitle; } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/MaximumNumberBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/MaximumNumberBuilder.java index 8737905217..06aa0f85ee 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/MaximumNumberBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/MaximumNumberBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns.merge; import org.gephi.datalab.spi.columns.merge.AttributeColumnsMergeStrategy; @@ -47,11 +48,13 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for MaximumNumber AttributeColumnsMergeStrategy. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=AttributeColumnsMergeStrategyBuilder.class) -public class MaximumNumberBuilder implements AttributeColumnsMergeStrategyBuilder{ +@ServiceProvider(service = AttributeColumnsMergeStrategyBuilder.class) +public class MaximumNumberBuilder implements AttributeColumnsMergeStrategyBuilder { + @Override public AttributeColumnsMergeStrategy getAttributeColumnsMergeStrategy() { return new MaximumNumber(); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/MedianNumber.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/MedianNumber.java index 2c127f9aaf..7b173646c9 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/MedianNumber.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/MedianNumber.java @@ -39,16 +39,17 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns.merge; import javax.swing.Icon; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; -import org.gephi.data.attributes.api.AttributeUtils; import org.gephi.datalab.api.AttributeColumnsMergeStrategiesController; import org.gephi.datalab.plugin.manipulators.columns.merge.ui.GeneralColumnTitleChooserUI; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.datalab.spi.columns.merge.AttributeColumnsMergeStrategy; +import org.gephi.graph.api.AttributeUtils; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Table; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; import org.openide.util.NbBundle; @@ -56,59 +57,78 @@ Development and Distribution License("CDDL") (collectively, the /** * AttributeColumnsMergeStrategy for any combination of number or number list columns that * calculates the median of all the values and creates a new BigDecimal column with the result of each row. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class MedianNumber implements AttributeColumnsMergeStrategy, GeneralColumnTitleChooser { - private AttributeTable table; - private AttributeColumn[] columns; + private Table table; + private Column[] columns; private String columnTitle; - public void setup(AttributeTable table, AttributeColumn[] columns) { + @Override + public void setup(Table table, Column[] columns) { this.table = table; this.columns = columns; } + @Override public void execute() { - Lookup.getDefault().lookup(AttributeColumnsMergeStrategiesController.class).medianNumberMerge(table, columns, columnTitle); + Lookup.getDefault().lookup(AttributeColumnsMergeStrategiesController.class) + .medianNumberMerge(table, columns, columnTitle); } + @Override public String getName() { return NbBundle.getMessage(MedianNumber.class, "MedianNumber.name"); } + @Override public String getDescription() { return NbBundle.getMessage(MedianNumber.class, "MedianNumber.description"); } + @Override public boolean canExecute() { - return AttributeUtils.getDefault().areAllNumberOrNumberListColumns(columns); + for (Column column : columns) { + if (!AttributeUtils.isNumberType(column.getTypeClass())) { + return false; + } + } + return true; } + @Override public ManipulatorUI getUI() { return new GeneralColumnTitleChooserUI(); } + @Override public int getType() { return 100; } + @Override public int getPosition() { return 200; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/ui-slider-050.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/ui-slider-050.svg", false); } - public AttributeTable getTable() { + @Override + public Table getTable() { return table; } + @Override public String getColumnTitle() { return columnTitle; } + @Override public void setColumnTitle(String columnTitle) { this.columnTitle = columnTitle; } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/MedianNumberBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/MedianNumberBuilder.java index 76f8a65dba..56143f213e 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/MedianNumberBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/MedianNumberBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns.merge; import org.gephi.datalab.spi.columns.merge.AttributeColumnsMergeStrategy; @@ -47,11 +48,13 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for MedianNumber AttributeColumnsMergeStrategy. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=AttributeColumnsMergeStrategyBuilder.class) -public class MedianNumberBuilder implements AttributeColumnsMergeStrategyBuilder{ +@ServiceProvider(service = AttributeColumnsMergeStrategyBuilder.class) +public class MedianNumberBuilder implements AttributeColumnsMergeStrategyBuilder { + @Override public AttributeColumnsMergeStrategy getAttributeColumnsMergeStrategy() { return new MedianNumber(); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/MinimumNumber.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/MinimumNumber.java index d3065a022e..98039ca4dd 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/MinimumNumber.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/MinimumNumber.java @@ -1,107 +1,124 @@ /* -Copyright 2008-2010 Gephi -Authors : Eduardo Ramos -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. + Copyright 2008-2010 Gephi + Authors : Eduardo Ramos + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2011 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns.merge; import javax.swing.Icon; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; -import org.gephi.data.attributes.api.AttributeUtils; import org.gephi.datalab.api.AttributeColumnsMergeStrategiesController; import org.gephi.datalab.plugin.manipulators.columns.merge.ui.GeneralColumnTitleChooserUI; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.datalab.spi.columns.merge.AttributeColumnsMergeStrategy; +import org.gephi.graph.api.AttributeUtils; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Table; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; import org.openide.util.NbBundle; /** - * AttributeColumnsMergeStrategy for any combination of number or number list columns that - * calculates the minimum value of all the values and creates a new BigDecimal column with the result of each row. - * @author Eduardo Ramos + * AttributeColumnsMergeStrategy for any combination of number or number list columns that calculates the minimum value of all the values and creates a new BigDecimal column with the result of each + * row. + * + * @author Eduardo Ramos */ public class MinimumNumber implements AttributeColumnsMergeStrategy { - private AttributeTable table; - private AttributeColumn[] columns; + private Table table; + private Column[] columns; private String columnTitle; - public void setup(AttributeTable table, AttributeColumn[] columns) { + @Override + public void setup(Table table, Column[] columns) { this.table = table; this.columns = columns; } + @Override public void execute() { - Lookup.getDefault().lookup(AttributeColumnsMergeStrategiesController.class).minValueNumbersMerge(table, columns, columnTitle); + Lookup.getDefault().lookup(AttributeColumnsMergeStrategiesController.class) + .minValueNumbersMerge(table, columns, columnTitle); } + @Override public String getName() { return NbBundle.getMessage(MinimumNumber.class, "MinimumNumber.name"); } + @Override public String getDescription() { return NbBundle.getMessage(MinimumNumber.class, "MinimumNumber.description"); } + @Override public boolean canExecute() { - return AttributeUtils.getDefault().areAllNumberOrNumberListColumns(columns); + for (Column column : columns) { + if (!AttributeUtils.isNumberType(column.getTypeClass())) { + return false; + } + } + return true; } + @Override public ManipulatorUI getUI() { return new GeneralColumnTitleChooserUI(); } + @Override public int getType() { return 100; } + @Override public int getPosition() { return 600; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/minus-white.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/minus-white.svg", false); } - public AttributeTable getTable() { + public Table getTable() { return table; } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/MinimumNumberBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/MinimumNumberBuilder.java index abc735bfe8..57b113ec94 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/MinimumNumberBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/MinimumNumberBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns.merge; @@ -48,11 +49,13 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for MinimumNumber AttributeColumnsMergeStrategy. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=AttributeColumnsMergeStrategyBuilder.class) -public class MinimumNumberBuilder implements AttributeColumnsMergeStrategyBuilder{ +@ServiceProvider(service = AttributeColumnsMergeStrategyBuilder.class) +public class MinimumNumberBuilder implements AttributeColumnsMergeStrategyBuilder { + @Override public AttributeColumnsMergeStrategy getAttributeColumnsMergeStrategy() { return new MinimumNumber(); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/SumNumbers.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/SumNumbers.java index 9a4b24c008..cc5780b95e 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/SumNumbers.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/SumNumbers.java @@ -39,16 +39,17 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns.merge; import javax.swing.Icon; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; -import org.gephi.data.attributes.api.AttributeUtils; import org.gephi.datalab.api.AttributeColumnsMergeStrategiesController; import org.gephi.datalab.plugin.manipulators.columns.merge.ui.GeneralColumnTitleChooserUI; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.datalab.spi.columns.merge.AttributeColumnsMergeStrategy; +import org.gephi.graph.api.AttributeUtils; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Table; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; import org.openide.util.NbBundle; @@ -56,59 +57,78 @@ Development and Distribution License("CDDL") (collectively, the /** * AttributeColumnsMergeStrategy for any combination of number or number list columns that * calculates the sum of all the values and creates a new BigDecimal column with the result of each row. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class SumNumbers implements AttributeColumnsMergeStrategy, GeneralColumnTitleChooser { - private AttributeTable table; - private AttributeColumn[] columns; + private Table table; + private Column[] columns; private String columnTitle; - public void setup(AttributeTable table, AttributeColumn[] columns) { + @Override + public void setup(Table table, Column[] columns) { this.table = table; this.columns = columns; } + @Override public void execute() { - Lookup.getDefault().lookup(AttributeColumnsMergeStrategiesController.class).sumNumbersMerge(table, columns, columnTitle); + Lookup.getDefault().lookup(AttributeColumnsMergeStrategiesController.class) + .sumNumbersMerge(table, columns, columnTitle); } + @Override public String getName() { return NbBundle.getMessage(SumNumbers.class, "SumNumbers.name"); } + @Override public String getDescription() { return NbBundle.getMessage(SumNumbers.class, "SumNumbers.description"); } + @Override public boolean canExecute() { - return AttributeUtils.getDefault().areAllNumberOrNumberListColumns(columns); + for (Column column : columns) { + if (!AttributeUtils.isNumberType(column.getTypeClass())) { + return false; + } + } + return true; } + @Override public ManipulatorUI getUI() { return new GeneralColumnTitleChooserUI(); } + @Override public int getType() { return 100; } + @Override public int getPosition() { return 500; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/plus-circle.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/plus-circle.svg", false); } - public AttributeTable getTable() { + @Override + public Table getTable() { return table; } + @Override public String getColumnTitle() { return columnTitle; } + @Override public void setColumnTitle(String columnTitle) { this.columnTitle = columnTitle; } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/SumNumbersBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/SumNumbersBuilder.java index 0bb4a72c16..c16caed726 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/SumNumbersBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/SumNumbersBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns.merge; @@ -48,11 +49,13 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for SumNumbers AttributeColumnsMergeStrategy. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=AttributeColumnsMergeStrategyBuilder.class) -public class SumNumbersBuilder implements AttributeColumnsMergeStrategyBuilder{ +@ServiceProvider(service = AttributeColumnsMergeStrategyBuilder.class) +public class SumNumbersBuilder implements AttributeColumnsMergeStrategyBuilder { + @Override public AttributeColumnsMergeStrategy getAttributeColumnsMergeStrategy() { return new SumNumbers(); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ThirdQuartileNumber.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ThirdQuartileNumber.java index 6c32c602fe..caed14fe5b 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ThirdQuartileNumber.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ThirdQuartileNumber.java @@ -39,68 +39,85 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns.merge; import javax.swing.Icon; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; -import org.gephi.data.attributes.api.AttributeUtils; import org.gephi.datalab.api.AttributeColumnsMergeStrategiesController; import org.gephi.datalab.plugin.manipulators.columns.merge.ui.GeneralColumnTitleChooserUI; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.datalab.spi.columns.merge.AttributeColumnsMergeStrategy; +import org.gephi.graph.api.AttributeUtils; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Table; import org.openide.util.Lookup; import org.openide.util.NbBundle; /** * AttributeColumnsMergeStrategy for any combination of number or number list columns that * calculates the thrid quartile (Q3) of all the values and creates a new BigDecimal column with the result of each row. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class ThirdQuartileNumber implements AttributeColumnsMergeStrategy { - private AttributeTable table; - private AttributeColumn[] columns; + private Table table; + private Column[] columns; private String columnTitle; - public void setup(AttributeTable table, AttributeColumn[] columns) { + @Override + public void setup(Table table, Column[] columns) { this.table = table; this.columns = columns; } + @Override public void execute() { - Lookup.getDefault().lookup(AttributeColumnsMergeStrategiesController.class).thirdQuartileNumberMerge(table, columns, columnTitle); + Lookup.getDefault().lookup(AttributeColumnsMergeStrategiesController.class) + .thirdQuartileNumberMerge(table, columns, columnTitle); } + @Override public String getName() { return NbBundle.getMessage(ThirdQuartileNumber.class, "ThirdQuartileNumber.name"); } + @Override public String getDescription() { return NbBundle.getMessage(ThirdQuartileNumber.class, "ThirdQuartileNumber.description"); } + @Override public boolean canExecute() { - return AttributeUtils.getDefault().areAllNumberOrNumberListColumns(columns); + for (Column column : columns) { + if (!AttributeUtils.isNumberType(column.getTypeClass())) { + return false; + } + } + return true; } + @Override public ManipulatorUI getUI() { return new GeneralColumnTitleChooserUI(); } + @Override public int getType() { return 100; } + @Override public int getPosition() { return 300; } + @Override public Icon getIcon() { return null; } - public AttributeTable getTable() { + public Table getTable() { return table; } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ThirdQuartileNumberBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ThirdQuartileNumberBuilder.java index 6c4d05ce8e..cc9decca3a 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ThirdQuartileNumberBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ThirdQuartileNumberBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns.merge; @@ -48,11 +49,13 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for MedianNumber AttributeColumnsMergeStrategy. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=AttributeColumnsMergeStrategyBuilder.class) -public class ThirdQuartileNumberBuilder implements AttributeColumnsMergeStrategyBuilder{ +@ServiceProvider(service = AttributeColumnsMergeStrategyBuilder.class) +public class ThirdQuartileNumberBuilder implements AttributeColumnsMergeStrategyBuilder { + @Override public AttributeColumnsMergeStrategy getAttributeColumnsMergeStrategy() { return new ThirdQuartileNumber(); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ui/BooleanLogicOperationsUI.form b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ui/BooleanLogicOperationsUI.form index ce1f9856df..6c43d64b01 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ui/BooleanLogicOperationsUI.form +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ui/BooleanLogicOperationsUI.form @@ -1,4 +1,4 @@ - +
    diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ui/BooleanLogicOperationsUI.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ui/BooleanLogicOperationsUI.java index 76461c1e1b..6364391983 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ui/BooleanLogicOperationsUI.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ui/BooleanLogicOperationsUI.java @@ -1,44 +1,45 @@ /* -Copyright 2008-2010 Gephi -Authors : Eduardo Ramos -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. + Copyright 2008-2010 Gephi + Authors : Eduardo Ramos + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2011 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns.merge.ui; import javax.swing.JComboBox; @@ -46,73 +47,90 @@ Development and Distribution License("CDDL") (collectively, the import javax.swing.JPanel; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; import org.gephi.datalab.api.AttributeColumnsMergeStrategiesController.BooleanOperations; import org.gephi.datalab.plugin.manipulators.columns.merge.BooleanLogicOperations; import org.gephi.datalab.spi.DialogControls; import org.gephi.datalab.spi.Manipulator; import org.gephi.datalab.spi.ManipulatorUI; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Table; import org.gephi.ui.utils.ColumnTitleValidator; import org.netbeans.validation.api.ui.ValidationGroup; -import org.netbeans.validation.api.ui.ValidationPanel; +import org.netbeans.validation.api.ui.swing.ValidationPanel; /** * UI for BooleanLogicOperations AttributeColumnsMergeStrategy - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class BooleanLogicOperationsUI extends javax.swing.JPanel implements ManipulatorUI { private BooleanLogicOperations manipulator; private JComboBox[] operationSelectors; - private AttributeTable table; + private Table table; private DialogControls dialogControls; + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JLabel descriptionLabel; + private javax.swing.JPanel panel; + private javax.swing.JScrollPane scroll; + private javax.swing.JLabel titleLabel; + private javax.swing.JTextField titleTextField; + // End of variables declaration//GEN-END:variables - /** Creates new form BooleanLogicOperationsUI */ + /** + * Creates new form BooleanLogicOperationsUI + */ public BooleanLogicOperationsUI() { initComponents(); titleTextField.getDocument().addDocumentListener(new DocumentListener() { - + @Override public void insertUpdate(DocumentEvent e) { refreshOkButton(); } + @Override public void removeUpdate(DocumentEvent e) { refreshOkButton(); } + @Override public void changedUpdate(DocumentEvent e) { refreshOkButton(); } - private void refreshOkButton(){ - String text=titleTextField.getText(); - dialogControls.setOkButtonEnabled(text!=null&&!text.isEmpty()&&!table.hasColumn(text));//Title not empty and not repeated. + private void refreshOkButton() { + String text = titleTextField.getText(); + dialogControls.setOkButtonEnabled( + text != null && !text.isEmpty() && !table.hasColumn(text));//Title not empty and not repeated. } }); } + @Override public void setup(Manipulator m, DialogControls dialogControls) { manipulator = (BooleanLogicOperations) m; - this.dialogControls=dialogControls; - this.table=manipulator.getTable(); + this.dialogControls = dialogControls; + this.table = manipulator.getTable(); prepareColumnsAndOperations(); } + @Override public void unSetup() { - BooleanOperations[] booleanOperations=new BooleanOperations[operationSelectors.length]; + BooleanOperations[] booleanOperations = new BooleanOperations[operationSelectors.length]; for (int i = 0; i < booleanOperations.length; i++) { - booleanOperations[i]=(BooleanOperations) operationSelectors[i].getSelectedItem(); + booleanOperations[i] = (BooleanOperations) operationSelectors[i].getSelectedItem(); } manipulator.setBooleanOperations(booleanOperations); manipulator.setNewColumnTitle(titleTextField.getText()); } + @Override public String getDisplayName() { return manipulator.getName(); } + @Override public JPanel getSettingsPanel() { ValidationPanel validationPanel = new ValidationPanel(); validationPanel.setInnerComponent(this); @@ -124,17 +142,18 @@ public JPanel getSettingsPanel() { return validationPanel; } + @Override public boolean isModal() { return true; } private void prepareColumnsAndOperations() { - AttributeColumn[] columns = manipulator.getColumns(); + Column[] columns = manipulator.getColumns(); operationSelectors = new JComboBox[columns.length - 1]; JLabel columnLabel; for (int i = 0; i < columns.length; i++) { - columnLabel=new JLabel(columns[i].getTitle()); + columnLabel = new JLabel(columns[i].getTitle()); columnLabel.setHorizontalAlignment(JLabel.CENTER); panel.add(columnLabel); if (i < columns.length - 1) { @@ -149,10 +168,8 @@ private JComboBox prepareOperationSelector() { return selector; } - /** This method is called from within the constructor to - * initialize the form. - * WARNING: Do NOT modify this code. The content of this method is - * always regenerated by the Form Editor. + /** + * This method is called from within the constructor to initialize the form. WARNING: Do NOT modify this code. The content of this method is always regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents @@ -164,49 +181,47 @@ private void initComponents() { titleLabel = new javax.swing.JLabel(); titleTextField = new javax.swing.JTextField(); - descriptionLabel.setText(org.openide.util.NbBundle.getMessage(BooleanLogicOperationsUI.class, "BooleanLogicOperationsUI.descriptionLabel.text")); // NOI18N + descriptionLabel.setText(org.openide.util.NbBundle + .getMessage(BooleanLogicOperationsUI.class, "BooleanLogicOperationsUI.descriptionLabel.text")); // NOI18N panel.setLayout(new java.awt.GridLayout(0, 1, 0, 20)); scroll.setViewportView(panel); - titleLabel.setText(org.openide.util.NbBundle.getMessage(BooleanLogicOperationsUI.class, "BooleanLogicOperationsUI.titleLabel.text")); // NOI18N + titleLabel.setText(org.openide.util.NbBundle + .getMessage(BooleanLogicOperationsUI.class, "BooleanLogicOperationsUI.titleLabel.text")); // NOI18N - titleTextField.setText(org.openide.util.NbBundle.getMessage(BooleanLogicOperationsUI.class, "BooleanLogicOperationsUI.titleTextField.text")); // NOI18N + titleTextField.setText(org.openide.util.NbBundle + .getMessage(BooleanLogicOperationsUI.class, "BooleanLogicOperationsUI.titleTextField.text")); // NOI18N javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(descriptionLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 254, Short.MAX_VALUE) - .addComponent(scroll, javax.swing.GroupLayout.DEFAULT_SIZE, 254, Short.MAX_VALUE) - .addGroup(layout.createSequentialGroup() - .addComponent(titleLabel) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(titleTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 135, Short.MAX_VALUE))) - .addContainerGap()) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(descriptionLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 254, Short.MAX_VALUE) + .addComponent(scroll, javax.swing.GroupLayout.DEFAULT_SIZE, 254, Short.MAX_VALUE) + .addGroup(layout.createSequentialGroup() + .addComponent(titleLabel) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(titleTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 135, Short.MAX_VALUE))) + .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(titleLabel) - .addComponent(titleTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(descriptionLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(scroll, javax.swing.GroupLayout.DEFAULT_SIZE, 105, Short.MAX_VALUE) - .addContainerGap()) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(titleLabel) + .addComponent(titleTextField, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(descriptionLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 26, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(scroll, javax.swing.GroupLayout.DEFAULT_SIZE, 105, Short.MAX_VALUE) + .addContainerGap()) ); }// //GEN-END:initComponents - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JLabel descriptionLabel; - private javax.swing.JPanel panel; - private javax.swing.JScrollPane scroll; - private javax.swing.JLabel titleLabel; - private javax.swing.JTextField titleTextField; - // End of variables declaration//GEN-END:variables } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ui/CreateTimeIntervalUI.form b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ui/CreateTimeIntervalUI.form index 8a0d19aa2c..ea00f7a87b 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ui/CreateTimeIntervalUI.form +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ui/CreateTimeIntervalUI.form @@ -20,7 +20,7 @@ - + diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ui/CreateTimeIntervalUI.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ui/CreateTimeIntervalUI.java index 8eaae3b458..05082c9df8 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ui/CreateTimeIntervalUI.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ui/CreateTimeIntervalUI.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns.merge.ui; import java.text.ParseException; @@ -48,22 +49,22 @@ Development and Distribution License("CDDL") (collectively, the import javax.swing.JPanel; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; -import org.gephi.data.attributes.api.AttributeColumn; import org.gephi.datalab.plugin.manipulators.columns.merge.CreateTimeInterval; import org.gephi.datalab.spi.DialogControls; import org.gephi.datalab.spi.Manipulator; import org.gephi.datalab.spi.ManipulatorUI; +import org.gephi.graph.api.Column; import org.netbeans.validation.api.Problems; import org.netbeans.validation.api.Validator; import org.netbeans.validation.api.ui.ValidationGroup; -import org.netbeans.validation.api.ui.ValidationPanel; +import org.netbeans.validation.api.ui.swing.ValidationPanel; import org.openide.util.NbBundle; import org.openide.util.NbPreferences; /** * UI for CreateTimeInterval * - * @author Eduardo Ramos + * @author Eduardo Ramos */ public class CreateTimeIntervalUI extends javax.swing.JPanel implements ManipulatorUI { @@ -78,6 +79,26 @@ public class CreateTimeIntervalUI extends javax.swing.JPanel implements Manipula private DialogControls dialogControls; private ValidationPanel validationPanel; private ColumnWrapper column1, column2; + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.ButtonGroup buttonGroup; + private javax.swing.JLabel dateDefaultEndLabel; + private javax.swing.JLabel dateDefaultStartLabel; + private javax.swing.JComboBox dateFormatComboBox; + private javax.swing.JLabel dateFormatLabel; + private org.jdesktop.swingx.JXDatePicker defaultEndDatePicker; + private javax.swing.JLabel defaultEndNumberLabel; + private javax.swing.JTextField defaultEndNumberText; + private org.jdesktop.swingx.JXDatePicker defaultStartDatePicker; + private javax.swing.JLabel defaultStartNumberLabel; + private javax.swing.JTextField defaultStartNumberText; + private javax.swing.JComboBox endColumnComboBox; + private javax.swing.JLabel endColumnLabel; + private org.jdesktop.swingx.JXHeader header; + private javax.swing.JRadioButton parseDatesRadioButton; + private javax.swing.JRadioButton parseNumbersRadioButton; + private javax.swing.JComboBox startColumnComboBox; + private javax.swing.JLabel startColumnLabel; + // End of variables declaration//GEN-END:variables /** * Creates new form CreateTimeIntervalUI @@ -85,6 +106,9 @@ public class CreateTimeIntervalUI extends javax.swing.JPanel implements Manipula public CreateTimeIntervalUI() { initComponents(); + defaultStartDatePicker.setFormats("yyyy-MM-dd"); + defaultEndDatePicker.setFormats("yyyy-MM-dd"); + //Add some common date formats to choose: dateFormatComboBox.addItem("yyyy-MM-dd"); dateFormatComboBox.addItem("yyyy/MM/dd"); @@ -94,18 +118,26 @@ public CreateTimeIntervalUI() { dateFormatComboBox.addItem("yyyy/MM/dd HH:mm:ss"); dateFormatComboBox.addItem("dd-MM-yyyy HH:mm:ss"); dateFormatComboBox.addItem("dd/MM/yyyy HH:mm:ss"); + dateFormatComboBox.addItem("yyyy-MM-dd'T'HH:mm:ss"); + dateFormatComboBox.addItem("yyyy/MM/dd'T'HH:mm:ss"); + dateFormatComboBox.addItem("dd-MM-yyyy'T'HH:mm:ss"); + dateFormatComboBox.addItem("dd/MM/yyyy'T'HH:mm:ss"); dateFormatComboBox.setSelectedIndex(0); } - private AttributeColumn getComboBoxColumn(JComboBox comboBox) { + private Column getComboBoxColumn(JComboBox comboBox) { return ((ColumnWrapper) comboBox.getSelectedItem()).column; } private void readSavedParameters() { - parseNumbersRadioButton.setSelected(NbPreferences.forModule(CreateTimeIntervalUI.class).getBoolean(PARSE_NUMBERS_SAVED_PARAMETER, true)); - defaultStartNumberText.setText(NbPreferences.forModule(CreateTimeIntervalUI.class).get(START_NUMBER_SAVED_PARAMETER, "")); - defaultEndNumberText.setText(NbPreferences.forModule(CreateTimeIntervalUI.class).get(END_NUMBER_SAVED_PARAMETER, "")); - dateFormatComboBox.setSelectedItem(NbPreferences.forModule(CreateTimeIntervalUI.class).get(DATE_FORMAT_SAVED_PARAMETER_STRING, "yyyy-MM-dd")); + parseNumbersRadioButton.setSelected( + NbPreferences.forModule(CreateTimeIntervalUI.class).getBoolean(PARSE_NUMBERS_SAVED_PARAMETER, true)); + defaultStartNumberText + .setText(NbPreferences.forModule(CreateTimeIntervalUI.class).get(START_NUMBER_SAVED_PARAMETER, "")); + defaultEndNumberText + .setText(NbPreferences.forModule(CreateTimeIntervalUI.class).get(END_NUMBER_SAVED_PARAMETER, "")); + dateFormatComboBox.setSelectedItem( + NbPreferences.forModule(CreateTimeIntervalUI.class).get(DATE_FORMAT_SAVED_PARAMETER_STRING, "yyyy-MM-dd")); try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String date = NbPreferences.forModule(CreateTimeIntervalUI.class).get(START_DATE_SAVED_PARAMETER, ""); @@ -121,10 +153,14 @@ private void readSavedParameters() { } private void storeSavedParameters() { - NbPreferences.forModule(CreateTimeIntervalUI.class).putBoolean(PARSE_NUMBERS_SAVED_PARAMETER, parseNumbersRadioButton.isSelected()); - NbPreferences.forModule(CreateTimeIntervalUI.class).put(START_NUMBER_SAVED_PARAMETER, defaultStartNumberText.getText()); - NbPreferences.forModule(CreateTimeIntervalUI.class).put(END_NUMBER_SAVED_PARAMETER, defaultEndNumberText.getText()); - NbPreferences.forModule(CreateTimeIntervalUI.class).put(DATE_FORMAT_SAVED_PARAMETER_STRING, dateFormatComboBox.getSelectedItem().toString()); + NbPreferences.forModule(CreateTimeIntervalUI.class) + .putBoolean(PARSE_NUMBERS_SAVED_PARAMETER, parseNumbersRadioButton.isSelected()); + NbPreferences.forModule(CreateTimeIntervalUI.class) + .put(START_NUMBER_SAVED_PARAMETER, defaultStartNumberText.getText()); + NbPreferences.forModule(CreateTimeIntervalUI.class) + .put(END_NUMBER_SAVED_PARAMETER, defaultEndNumberText.getText()); + NbPreferences.forModule(CreateTimeIntervalUI.class) + .put(DATE_FORMAT_SAVED_PARAMETER_STRING, dateFormatComboBox.getSelectedItem().toString()); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date; date = defaultStartDatePicker.getDate(); @@ -137,10 +173,11 @@ private void storeSavedParameters() { } } + @Override public void setup(Manipulator m, DialogControls dialogControls) { this.manipulator = (CreateTimeInterval) m; this.dialogControls = dialogControls; - AttributeColumn[] columns = manipulator.getColumns(); + Column[] columns = manipulator.getColumns(); column1 = new ColumnWrapper(columns[0]); if (columns.length == 2) {//2 columns were chosen to merge column2 = new ColumnWrapper(columns[1]); @@ -151,7 +188,7 @@ public void setup(Manipulator m, DialogControls dialogControls) { startColumnComboBox.addItem(column2); endColumnComboBox.addItem(column1); endColumnComboBox.addItem(column2); - if (columns.length == 2) {//Make possible to choose null column even when 2 columns were chosen to merge + if (columns.length == 2) {//Make possible to choose null column even when 2 columns were chosen to merge startColumnComboBox.addItem(new ColumnWrapper(null)); endColumnComboBox.addItem(new ColumnWrapper(null)); } @@ -163,6 +200,7 @@ public void setup(Manipulator m, DialogControls dialogControls) { refreshOkButton(); } + @Override public void unSetup() { if (dialogControls.isOkButtonEnabled()) { boolean parseNumbers = parseNumbersRadioButton.isSelected(); @@ -183,13 +221,17 @@ public void unSetup() { } else { SimpleDateFormat dateFormat = new SimpleDateFormat(dateFormatComboBox.getSelectedItem().toString()); manipulator.setDateFormat(dateFormat); - manipulator.setStartDate(defaultStartDatePicker.getDate() != null ? dateFormat.format(defaultStartDatePicker.getDate()) : null); - manipulator.setEndDate(defaultEndDatePicker.getDate() != null ? dateFormat.format(defaultEndDatePicker.getDate()) : null); + manipulator.setStartDate( + defaultStartDatePicker.getDate() != null ? dateFormat.format(defaultStartDatePicker.getDate()) : + null); + manipulator.setEndDate( + defaultEndDatePicker.getDate() != null ? dateFormat.format(defaultEndDatePicker.getDate()) : null); } } storeSavedParameters(); } + @Override public String getDisplayName() { return manipulator.getName(); } @@ -201,24 +243,35 @@ private void buildValidationPanel() { ValidationGroup group = validationPanel.getValidationGroup(); group.add(dateFormatComboBox, new Validator() { + + @Override + public Class modelType() { + return String.class; + } + @Override - public boolean validate(Problems prblms, String string, String t) { + public void validate(Problems prblms, String string, String t) { boolean valid = validateDateFormat(t); - if(!valid){ - prblms.add(NbBundle.getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.invalid.dateformat")); + if (!valid) { + prblms.add( + NbBundle.getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.invalid.dateformat")); } - return valid; } }); Validator emptyOrNumberValidator = new Validator() { + + @Override + public Class modelType() { + return String.class; + } + @Override - public boolean validate(Problems prblms, String string, String t) { + public void validate(Problems prblms, String string, String t) { boolean valid = validateNumberOrEmpty(t); - if(!valid){ + if (!valid) { prblms.add(NbBundle.getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.invalid.number")); } - return valid; } }; group.add(defaultStartNumberText, emptyOrNumberValidator); @@ -232,11 +285,13 @@ public void stateChanged(ChangeEvent e) { }); } + @Override public JPanel getSettingsPanel() { return validationPanel; } + @Override public boolean isModal() { return true; } @@ -266,8 +321,9 @@ private boolean validateDateFormat(String dateFormat) { } private void refreshOkButton() { - boolean enabled = getComboBoxColumn(startColumnComboBox) != null || getComboBoxColumn(endColumnComboBox) != null;//At least 1 column not null - enabled &= validationPanel != null && !validationPanel.isProblem(); + boolean enabled = getComboBoxColumn(startColumnComboBox) != null || + getComboBoxColumn(endColumnComboBox) != null;//At least 1 column not null + enabled &= validationPanel != null && !validationPanel.isFatalProblem(); dialogControls.setOkButtonEnabled(enabled); } @@ -286,20 +342,6 @@ private void refreshTimeParseMode() { refreshOkButton(); } - private class ColumnWrapper { - - private AttributeColumn column; - - public ColumnWrapper(AttributeColumn column) { - this.column = column; - } - - @Override - public String toString() { - return column != null ? column.getTitle() : ""; - } - } - /** * This method is called from within the constructor to initialize the form. WARNING: Do NOT modify this code. The content of this method is always regenerated by the Form Editor. */ @@ -326,37 +368,47 @@ private void initComponents() { defaultStartNumberText = new javax.swing.JTextField(); defaultEndNumberText = new javax.swing.JTextField(); - startColumnLabel.setText(org.openide.util.NbBundle.getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.startColumnLabel.text")); // NOI18N + startColumnLabel.setText(org.openide.util.NbBundle + .getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.startColumnLabel.text")); // NOI18N startColumnComboBox.addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(java.awt.event.ActionEvent evt) { startColumnComboBoxActionPerformed(evt); } }); endColumnComboBox.addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(java.awt.event.ActionEvent evt) { endColumnComboBoxActionPerformed(evt); } }); - endColumnLabel.setText(org.openide.util.NbBundle.getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.endColumnLabel.text")); // NOI18N + endColumnLabel.setText(org.openide.util.NbBundle + .getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.endColumnLabel.text")); // NOI18N buttonGroup.add(parseNumbersRadioButton); parseNumbersRadioButton.setSelected(true); - parseNumbersRadioButton.setText(org.openide.util.NbBundle.getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.parseNumbersRadioButton.text")); // NOI18N + parseNumbersRadioButton.setText(org.openide.util.NbBundle + .getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.parseNumbersRadioButton.text")); // NOI18N parseNumbersRadioButton.addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(java.awt.event.ActionEvent evt) { parseNumbersRadioButtonActionPerformed(evt); } }); - header.setDescription(org.openide.util.NbBundle.getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.header.description")); // NOI18N - header.setTitle(org.openide.util.NbBundle.getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.header.title")); // NOI18N + header.setDescription(org.openide.util.NbBundle + .getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.header.description")); // NOI18N + header.setTitle(org.openide.util.NbBundle + .getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.header.title")); // NOI18N buttonGroup.add(parseDatesRadioButton); - parseDatesRadioButton.setText(org.openide.util.NbBundle.getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.parseDatesRadioButton.text")); // NOI18N + parseDatesRadioButton.setText(org.openide.util.NbBundle + .getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.parseDatesRadioButton.text")); // NOI18N parseDatesRadioButton.addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(java.awt.event.ActionEvent evt) { parseDatesRadioButtonActionPerformed(evt); } @@ -364,143 +416,170 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { defaultStartDatePicker.setEnabled(false); - dateDefaultStartLabel.setText(org.openide.util.NbBundle.getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.dateDefaultStartLabel.text")); // NOI18N + dateDefaultStartLabel.setText(org.openide.util.NbBundle + .getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.dateDefaultStartLabel.text")); // NOI18N dateDefaultStartLabel.setEnabled(false); defaultEndDatePicker.setEnabled(false); - dateDefaultEndLabel.setText(org.openide.util.NbBundle.getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.dateDefaultEndLabel.text")); // NOI18N + dateDefaultEndLabel.setText(org.openide.util.NbBundle + .getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.dateDefaultEndLabel.text")); // NOI18N dateDefaultEndLabel.setEnabled(false); - dateFormatLabel.setText(org.openide.util.NbBundle.getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.dateFormatLabel.text")); // NOI18N + dateFormatLabel.setText(org.openide.util.NbBundle + .getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.dateFormatLabel.text")); // NOI18N dateFormatLabel.setEnabled(false); dateFormatComboBox.setEditable(true); dateFormatComboBox.setEnabled(false); - defaultStartNumberLabel.setText(org.openide.util.NbBundle.getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.defaultStartNumberLabel.text")); // NOI18N + defaultStartNumberLabel.setText(org.openide.util.NbBundle + .getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.defaultStartNumberLabel.text")); // NOI18N - defaultEndNumberLabel.setText(org.openide.util.NbBundle.getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.defaultEndNumberLabel.text")); // NOI18N + defaultEndNumberLabel.setText(org.openide.util.NbBundle + .getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.defaultEndNumberLabel.text")); // NOI18N - defaultStartNumberText.setText(org.openide.util.NbBundle.getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.defaultStartNumberText.text")); // NOI18N + defaultStartNumberText.setText(org.openide.util.NbBundle + .getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.defaultStartNumberText.text")); // NOI18N - defaultEndNumberText.setText(org.openide.util.NbBundle.getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.defaultEndNumberText.text")); // NOI18N + defaultEndNumberText.setText(org.openide.util.NbBundle + .getMessage(CreateTimeIntervalUI.class, "CreateTimeIntervalUI.defaultEndNumberText.text")); // NOI18N javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(header, javax.swing.GroupLayout.DEFAULT_SIZE, 664, Short.MAX_VALUE) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() - .addGap(15, 15, 15) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(dateDefaultStartLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(dateDefaultEndLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addGroup(layout.createSequentialGroup() - .addComponent(dateFormatLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addGap(6, 6, 6)))) - .addGroup(layout.createSequentialGroup() - .addGap(13, 13, 13) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(defaultStartNumberLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(defaultEndNumberLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(defaultStartDatePicker, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(defaultEndDatePicker, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(dateFormatComboBox, javax.swing.GroupLayout.Alignment.TRAILING, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(defaultStartNumberText) - .addComponent(defaultEndNumberText))) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(endColumnLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(startColumnLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(startColumnComboBox, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(endColumnComboBox, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) - .addComponent(parseDatesRadioButton) - .addComponent(parseNumbersRadioButton)) - .addContainerGap()) + .addComponent(header, javax.swing.GroupLayout.DEFAULT_SIZE, 664, Short.MAX_VALUE) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() + .addGap(15, 15, 15) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(dateDefaultStartLabel, javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(dateDefaultEndLabel, javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(layout.createSequentialGroup() + .addComponent(dateFormatLabel, javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGap(6, 6, 6)))) + .addGroup(layout.createSequentialGroup() + .addGap(13, 13, 13) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(defaultStartNumberLabel, javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(defaultEndNumberLabel, javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(defaultStartDatePicker, javax.swing.GroupLayout.Alignment.TRAILING, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addComponent(defaultEndDatePicker, javax.swing.GroupLayout.Alignment.TRAILING, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addComponent(dateFormatComboBox, javax.swing.GroupLayout.Alignment.TRAILING, 0, + javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(defaultStartNumberText) + .addComponent(defaultEndNumberText))) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(endColumnLabel, javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(startColumnLabel, javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(startColumnComboBox, 0, javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addComponent(endColumnComboBox, 0, javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE))) + .addComponent(parseDatesRadioButton) + .addComponent(parseNumbersRadioButton)) + .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addComponent(header, javax.swing.GroupLayout.PREFERRED_SIZE, 105, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(18, 18, 18) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(startColumnLabel) - .addComponent(startColumnComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(endColumnComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(endColumnLabel)) - .addGap(18, 18, 18) - .addComponent(parseNumbersRadioButton) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(defaultStartNumberLabel) - .addComponent(defaultStartNumberText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(defaultEndNumberLabel) - .addComponent(defaultEndNumberText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(33, 33, 33) - .addComponent(parseDatesRadioButton) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(dateFormatComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(dateFormatLabel)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(defaultStartDatePicker, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(dateDefaultStartLabel)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(dateDefaultEndLabel) - .addComponent(defaultEndDatePicker, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addContainerGap()) + .addGroup(layout.createSequentialGroup() + .addComponent(header, javax.swing.GroupLayout.PREFERRED_SIZE, 105, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(18, 18, 18) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(startColumnLabel) + .addComponent(startColumnComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(endColumnComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(endColumnLabel)) + .addGap(18, 18, 18) + .addComponent(parseNumbersRadioButton) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(defaultStartNumberLabel) + .addComponent(defaultStartNumberText, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(defaultEndNumberLabel) + .addComponent(defaultEndNumberText, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(33, 33, 33) + .addComponent(parseDatesRadioButton) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(dateFormatComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(dateFormatLabel)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(defaultStartDatePicker, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(dateDefaultStartLabel)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(dateDefaultEndLabel) + .addComponent(defaultEndDatePicker, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addContainerGap()) ); }// //GEN-END:initComponents - private void parseNumbersRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_parseNumbersRadioButtonActionPerformed + private void parseNumbersRadioButtonActionPerformed( + java.awt.event.ActionEvent evt) {//GEN-FIRST:event_parseNumbersRadioButtonActionPerformed refreshTimeParseMode(); }//GEN-LAST:event_parseNumbersRadioButtonActionPerformed - private void parseDatesRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_parseDatesRadioButtonActionPerformed + private void parseDatesRadioButtonActionPerformed( + java.awt.event.ActionEvent evt) {//GEN-FIRST:event_parseDatesRadioButtonActionPerformed refreshTimeParseMode(); }//GEN-LAST:event_parseDatesRadioButtonActionPerformed - private void startColumnComboBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_startColumnComboBoxActionPerformed + private void startColumnComboBoxActionPerformed( + java.awt.event.ActionEvent evt) {//GEN-FIRST:event_startColumnComboBoxActionPerformed refreshOkButton(); }//GEN-LAST:event_startColumnComboBoxActionPerformed - private void endColumnComboBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_endColumnComboBoxActionPerformed + private void endColumnComboBoxActionPerformed( + java.awt.event.ActionEvent evt) {//GEN-FIRST:event_endColumnComboBoxActionPerformed refreshOkButton(); }//GEN-LAST:event_endColumnComboBoxActionPerformed - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.ButtonGroup buttonGroup; - private javax.swing.JLabel dateDefaultEndLabel; - private javax.swing.JLabel dateDefaultStartLabel; - private javax.swing.JComboBox dateFormatComboBox; - private javax.swing.JLabel dateFormatLabel; - private org.jdesktop.swingx.JXDatePicker defaultEndDatePicker; - private javax.swing.JLabel defaultEndNumberLabel; - private javax.swing.JTextField defaultEndNumberText; - private org.jdesktop.swingx.JXDatePicker defaultStartDatePicker; - private javax.swing.JLabel defaultStartNumberLabel; - private javax.swing.JTextField defaultStartNumberText; - private javax.swing.JComboBox endColumnComboBox; - private javax.swing.JLabel endColumnLabel; - private org.jdesktop.swingx.JXHeader header; - private javax.swing.JRadioButton parseDatesRadioButton; - private javax.swing.JRadioButton parseNumbersRadioButton; - private javax.swing.JComboBox startColumnComboBox; - private javax.swing.JLabel startColumnLabel; - // End of variables declaration//GEN-END:variables + + private class ColumnWrapper { + + private final Column column; + + public ColumnWrapper(Column column) { + this.column = column; + } + + @Override + public String toString() { + return column != null ? column.getTitle() : ""; + } + } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ui/GeneralColumnTitleChooserUI.form b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ui/GeneralColumnTitleChooserUI.form index e390cac111..01657bf724 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ui/GeneralColumnTitleChooserUI.form +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ui/GeneralColumnTitleChooserUI.form @@ -1,4 +1,4 @@ - + diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ui/GeneralColumnTitleChooserUI.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ui/GeneralColumnTitleChooserUI.java index 97a593ffcd..eb927a9af9 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ui/GeneralColumnTitleChooserUI.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ui/GeneralColumnTitleChooserUI.java @@ -39,45 +39,56 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns.merge.ui; import javax.swing.JPanel; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; -import org.gephi.data.attributes.api.AttributeTable; import org.gephi.datalab.plugin.manipulators.columns.merge.GeneralColumnTitleChooser; import org.gephi.datalab.spi.DialogControls; import org.gephi.datalab.spi.Manipulator; import org.gephi.datalab.spi.ManipulatorUI; +import org.gephi.graph.api.Table; import org.gephi.ui.utils.ColumnTitleValidator; import org.netbeans.validation.api.ui.ValidationGroup; -import org.netbeans.validation.api.ui.ValidationPanel; +import org.netbeans.validation.api.ui.swing.ValidationPanel; /** * UI for general merge strategies that only need to select a title for the column to create. * Takes care to validate the column title. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class GeneralColumnTitleChooserUI extends javax.swing.JPanel implements ManipulatorUI { private GeneralColumnTitleChooser manipulator; private DialogControls dialogControls; - private AttributeTable table; + private Table table; private String displayName; + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JLabel titleLabel; + private javax.swing.JTextField titleTextField; + // End of variables declaration//GEN-END:variables - /** Creates new form GeneralColumnTitleChooserUI */ + /** + * Creates new form GeneralColumnTitleChooserUI + */ public GeneralColumnTitleChooserUI() { initComponents(); titleTextField.getDocument().addDocumentListener(new DocumentListener() { + @Override public void insertUpdate(DocumentEvent e) { refreshOkButton(); } + @Override public void removeUpdate(DocumentEvent e) { refreshOkButton(); } + @Override public void changedUpdate(DocumentEvent e) { refreshOkButton(); } @@ -86,9 +97,11 @@ public void changedUpdate(DocumentEvent e) { private void refreshOkButton() { String text = titleTextField.getText(); - dialogControls.setOkButtonEnabled(text != null && !text.isEmpty() && table != null && !table.hasColumn(text));//Title not empty and not repeated. + dialogControls.setOkButtonEnabled(text != null && !text.isEmpty() && table != null && + !table.hasColumn(text));//Title not empty and not repeated. } + @Override public void setup(Manipulator m, DialogControls dialogControls) { this.manipulator = (GeneralColumnTitleChooser) m; this.table = manipulator.getTable(); @@ -98,14 +111,17 @@ public void setup(Manipulator m, DialogControls dialogControls) { refreshOkButton(); } + @Override public void unSetup() { manipulator.setColumnTitle(titleTextField.getText()); } + @Override public String getDisplayName() { return displayName; } + @Override public JPanel getSettingsPanel() { ValidationPanel validationPanel = new ValidationPanel(); validationPanel.setInnerComponent(this); @@ -117,11 +133,13 @@ public JPanel getSettingsPanel() { return validationPanel; } + @Override public boolean isModal() { return true; } - /** This method is called from within the constructor to + /** + * This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. @@ -133,33 +151,32 @@ private void initComponents() { titleLabel = new javax.swing.JLabel(); titleTextField = new javax.swing.JTextField(); - titleLabel.setText(org.openide.util.NbBundle.getMessage(GeneralColumnTitleChooserUI.class, "GeneralColumnTitleChooserUI.titleLabel.text")); // NOI18N + titleLabel.setText(org.openide.util.NbBundle + .getMessage(GeneralColumnTitleChooserUI.class, "GeneralColumnTitleChooserUI.titleLabel.text")); // NOI18N - titleTextField.setText(org.openide.util.NbBundle.getMessage(GeneralColumnTitleChooserUI.class, "GeneralColumnTitleChooserUI.titleTextField.text")); // NOI18N + titleTextField.setText(org.openide.util.NbBundle.getMessage(GeneralColumnTitleChooserUI.class, + "GeneralColumnTitleChooserUI.titleTextField.text")); // NOI18N javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addComponent(titleLabel) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(titleTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 150, Short.MAX_VALUE) - .addContainerGap()) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(titleLabel) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(titleTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 150, Short.MAX_VALUE) + .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(titleLabel) - .addComponent(titleTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(titleLabel) + .addComponent(titleTextField, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); }// //GEN-END:initComponents - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JLabel titleLabel; - private javax.swing.JTextField titleTextField; - // End of variables declaration//GEN-END:variables } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ui/JoinWithSeparatorUI.form b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ui/JoinWithSeparatorUI.form index 183f69c9cb..602217c1bb 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ui/JoinWithSeparatorUI.form +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ui/JoinWithSeparatorUI.form @@ -1,4 +1,4 @@ - + diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ui/JoinWithSeparatorUI.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ui/JoinWithSeparatorUI.java index 93b939b306..9b89a86457 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ui/JoinWithSeparatorUI.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/merge/ui/JoinWithSeparatorUI.java @@ -1,109 +1,128 @@ /* -Copyright 2008-2010 Gephi -Authors : Eduardo Ramos -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. + Copyright 2008-2010 Gephi + Authors : Eduardo Ramos + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2011 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns.merge.ui; import javax.swing.JPanel; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; -import org.gephi.data.attributes.api.AttributeTable; import org.gephi.datalab.plugin.manipulators.columns.merge.JoinWithSeparator; import org.gephi.datalab.spi.DialogControls; import org.gephi.datalab.spi.Manipulator; import org.gephi.datalab.spi.ManipulatorUI; +import org.gephi.graph.api.Table; import org.gephi.ui.utils.ColumnTitleValidator; import org.netbeans.validation.api.ui.ValidationGroup; -import org.netbeans.validation.api.ui.ValidationPanel; +import org.netbeans.validation.api.ui.swing.ValidationPanel; import org.openide.util.NbPreferences; /** * UI for JoinWithSeparator AttributeColumnsMergeStrategy - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -public class JoinWithSeparatorUI extends javax.swing.JPanel implements ManipulatorUI{ +public class JoinWithSeparatorUI extends javax.swing.JPanel implements ManipulatorUI { + private JoinWithSeparator manipulator; private DialogControls dialogControls; - private AttributeTable table; + private Table table; + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JLabel separatorLabel; + private javax.swing.JTextField separatorText; + private javax.swing.JLabel titleLabel; + private javax.swing.JTextField titleTextField; + // End of variables declaration//GEN-END:variables - /** Creates new form JoinWithSeparatorUI */ + /** + * Creates new form JoinWithSeparatorUI + */ public JoinWithSeparatorUI() { initComponents(); titleTextField.getDocument().addDocumentListener(new DocumentListener() { - + @Override public void insertUpdate(DocumentEvent e) { refreshOkButton(); } + @Override public void removeUpdate(DocumentEvent e) { refreshOkButton(); } + @Override public void changedUpdate(DocumentEvent e) { refreshOkButton(); } - private void refreshOkButton(){ - String text=titleTextField.getText(); - dialogControls.setOkButtonEnabled(text!=null&&!text.isEmpty()&&!table.hasColumn(text));//Title not empty and not repeated. + private void refreshOkButton() { + String text = titleTextField.getText(); + dialogControls.setOkButtonEnabled( + text != null && !text.isEmpty() && !table.hasColumn(text));//Title not empty and not repeated. } }); } + @Override public void setup(Manipulator m, DialogControls dialogControls) { - this.manipulator=(JoinWithSeparator) m; - this.dialogControls=dialogControls; - this.table=manipulator.getTable(); + this.manipulator = (JoinWithSeparator) m; + this.dialogControls = dialogControls; + this.table = manipulator.getTable(); separatorText.setText(manipulator.getSeparator()); } + @Override public void unSetup() { manipulator.setNewColumnTitle(titleTextField.getText()); manipulator.setSeparator(separatorText.getText()); - NbPreferences.forModule(JoinWithSeparator.class).put(JoinWithSeparator.SEPARATOR_SAVED_PREFERENCES, separatorText.getText()); + NbPreferences.forModule(JoinWithSeparator.class) + .put(JoinWithSeparator.SEPARATOR_SAVED_PREFERENCES, separatorText.getText()); } + @Override public String getDisplayName() { return manipulator.getName(); } + @Override public JPanel getSettingsPanel() { ValidationPanel validationPanel = new ValidationPanel(); validationPanel.setInnerComponent(this); @@ -115,14 +134,13 @@ public JPanel getSettingsPanel() { return validationPanel; } + @Override public boolean isModal() { return true; } - /** This method is called from within the constructor to - * initialize the form. - * WARNING: Do NOT modify this code. The content of this method is - * always regenerated by the Form Editor. + /** + * This method is called from within the constructor to initialize the form. WARNING: Do NOT modify this code. The content of this method is always regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents @@ -133,49 +151,47 @@ private void initComponents() { separatorLabel = new javax.swing.JLabel(); separatorText = new javax.swing.JTextField(); - titleLabel.setText(org.openide.util.NbBundle.getMessage(JoinWithSeparatorUI.class, "JoinWithSeparatorUI.titleLabel.text")); // NOI18N + titleLabel.setText(org.openide.util.NbBundle + .getMessage(JoinWithSeparatorUI.class, "JoinWithSeparatorUI.titleLabel.text")); // NOI18N - titleTextField.setText(org.openide.util.NbBundle.getMessage(JoinWithSeparatorUI.class, "JoinWithSeparatorUI.titleTextField.text")); // NOI18N + titleTextField.setText(org.openide.util.NbBundle + .getMessage(JoinWithSeparatorUI.class, "JoinWithSeparatorUI.titleTextField.text")); // NOI18N - separatorLabel.setText(org.openide.util.NbBundle.getMessage(JoinWithSeparatorUI.class, "JoinWithSeparatorUI.separatorLabel.text")); // NOI18N + separatorLabel.setText(org.openide.util.NbBundle + .getMessage(JoinWithSeparatorUI.class, "JoinWithSeparatorUI.separatorLabel.text")); // NOI18N - separatorText.setText(org.openide.util.NbBundle.getMessage(JoinWithSeparatorUI.class, "JoinWithSeparatorUI.separatorText.text")); // NOI18N + separatorText.setText(org.openide.util.NbBundle + .getMessage(JoinWithSeparatorUI.class, "JoinWithSeparatorUI.separatorText.text")); // NOI18N javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(titleLabel) - .addComponent(separatorLabel)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(separatorText, javax.swing.GroupLayout.DEFAULT_SIZE, 135, Short.MAX_VALUE) - .addComponent(titleTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 135, Short.MAX_VALUE)) - .addContainerGap()) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(titleLabel) + .addComponent(separatorLabel)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(separatorText, javax.swing.GroupLayout.DEFAULT_SIZE, 135, Short.MAX_VALUE) + .addComponent(titleTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 135, Short.MAX_VALUE)) + .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(titleLabel) - .addComponent(titleTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(separatorLabel) - .addComponent(separatorText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(titleLabel) + .addComponent(titleTextField, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(separatorLabel) + .addComponent(separatorText, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); }// //GEN-END:initComponents - - - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JLabel separatorLabel; - private javax.swing.JTextField separatorText; - private javax.swing.JLabel titleLabel; - private javax.swing.JTextField titleTextField; - // End of variables declaration//GEN-END:variables } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/ColumnValuesFrequencyUI.form b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/ColumnValuesFrequencyUI.form index 853c12ad2a..ae73a19727 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/ColumnValuesFrequencyUI.form +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/ColumnValuesFrequencyUI.form @@ -1,4 +1,4 @@ - + diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/ColumnValuesFrequencyUI.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/ColumnValuesFrequencyUI.java index bd1fcd40a7..a39422d5ca 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/ColumnValuesFrequencyUI.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/ColumnValuesFrequencyUI.java @@ -39,49 +39,62 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns.ui; import java.util.Map; import javax.swing.JPanel; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; import org.gephi.datalab.plugin.manipulators.columns.ColumnValuesFrequency; import org.gephi.datalab.spi.DialogControls; import org.gephi.datalab.spi.columns.AttributeColumnsManipulator; import org.gephi.datalab.spi.columns.AttributeColumnsManipulatorUI; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.GraphModel; +import org.gephi.graph.api.Table; import org.gephi.ui.components.JFreeChartDialog; import org.gephi.ui.components.SimpleHTMLReport; import org.jfree.chart.JFreeChart; +import org.openide.util.ImageUtilities; import org.openide.windows.WindowManager; /** * UI for ColumnValuesFrequency AttributeColumnsManipulator. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class ColumnValuesFrequencyUI extends javax.swing.JPanel implements AttributeColumnsManipulatorUI { private ColumnValuesFrequency manipulator; - private AttributeTable table; - private AttributeColumn column; + private Table table; + private Column column; private Map valuesFrequencies; private JFreeChart pieChart; private JFreeChartDialog pieChartDialog; private SimpleHTMLReport reportDialog; + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JButton configurePieChartButton; + private javax.swing.JButton showReportButton; + // End of variables declaration//GEN-END:variables - /** Creates new form ColumnValuesFrequencyUI */ + /** + * Creates new form ColumnValuesFrequencyUI + */ public ColumnValuesFrequencyUI() { initComponents(); } - public void setup(AttributeColumnsManipulator m, AttributeTable table, AttributeColumn column, DialogControls dialogControls) { + @Override + public void setup(AttributeColumnsManipulator m, GraphModel graphModel, Table table, Column column, + DialogControls dialogControls) { this.table = table; this.column = column; this.manipulator = (ColumnValuesFrequency) m; valuesFrequencies = manipulator.buildValuesFrequencies(table, column); - configurePieChartButton.setEnabled(valuesFrequencies.size()<=ColumnValuesFrequency.MAX_PIE_CHART_CATEGORIES); + configurePieChartButton.setEnabled(valuesFrequencies.size() <= ColumnValuesFrequency.MAX_PIE_CHART_CATEGORIES); } + @Override public void unSetup() { if (reportDialog != null) { reportDialog.dispose(); @@ -91,19 +104,23 @@ public void unSetup() { } } + @Override public String getDisplayName() { return manipulator.getName(); } + @Override public JPanel getSettingsPanel() { return this; } + @Override public boolean isModal() { return false; } - /** This method is called from within the constructor to + /** + * This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. @@ -115,17 +132,22 @@ private void initComponents() { configurePieChartButton = new javax.swing.JButton(); showReportButton = new javax.swing.JButton(); - configurePieChartButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/gephi/datalab/plugin/manipulators/resources/category.png"))); // NOI18N - configurePieChartButton.setText(org.openide.util.NbBundle.getMessage(ColumnValuesFrequencyUI.class, "ColumnValuesFrequencyUI.configurePieChartButton.text")); // NOI18N + configurePieChartButton.setIcon( + ImageUtilities.loadImageIcon("DataLaboratoryPlugin/category.svg", false)); // NOI18N + configurePieChartButton.setText(org.openide.util.NbBundle.getMessage(ColumnValuesFrequencyUI.class, + "ColumnValuesFrequencyUI.configurePieChartButton.text")); // NOI18N configurePieChartButton.addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(java.awt.event.ActionEvent evt) { configurePieChartButtonActionPerformed(evt); } }); - showReportButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/gephi/datalab/plugin/manipulators/resources/application-block.png"))); // NOI18N - showReportButton.setText(org.openide.util.NbBundle.getMessage(ColumnValuesFrequencyUI.class, "ColumnValuesFrequencyUI.showReportButton.text")); // NOI18N + showReportButton.setIcon(ImageUtilities.loadImageIcon("DataLaboratoryPlugin/application-block.svg", false)); // NOI18N + showReportButton.setText(org.openide.util.NbBundle + .getMessage(ColumnValuesFrequencyUI.class, "ColumnValuesFrequencyUI.showReportButton.text")); // NOI18N showReportButton.addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(java.awt.event.ActionEvent evt) { showReportButtonActionPerformed(evt); } @@ -135,49 +157,50 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addComponent(configurePieChartButton) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 9, Short.MAX_VALUE) - .addComponent(showReportButton) - .addContainerGap()) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(configurePieChartButton) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 9, Short.MAX_VALUE) + .addComponent(showReportButton) + .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(configurePieChartButton) - .addComponent(showReportButton)) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(configurePieChartButton) + .addComponent(showReportButton)) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); }// //GEN-END:initComponents - private void configurePieChartButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_configurePieChartButtonActionPerformed + private void configurePieChartButtonActionPerformed( + java.awt.event.ActionEvent evt) {//GEN-FIRST:event_configurePieChartButtonActionPerformed if (pieChart == null) { pieChart = manipulator.buildPieChart(valuesFrequencies); } if (pieChartDialog != null) { pieChartDialog.setVisible(true); } else { - pieChartDialog = new JFreeChartDialog(WindowManager.getDefault().getMainWindow(), pieChart.getTitle().getText(), pieChart, 1000, 1000); + pieChartDialog = + new JFreeChartDialog(WindowManager.getDefault().getMainWindow(), pieChart.getTitle().getText(), + pieChart, 1000, 1000); } }//GEN-LAST:event_configurePieChartButtonActionPerformed - private void showReportButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_showReportButtonActionPerformed + private void showReportButtonActionPerformed( + java.awt.event.ActionEvent evt) {//GEN-FIRST:event_showReportButtonActionPerformed if (pieChart == null) { pieChart = manipulator.buildPieChart(valuesFrequencies); } - final String html = manipulator.getReportHTML(table, column, valuesFrequencies, pieChart, pieChartDialog != null ? pieChartDialog.getChartSize() : null); + final String html = manipulator.getReportHTML(table, column, valuesFrequencies, pieChart, + pieChartDialog != null ? pieChartDialog.getChartSize() : null); if (reportDialog != null) { reportDialog.dispose(); } reportDialog = new SimpleHTMLReport(WindowManager.getDefault().getMainWindow(), html); }//GEN-LAST:event_showReportButtonActionPerformed - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JButton configurePieChartButton; - private javax.swing.JButton showReportButton; - // End of variables declaration//GEN-END:variables } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/ConvertColumnToDynamicTimestampsUI.form b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/ConvertColumnToDynamicTimestampsUI.form new file mode 100644 index 0000000000..022d5bd2a7 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/ConvertColumnToDynamicTimestampsUI.form @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/ConvertColumnToDynamicTimestampsUI.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/ConvertColumnToDynamicTimestampsUI.java new file mode 100644 index 0000000000..a4725138b6 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/ConvertColumnToDynamicTimestampsUI.java @@ -0,0 +1,263 @@ +/* + Copyright 2008-2010 Gephi + Authors : Eduardo Ramos + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2011 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2011 Gephi Consortium. + */ + +package org.gephi.datalab.plugin.manipulators.columns.ui; + +import javax.swing.JPanel; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; +import org.gephi.datalab.plugin.manipulators.columns.ConvertColumnToDynamic; +import org.gephi.datalab.spi.DialogControls; +import org.gephi.datalab.spi.columns.AttributeColumnsManipulator; +import org.gephi.datalab.spi.columns.AttributeColumnsManipulatorUI; +import org.gephi.graph.api.AttributeUtils; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.GraphModel; +import org.gephi.graph.api.Table; +import org.gephi.ui.utils.ColumnTitleValidator; +import org.gephi.ui.utils.IntervalBoundValidator; +import org.netbeans.validation.api.ui.ValidationGroup; +import org.netbeans.validation.api.ui.swing.ValidationPanel; +import org.openide.util.NbBundle; +import org.openide.util.NbPreferences; + +/** + * UI for ConvertColumnToDynamic AttributeColumnsManipulator and for Timestamps + * + * @author Eduardo Ramos + */ +public class ConvertColumnToDynamicTimestampsUI extends javax.swing.JPanel implements AttributeColumnsManipulatorUI { + + private static final String TIMESTAMP_PREFERENCE = "ConvertColumnToDynamicTimestampsUI.intervalStart"; + private static final String REPLACE_COLUMN_PREFERENCE = "ConvertColumnToDynamicTimestampsUI.replaceColumn"; + + private static final String DEFAULT_TIMESTAMP = "0"; + + private ConvertColumnToDynamic manipulator; + private Table table; + private DialogControls dialogControls; + private ValidationPanel validationPanel; + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JLabel descriptionLabel; + private javax.swing.JCheckBox replaceColumnCheckbox; + private javax.swing.JLabel timestampLabel; + private javax.swing.JTextField timestampText; + private javax.swing.JLabel titleLabel; + private javax.swing.JTextField titleTextField; + // End of variables declaration//GEN-END:variables + + /** + * Creates new form DuplicateColumnUI + */ + public ConvertColumnToDynamicTimestampsUI() { + initComponents(); + + timestampText.setText(NbPreferences.forModule(ConvertColumnToDynamicTimestampsUI.class) + .get(TIMESTAMP_PREFERENCE, DEFAULT_TIMESTAMP)); + replaceColumnCheckbox.setSelected(NbPreferences.forModule(ConvertColumnToDynamicTimestampsUI.class) + .getBoolean(REPLACE_COLUMN_PREFERENCE, false)); + } + + private void buildValidationPanel() { + validationPanel = new ValidationPanel(); + validationPanel.setInnerComponent(this); + + ValidationGroup group = validationPanel.getValidationGroup(); + + group.add(titleTextField, new ColumnTitleValidator(table)); + group.add(timestampText, new IntervalBoundValidator()); + + validationPanel.addChangeListener(new ChangeListener() { + @Override + public void stateChanged(ChangeEvent e) { + dialogControls.setOkButtonEnabled(!validationPanel.isFatalProblem()); + } + }); + } + + @Override + public void setup(AttributeColumnsManipulator m, GraphModel graphModel, Table table, Column column, + DialogControls dialogControls) { + this.table = table; + this.dialogControls = dialogControls; + this.manipulator = (ConvertColumnToDynamic) m; + + buildValidationPanel(); + + descriptionLabel.setText(NbBundle + .getMessage(ConvertColumnToDynamicTimestampsUI.class, "ConvertColumnToDynamicUI.descriptionLabel.text", + column.getTitle())); + titleTextField.setText(NbBundle + .getMessage(ConvertColumnToDynamicTimestampsUI.class, "ConvertColumnToDynamicUI.new.title", + column.getTitle())); + + refreshTitleEnabledState(); + } + + @Override + public void unSetup() { + String timestampString = timestampText.getText(); + boolean replaceColumn = replaceColumnCheckbox.isSelected(); + + NbPreferences.forModule(ConvertColumnToDynamicTimestampsUI.class).put(TIMESTAMP_PREFERENCE, timestampString); + NbPreferences.forModule(ConvertColumnToDynamicTimestampsUI.class) + .putBoolean(REPLACE_COLUMN_PREFERENCE, replaceColumn); + + if (!validationPanel.isFatalProblem()) { + manipulator.setTitle(titleTextField.getText()); + manipulator.setReplaceColumn(replaceColumn); + + double timestamp = AttributeUtils.parseDateTimeOrTimestamp(timestampString); + + manipulator.setLow(timestamp); + manipulator.setHigh(timestamp); + } + } + + @Override + public String getDisplayName() { + return manipulator.getName(); + } + + @Override + public JPanel getSettingsPanel() { + return validationPanel; + } + + @Override + public boolean isModal() { + return true; + } + + private void refreshTitleEnabledState() { + boolean enabled = !replaceColumnCheckbox.isSelected(); + titleTextField.setEnabled(enabled); + } + + /** + * This method is called from within the constructor to initialize the form. WARNING: Do NOT modify this code. The content of this method is always regenerated by the Form Editor. + */ + @SuppressWarnings("unchecked") + // //GEN-BEGIN:initComponents + private void initComponents() { + + titleLabel = new javax.swing.JLabel(); + titleTextField = new javax.swing.JTextField(); + descriptionLabel = new javax.swing.JLabel(); + replaceColumnCheckbox = new javax.swing.JCheckBox(); + timestampLabel = new javax.swing.JLabel(); + timestampText = new javax.swing.JTextField(); + + titleLabel.setText(org.openide.util.NbBundle.getMessage(ConvertColumnToDynamicTimestampsUI.class, + "ConvertColumnToDynamicTimestampsUI.titleLabel.text")); // NOI18N + + titleTextField.setText(org.openide.util.NbBundle.getMessage(ConvertColumnToDynamicTimestampsUI.class, + "ConvertColumnToDynamicTimestampsUI.titleTextField.text")); // NOI18N + + descriptionLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); + descriptionLabel.setText(null); + + replaceColumnCheckbox.setText(org.openide.util.NbBundle.getMessage(ConvertColumnToDynamicTimestampsUI.class, + "ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.text")); // NOI18N + replaceColumnCheckbox.setToolTipText(org.openide.util.NbBundle + .getMessage(ConvertColumnToDynamicTimestampsUI.class, + "ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.toolTipText")); // NOI18N + replaceColumnCheckbox.setHorizontalTextPosition(javax.swing.SwingConstants.LEADING); + replaceColumnCheckbox.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + replaceColumnCheckboxActionPerformed(evt); + } + }); + + timestampLabel.setText(org.openide.util.NbBundle.getMessage(ConvertColumnToDynamicTimestampsUI.class, + "ConvertColumnToDynamicTimestampsUI.timestampLabel.text")); // NOI18N + + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); + this.setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(descriptionLabel, javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(layout.createSequentialGroup() + .addComponent(replaceColumnCheckbox) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(titleLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 61, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(titleTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 177, Short.MAX_VALUE)) + .addGroup(layout.createSequentialGroup() + .addComponent(timestampLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 108, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(timestampText))) + .addContainerGap()) + ); + layout.setVerticalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(descriptionLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 23, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(timestampLabel) + .addComponent(timestampText, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, + javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(titleLabel) + .addComponent(titleTextField, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(replaceColumnCheckbox)) + .addGap(24, 24, 24)) + ); + }// //GEN-END:initComponents + + private void replaceColumnCheckboxActionPerformed( + java.awt.event.ActionEvent evt) {//GEN-FIRST:event_replaceColumnCheckboxActionPerformed + refreshTitleEnabledState(); + }//GEN-LAST:event_replaceColumnCheckboxActionPerformed +} diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/ConvertColumnToDynamicUI.form b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/ConvertColumnToDynamicUI.form index 78d3bb7c8e..7f360a0aef 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/ConvertColumnToDynamicUI.form +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/ConvertColumnToDynamicUI.form @@ -19,31 +19,24 @@ - + + + + + + + + + - + - + - + - - - - - - - - - - - - - - - @@ -56,25 +49,20 @@ - - - - + + + - - - - - - - - - + + + + + @@ -118,16 +106,6 @@ - - - - - - - - - - @@ -136,11 +114,6 @@ - - - - - @@ -150,27 +123,6 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/ConvertColumnToDynamicUI.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/ConvertColumnToDynamicUI.java index 914062f833..e3a72e2b61 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/ConvertColumnToDynamicUI.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/ConvertColumnToDynamicUI.java @@ -39,47 +39,55 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns.ui; -import java.text.ParseException; import javax.swing.JPanel; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; -import org.gephi.data.attributes.type.DynamicParser; import org.gephi.datalab.plugin.manipulators.columns.ConvertColumnToDynamic; import org.gephi.datalab.spi.DialogControls; import org.gephi.datalab.spi.columns.AttributeColumnsManipulator; import org.gephi.datalab.spi.columns.AttributeColumnsManipulatorUI; +import org.gephi.graph.api.AttributeUtils; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.GraphModel; +import org.gephi.graph.api.Table; import org.gephi.ui.utils.ColumnTitleValidator; import org.gephi.ui.utils.IntervalBoundValidator; import org.netbeans.validation.api.ui.ValidationGroup; -import org.netbeans.validation.api.ui.ValidationPanel; -import org.openide.util.Exceptions; +import org.netbeans.validation.api.ui.swing.ValidationPanel; import org.openide.util.NbBundle; import org.openide.util.NbPreferences; /** - * UI for DuplicateColumn AttributeColumnsManipulator. + * UI for ConvertColumnToDynamic AttributeColumnsManipulator and for Intervals * - * @author Eduardo Ramos + * @author Eduardo Ramos */ public class ConvertColumnToDynamicUI extends javax.swing.JPanel implements AttributeColumnsManipulatorUI { - + private static final String INTERVAL_START_PREFERENCE = "ConvertColumnToDynamicUI.intervalStart"; private static final String INTERVAL_END_PREFERENCE = "ConvertColumnToDynamicUI.intervalEnd"; - private static final String INTERVAL_START_OPEN_PREFERENCE = "ConvertColumnToDynamicUI.lopen"; - private static final String INTERVAL_END_OPEN_PREFERENCE = "ConvertColumnToDynamicUI.ropen"; private static final String REPLACE_COLUMN_PREFERENCE = "ConvertColumnToDynamicUI.replaceColumn"; - - private static final String DEFAULT_INTERVAL_START = "0"; - private static final String DEFAULT_INTERVAL_END = "1.0"; + + private static final String DEFAULT_INTERVAL_START = "-Infinity"; + private static final String DEFAULT_INTERVAL_END = "Infinity"; private ConvertColumnToDynamic manipulator; - private AttributeTable table; + private Table table; private DialogControls dialogControls; private ValidationPanel validationPanel; + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JLabel descriptionLabel; + private javax.swing.JLabel intervalEndLabel; + private javax.swing.JTextField intervalEndText; + private javax.swing.JLabel intervalStartLabel; + private javax.swing.JTextField intervalStartText; + private javax.swing.JCheckBox replaceColumnCheckbox; + private javax.swing.JLabel titleLabel; + private javax.swing.JTextField titleTextField; + // End of variables declaration//GEN-END:variables /** * Creates new form DuplicateColumnUI @@ -87,11 +95,12 @@ public class ConvertColumnToDynamicUI extends javax.swing.JPanel implements Attr public ConvertColumnToDynamicUI() { initComponents(); - intervalStartText.setText(NbPreferences.forModule(ConvertColumnToDynamicUI.class).get(INTERVAL_START_PREFERENCE, DEFAULT_INTERVAL_START)); - intervalEndText.setText(NbPreferences.forModule(ConvertColumnToDynamicUI.class).get(INTERVAL_END_PREFERENCE, DEFAULT_INTERVAL_END)); - intervalStartOpenCheckbox.setSelected(NbPreferences.forModule(ConvertColumnToDynamicUI.class).getBoolean(INTERVAL_START_OPEN_PREFERENCE, false)); - intervalEndOpenCheckbox.setSelected(NbPreferences.forModule(ConvertColumnToDynamicUI.class).getBoolean(INTERVAL_END_OPEN_PREFERENCE, false)); - replaceColumnCheckbox.setSelected(NbPreferences.forModule(ConvertColumnToDynamicUI.class).getBoolean(REPLACE_COLUMN_PREFERENCE, false)); + intervalStartText.setText(NbPreferences.forModule(ConvertColumnToDynamicUI.class) + .get(INTERVAL_START_PREFERENCE, DEFAULT_INTERVAL_START)); + intervalEndText.setText( + NbPreferences.forModule(ConvertColumnToDynamicUI.class).get(INTERVAL_END_PREFERENCE, DEFAULT_INTERVAL_END)); + replaceColumnCheckbox.setSelected( + NbPreferences.forModule(ConvertColumnToDynamicUI.class).getBoolean(REPLACE_COLUMN_PREFERENCE, false)); } private void buildValidationPanel() { @@ -107,59 +116,58 @@ private void buildValidationPanel() { validationPanel.addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent e) { - dialogControls.setOkButtonEnabled(!validationPanel.isProblem()); + dialogControls.setOkButtonEnabled(!validationPanel.isFatalProblem()); } }); } - public void setup(AttributeColumnsManipulator m, AttributeTable table, AttributeColumn column, DialogControls dialogControls) { + @Override + public void setup(AttributeColumnsManipulator m, GraphModel graphModel, Table table, Column column, + DialogControls dialogControls) { this.table = table; this.dialogControls = dialogControls; this.manipulator = (ConvertColumnToDynamic) m; buildValidationPanel(); - descriptionLabel.setText(NbBundle.getMessage(ConvertColumnToDynamicUI.class, "ConvertColumnToDynamicUI.descriptionLabel.text", column.getTitle())); - titleTextField.setText(NbBundle.getMessage(ConvertColumnToDynamicUI.class, "ConvertColumnToDynamicUI.new.title", column.getTitle())); - + descriptionLabel.setText(NbBundle + .getMessage(ConvertColumnToDynamicUI.class, "ConvertColumnToDynamicUI.descriptionLabel.text", + column.getTitle())); + titleTextField.setText(NbBundle + .getMessage(ConvertColumnToDynamicUI.class, "ConvertColumnToDynamicUI.new.title", column.getTitle())); + refreshTitleEnabledState(); } + @Override public void unSetup() { String intervalStart = intervalStartText.getText(); String intervalEnd = intervalEndText.getText(); - boolean lopen = intervalStartOpenCheckbox.isSelected(); - boolean ropen = intervalEndOpenCheckbox.isSelected(); boolean replaceColumn = replaceColumnCheckbox.isSelected(); - + NbPreferences.forModule(ConvertColumnToDynamicUI.class).put(INTERVAL_START_PREFERENCE, intervalStart); NbPreferences.forModule(ConvertColumnToDynamicUI.class).put(INTERVAL_END_PREFERENCE, intervalEnd); - NbPreferences.forModule(ConvertColumnToDynamicUI.class).putBoolean(INTERVAL_START_OPEN_PREFERENCE, lopen); - NbPreferences.forModule(ConvertColumnToDynamicUI.class).putBoolean(INTERVAL_END_OPEN_PREFERENCE, ropen); NbPreferences.forModule(ConvertColumnToDynamicUI.class).putBoolean(REPLACE_COLUMN_PREFERENCE, replaceColumn); - - if (!validationPanel.isProblem()) { + + if (!validationPanel.isFatalProblem()) { manipulator.setTitle(titleTextField.getText()); - try { - manipulator.setReplaceColumn(replaceColumn); - manipulator.setLow(DynamicParser.parseTime(intervalStart)); - manipulator.setHigh(DynamicParser.parseTime(intervalEnd)); - manipulator.setLopen(lopen); - manipulator.setRopen(ropen); - } catch (ParseException ex) { - Exceptions.printStackTrace(ex); - } + manipulator.setReplaceColumn(replaceColumn); + manipulator.setLow(AttributeUtils.parseDateTimeOrTimestamp(intervalStart)); + manipulator.setHigh(AttributeUtils.parseDateTimeOrTimestamp(intervalEnd)); } } + @Override public String getDisplayName() { return manipulator.getName(); } + @Override public JPanel getSettingsPanel() { return validationPanel; } + @Override public boolean isModal() { return true; } @@ -180,114 +188,94 @@ private void initComponents() { titleTextField = new javax.swing.JTextField(); descriptionLabel = new javax.swing.JLabel(); replaceColumnCheckbox = new javax.swing.JCheckBox(); - filler1 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(32767, 0)); intervalStartLabel = new javax.swing.JLabel(); intervalStartText = new javax.swing.JTextField(); intervalEndLabel = new javax.swing.JLabel(); intervalEndText = new javax.swing.JTextField(); - intervalStartOpenCheckbox = new javax.swing.JCheckBox(); - intervalEndOpenCheckbox = new javax.swing.JCheckBox(); - titleLabel.setText(org.openide.util.NbBundle.getMessage(ConvertColumnToDynamicUI.class, "ConvertColumnToDynamicUI.titleLabel.text")); // NOI18N + titleLabel.setText(org.openide.util.NbBundle + .getMessage(ConvertColumnToDynamicUI.class, "ConvertColumnToDynamicUI.titleLabel.text")); // NOI18N - titleTextField.setText(org.openide.util.NbBundle.getMessage(ConvertColumnToDynamicUI.class, "ConvertColumnToDynamicUI.titleTextField.text")); // NOI18N + titleTextField.setText(org.openide.util.NbBundle + .getMessage(ConvertColumnToDynamicUI.class, "ConvertColumnToDynamicUI.titleTextField.text")); // NOI18N descriptionLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); descriptionLabel.setText(null); - replaceColumnCheckbox.setText(org.openide.util.NbBundle.getMessage(ConvertColumnToDynamicUI.class, "ConvertColumnToDynamicUI.replaceColumnCheckbox.text")); // NOI18N - replaceColumnCheckbox.setToolTipText(org.openide.util.NbBundle.getMessage(ConvertColumnToDynamicUI.class, "ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText")); // NOI18N + replaceColumnCheckbox.setText(org.openide.util.NbBundle.getMessage(ConvertColumnToDynamicUI.class, + "ConvertColumnToDynamicUI.replaceColumnCheckbox.text")); // NOI18N + replaceColumnCheckbox.setToolTipText(org.openide.util.NbBundle.getMessage(ConvertColumnToDynamicUI.class, + "ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText")); // NOI18N replaceColumnCheckbox.setHorizontalTextPosition(javax.swing.SwingConstants.LEADING); replaceColumnCheckbox.addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(java.awt.event.ActionEvent evt) { replaceColumnCheckboxActionPerformed(evt); } }); - intervalStartLabel.setText(org.openide.util.NbBundle.getMessage(ConvertColumnToDynamicUI.class, "ConvertColumnToDynamicUI.intervalStartLabel.text")); // NOI18N - - intervalStartText.setText(org.openide.util.NbBundle.getMessage(ConvertColumnToDynamicUI.class, "ConvertColumnToDynamicUI.intervalStartText.text")); // NOI18N - - intervalEndLabel.setText(org.openide.util.NbBundle.getMessage(ConvertColumnToDynamicUI.class, "ConvertColumnToDynamicUI.intervalEndLabel.text")); // NOI18N - - intervalEndText.setText(org.openide.util.NbBundle.getMessage(ConvertColumnToDynamicUI.class, "ConvertColumnToDynamicUI.intervalEndText.text")); // NOI18N + intervalStartLabel.setText(org.openide.util.NbBundle + .getMessage(ConvertColumnToDynamicUI.class, "ConvertColumnToDynamicUI.intervalStartLabel.text")); // NOI18N - intervalStartOpenCheckbox.setText(org.openide.util.NbBundle.getMessage(ConvertColumnToDynamicUI.class, "ConvertColumnToDynamicUI.intervalOpenCheckbox.text")); - intervalStartOpenCheckbox.setHorizontalTextPosition(javax.swing.SwingConstants.LEADING); - - intervalEndOpenCheckbox.setText(org.openide.util.NbBundle.getMessage(ConvertColumnToDynamicUI.class, "ConvertColumnToDynamicUI.intervalOpenCheckbox.text")); - intervalEndOpenCheckbox.setHorizontalTextPosition(javax.swing.SwingConstants.LEADING); + intervalEndLabel.setText(org.openide.util.NbBundle + .getMessage(ConvertColumnToDynamicUI.class, "ConvertColumnToDynamicUI.intervalEndLabel.text")); // NOI18N javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(intervalEndLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(intervalStartLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 92, Short.MAX_VALUE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(intervalStartText, javax.swing.GroupLayout.DEFAULT_SIZE, 201, Short.MAX_VALUE) - .addComponent(intervalEndText)) - .addGap(6, 6, 6) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(intervalStartOpenCheckbox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(intervalEndOpenCheckbox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) - .addComponent(descriptionLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addGroup(layout.createSequentialGroup() - .addComponent(replaceColumnCheckbox) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(filler1, javax.swing.GroupLayout.PREFERRED_SIZE, 4, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(titleLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(titleTextField))) - .addContainerGap()) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(descriptionLabel, javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(layout.createSequentialGroup() + .addComponent(replaceColumnCheckbox) + .addGap(16, 16, 16) + .addComponent(titleLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 30, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(titleTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 190, Short.MAX_VALUE)) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(intervalEndLabel, javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(intervalStartLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 117, + Short.MAX_VALUE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(intervalStartText) + .addComponent(intervalEndText)))) + .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addComponent(descriptionLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(intervalStartLabel) - .addComponent(intervalStartText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(intervalStartOpenCheckbox)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(intervalEndLabel) - .addComponent(intervalEndText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(intervalEndOpenCheckbox)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 71, Short.MAX_VALUE) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(filler1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(descriptionLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 23, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(intervalStartLabel) + .addComponent(intervalStartText, javax.swing.GroupLayout.PREFERRED_SIZE, 20, + javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(intervalEndLabel) + .addComponent(intervalEndText, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 23, Short.MAX_VALUE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(titleLabel) - .addComponent(titleTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(replaceColumnCheckbox))) - .addGap(24, 24, 24)) + .addComponent(titleTextField, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(replaceColumnCheckbox)) + .addGap(24, 24, 24)) ); }// //GEN-END:initComponents - private void replaceColumnCheckboxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_replaceColumnCheckboxActionPerformed + private void replaceColumnCheckboxActionPerformed( + java.awt.event.ActionEvent evt) {//GEN-FIRST:event_replaceColumnCheckboxActionPerformed refreshTitleEnabledState(); }//GEN-LAST:event_replaceColumnCheckboxActionPerformed - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JLabel descriptionLabel; - private javax.swing.Box.Filler filler1; - private javax.swing.JLabel intervalEndLabel; - private javax.swing.JCheckBox intervalEndOpenCheckbox; - private javax.swing.JTextField intervalEndText; - private javax.swing.JLabel intervalStartLabel; - private javax.swing.JCheckBox intervalStartOpenCheckbox; - private javax.swing.JTextField intervalStartText; - private javax.swing.JCheckBox replaceColumnCheckbox; - private javax.swing.JLabel titleLabel; - private javax.swing.JTextField titleTextField; - // End of variables declaration//GEN-END:variables } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/CopyDataToOtherColumnUI.form b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/CopyDataToOtherColumnUI.form index 35a63c7e41..b4b55f765a 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/CopyDataToOtherColumnUI.form +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/CopyDataToOtherColumnUI.form @@ -1,4 +1,4 @@ - +
    diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/CopyDataToOtherColumnUI.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/CopyDataToOtherColumnUI.java index 2f03af390d..53deb369a9 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/CopyDataToOtherColumnUI.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/CopyDataToOtherColumnUI.java @@ -1,115 +1,131 @@ /* -Copyright 2008-2010 Gephi -Authors : Eduardo Ramos -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. + Copyright 2008-2010 Gephi + Authors : Eduardo Ramos + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2011 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns.ui; import java.util.ArrayList; import javax.swing.JPanel; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; import org.gephi.datalab.api.AttributeColumnsController; import org.gephi.datalab.plugin.manipulators.columns.CopyDataToOtherColumn; - import org.gephi.datalab.spi.DialogControls; import org.gephi.datalab.spi.columns.AttributeColumnsManipulator; import org.gephi.datalab.spi.columns.AttributeColumnsManipulatorUI; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.GraphModel; +import org.gephi.graph.api.Table; import org.openide.util.Lookup; import org.openide.util.NbBundle; /** * UI for CopyDataToOtherColumn AttributeColumnsManipulator - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -public class CopyDataToOtherColumnUI extends javax.swing.JPanel implements AttributeColumnsManipulatorUI{ +public class CopyDataToOtherColumnUI extends javax.swing.JPanel implements AttributeColumnsManipulatorUI { + CopyDataToOtherColumn manipulator; - AttributeColumn[] columns; + Column[] columns; + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JComboBox columnsComboBox; + private javax.swing.JLabel descriptionLabel; + private javax.swing.JLabel sourceColumnLabel; + // End of variables declaration//GEN-END:variables - /** Creates new form CopyDataToOtherColumnUI */ + /** + * Creates new form CopyDataToOtherColumnUI + */ public CopyDataToOtherColumnUI() { initComponents(); } - public void setup(AttributeColumnsManipulator m, AttributeTable table, AttributeColumn column, DialogControls dialogControls) { - this.manipulator=(CopyDataToOtherColumn) m; + @Override + public void setup(AttributeColumnsManipulator m, GraphModel graphModel, Table table, Column column, + DialogControls dialogControls) { + this.manipulator = (CopyDataToOtherColumn) m; - sourceColumnLabel.setText(NbBundle.getMessage(CopyDataToOtherColumnUI.class, "CopyDataToOtherColumnUI.sourceColumnLabel.text",column.getTitle())); + sourceColumnLabel.setText(NbBundle + .getMessage(CopyDataToOtherColumnUI.class, "CopyDataToOtherColumnUI.sourceColumnLabel.text", + column.getTitle())); - AttributeColumnsController ac=Lookup.getDefault().lookup(AttributeColumnsController.class); + AttributeColumnsController ac = Lookup.getDefault().lookup(AttributeColumnsController.class); - ArrayList availableColumns=new ArrayList(); + ArrayList availableColumns = new ArrayList<>(); - for(AttributeColumn c:table.getColumns()){ - if(ac.canChangeColumnData(c)&&c!=column){ + for (Column c : table) { + if (ac.canChangeColumnData(c) && c != column) { availableColumns.add(c); columnsComboBox.addItem(c.getTitle()); } } - columns=availableColumns.toArray(new AttributeColumn[0]); + columns = availableColumns.toArray(new Column[0]); } + @Override public void unSetup() { - if(columnsComboBox.getSelectedIndex()!=-1){ + if (columnsComboBox.getSelectedIndex() != -1) { manipulator.setTargetColumn(columns[columnsComboBox.getSelectedIndex()]); - }else{ + } else { manipulator.setTargetColumn(null); } } + @Override public String getDisplayName() { return manipulator.getName(); } + @Override public JPanel getSettingsPanel() { return this; } + @Override public boolean isModal() { return true; } - /** This method is called from within the constructor to - * initialize the form. - * WARNING: Do NOT modify this code. The content of this method is - * always regenerated by the Form Editor. + /** + * This method is called from within the constructor to initialize the form. WARNING: Do NOT modify this code. The content of this method is always regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents @@ -120,7 +136,8 @@ private void initComponents() { sourceColumnLabel = new javax.swing.JLabel(); descriptionLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - descriptionLabel.setText(org.openide.util.NbBundle.getMessage(CopyDataToOtherColumnUI.class, "CopyDataToOtherColumnUI.descriptionLabel.text")); // NOI18N + descriptionLabel.setText(org.openide.util.NbBundle + .getMessage(CopyDataToOtherColumnUI.class, "CopyDataToOtherColumnUI.descriptionLabel.text")); // NOI18N sourceColumnLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); sourceColumnLabel.setText(null); @@ -129,30 +146,27 @@ private void initComponents() { this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(descriptionLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(columnsComboBox, 0, 192, Short.MAX_VALUE) - .addComponent(sourceColumnLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 192, Short.MAX_VALUE)) - .addContainerGap()) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(descriptionLabel, javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(columnsComboBox, 0, 192, Short.MAX_VALUE) + .addComponent(sourceColumnLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 192, Short.MAX_VALUE)) + .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addContainerGap() - .addComponent(sourceColumnLabel) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(descriptionLabel) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(columnsComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addContainerGap()) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addContainerGap() + .addComponent(sourceColumnLabel) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, + javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(descriptionLabel) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(columnsComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap()) ); }// //GEN-END:initComponents - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JComboBox columnsComboBox; - private javax.swing.JLabel descriptionLabel; - private javax.swing.JLabel sourceColumnLabel; - // End of variables declaration//GEN-END:variables - } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/DuplicateColumnUI.form b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/DuplicateColumnUI.form index 217560a0ca..45ec8596c2 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/DuplicateColumnUI.form +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/DuplicateColumnUI.form @@ -1,4 +1,4 @@ - + diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/DuplicateColumnUI.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/DuplicateColumnUI.java index 50869b4dfe..665dcbc163 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/DuplicateColumnUI.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/DuplicateColumnUI.java @@ -1,118 +1,146 @@ /* -Copyright 2008-2010 Gephi -Authors : Eduardo Ramos -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. + Copyright 2008-2010 Gephi + Authors : Eduardo Ramos + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2011 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns.ui; +import java.util.List; import javax.swing.JPanel; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; -import org.gephi.data.attributes.api.AttributeType; import org.gephi.datalab.plugin.manipulators.columns.DuplicateColumn; import org.gephi.datalab.spi.DialogControls; import org.gephi.datalab.spi.columns.AttributeColumnsManipulator; import org.gephi.datalab.spi.columns.AttributeColumnsManipulatorUI; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.GraphModel; +import org.gephi.graph.api.Table; import org.gephi.ui.utils.ColumnTitleValidator; +import org.gephi.ui.utils.SupportedColumnTypeWrapper; import org.netbeans.validation.api.ui.ValidationGroup; -import org.netbeans.validation.api.ui.ValidationPanel; +import org.netbeans.validation.api.ui.swing.ValidationPanel; import org.openide.util.NbBundle; /** * UI for DuplicateColumn AttributeColumnsManipulator. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class DuplicateColumnUI extends javax.swing.JPanel implements AttributeColumnsManipulatorUI { private DuplicateColumn manipulator; - private AttributeTable table; + private Table table; private DialogControls dialogControls; + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JLabel descriptionLabel; + private javax.swing.JLabel titleLabel; + private javax.swing.JTextField titleTextField; + private javax.swing.JComboBox typeComboBox; + private javax.swing.JLabel typeLabel; + // End of variables declaration//GEN-END:variables - /** Creates new form DuplicateColumnUI */ + /** + * Creates new form DuplicateColumnUI + */ public DuplicateColumnUI() { initComponents(); titleTextField.getDocument().addDocumentListener(new DocumentListener() { + @Override public void insertUpdate(DocumentEvent e) { refreshOkButton(); } + @Override public void removeUpdate(DocumentEvent e) { refreshOkButton(); } + @Override public void changedUpdate(DocumentEvent e) { refreshOkButton(); } - private void refreshOkButton(){ - String text=titleTextField.getText(); - dialogControls.setOkButtonEnabled(text!=null&&!text.isEmpty()&&!table.hasColumn(text));//Title not empty and not repeated. + private void refreshOkButton() { + String text = titleTextField.getText(); + dialogControls.setOkButtonEnabled( + text != null && !text.isEmpty() && !table.hasColumn(text));//Title not empty and not repeated. } }); } - public void setup(AttributeColumnsManipulator m, AttributeTable table, AttributeColumn column, DialogControls dialogControls) { - this.table=table; - this.dialogControls=dialogControls; + @Override + public void setup(AttributeColumnsManipulator m, GraphModel graphModel, Table table, Column column, + DialogControls dialogControls) { + this.table = table; + this.dialogControls = dialogControls; this.manipulator = (DuplicateColumn) m; - descriptionLabel.setText(NbBundle.getMessage(DuplicateColumnUI.class, "DuplicateColumnUI.descriptionLabel.text", column.getTitle())); - titleTextField.setText(NbBundle.getMessage(DuplicateColumnUI.class, "DuplicateColumnUI.new.title", column.getTitle())); + descriptionLabel.setText( + NbBundle.getMessage(DuplicateColumnUI.class, "DuplicateColumnUI.descriptionLabel.text", column.getTitle())); + titleTextField + .setText(NbBundle.getMessage(DuplicateColumnUI.class, "DuplicateColumnUI.new.title", column.getTitle())); - for (AttributeType type : AttributeType.values()) { - typeComboBox.addItem(type); + List supportedTypesWrappers = + SupportedColumnTypeWrapper.buildOrderedSupportedTypesList(graphModel); + + for (SupportedColumnTypeWrapper supportedColumnTypeWrapper : supportedTypesWrappers) { + typeComboBox.addItem(supportedColumnTypeWrapper); } - typeComboBox.setSelectedItem(column.getType()); + + typeComboBox.setSelectedItem(new SupportedColumnTypeWrapper(column.getTypeClass())); } + @Override public void unSetup() { - manipulator.setColumnType((AttributeType) typeComboBox.getSelectedItem()); + manipulator.setColumnType(((SupportedColumnTypeWrapper) typeComboBox.getSelectedItem()).getType()); manipulator.setTitle(titleTextField.getText()); } + @Override public String getDisplayName() { return manipulator.getName(); } + @Override public JPanel getSettingsPanel() { ValidationPanel validationPanel = new ValidationPanel(); validationPanel.setInnerComponent(this); @@ -124,14 +152,13 @@ public JPanel getSettingsPanel() { return validationPanel; } + @Override public boolean isModal() { return true; } - /** This method is called from within the constructor to - * initialize the form. - * WARNING: Do NOT modify this code. The content of this method is - * always regenerated by the Form Editor. + /** + * This method is called from within the constructor to initialize the form. WARNING: Do NOT modify this code. The content of this method is always regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents @@ -143,11 +170,14 @@ private void initComponents() { typeComboBox = new javax.swing.JComboBox(); descriptionLabel = new javax.swing.JLabel(); - titleLabel.setText(org.openide.util.NbBundle.getMessage(DuplicateColumnUI.class, "DuplicateColumnUI.titleLabel.text")); // NOI18N + titleLabel.setText(org.openide.util.NbBundle + .getMessage(DuplicateColumnUI.class, "DuplicateColumnUI.titleLabel.text")); // NOI18N - titleTextField.setText(org.openide.util.NbBundle.getMessage(DuplicateColumnUI.class, "DuplicateColumnUI.titleTextField.text")); // NOI18N + titleTextField.setText(org.openide.util.NbBundle + .getMessage(DuplicateColumnUI.class, "DuplicateColumnUI.titleTextField.text")); // NOI18N - typeLabel.setText(org.openide.util.NbBundle.getMessage(DuplicateColumnUI.class, "DuplicateColumnUI.typeLabel.text")); // NOI18N + typeLabel.setText(org.openide.util.NbBundle + .getMessage(DuplicateColumnUI.class, "DuplicateColumnUI.typeLabel.text")); // NOI18N descriptionLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); descriptionLabel.setText(null); @@ -156,41 +186,38 @@ private void initComponents() { this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(descriptionLabel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 299, Short.MAX_VALUE) - .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() - .addComponent(titleLabel) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(titleTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 203, Short.MAX_VALUE)) - .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() - .addComponent(typeLabel) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(typeComboBox, 0, 199, Short.MAX_VALUE))) - .addContainerGap()) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(descriptionLabel, javax.swing.GroupLayout.Alignment.LEADING, + javax.swing.GroupLayout.DEFAULT_SIZE, 299, Short.MAX_VALUE) + .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() + .addComponent(titleLabel) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(titleTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 203, Short.MAX_VALUE)) + .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() + .addComponent(typeLabel) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(typeComboBox, 0, 199, Short.MAX_VALUE))) + .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addComponent(descriptionLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(titleLabel) - .addComponent(titleTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(18, 18, 18) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(typeLabel) - .addComponent(typeComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(descriptionLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 23, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(titleLabel) + .addComponent(titleTextField, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(18, 18, 18) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(typeLabel) + .addComponent(typeComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); }// //GEN-END:initComponents - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JLabel descriptionLabel; - private javax.swing.JLabel titleLabel; - private javax.swing.JTextField titleTextField; - private javax.swing.JComboBox typeComboBox; - private javax.swing.JLabel typeLabel; - // End of variables declaration//GEN-END:variables } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/GeneralCreateColumnFromRegexUI.form b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/GeneralCreateColumnFromRegexUI.form index f9d02243e5..9e00f8926f 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/GeneralCreateColumnFromRegexUI.form +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/GeneralCreateColumnFromRegexUI.form @@ -1,4 +1,4 @@ - + diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/GeneralCreateColumnFromRegexUI.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/GeneralCreateColumnFromRegexUI.java index ed1e723986..9c68a3306b 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/GeneralCreateColumnFromRegexUI.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/columns/ui/GeneralCreateColumnFromRegexUI.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.columns.ui; import java.awt.Color; @@ -47,93 +48,111 @@ Development and Distribution License("CDDL") (collectively, the import javax.swing.JPanel; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; import org.gephi.datalab.plugin.manipulators.columns.GeneralCreateColumnFromRegex; import org.gephi.datalab.spi.DialogControls; import org.gephi.datalab.spi.columns.AttributeColumnsManipulator; import org.gephi.datalab.spi.columns.AttributeColumnsManipulatorUI; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.GraphModel; +import org.gephi.graph.api.Table; import org.gephi.ui.utils.ColumnTitleValidator; import org.netbeans.validation.api.ui.ValidationGroup; -import org.netbeans.validation.api.ui.ValidationPanel; +import org.netbeans.validation.api.ui.swing.ValidationPanel; import org.openide.util.NbBundle; /** * UI for CreateBooleanMatchesColumn AttributeColumnsManipulator - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class GeneralCreateColumnFromRegexUI extends javax.swing.JPanel implements AttributeColumnsManipulatorUI { + private static final Color invalidRegexColor = new Color(254, 150, 150); private DialogControls dialogControls; - private AttributeTable table; - - public enum Mode { - - BOOLEAN, - MATCHING_GROUPS - } + private Table table; private Mode mode = Mode.BOOLEAN; - private static final Color invalidRegexColor = new Color(254, 150, 150); private GeneralCreateColumnFromRegex manipulator; private Pattern pattern; + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JLabel descriptionLabel; + private javax.swing.JLabel regexLabel; + private javax.swing.JTextField regexTextField; + private javax.swing.JLabel titleLabel; + private javax.swing.JTextField titleTextField; + // End of variables declaration//GEN-END:variables - /** Creates new form CreateBooleanMatchesColumnUI */ + /** + * Creates new form CreateBooleanMatchesColumnUI + */ public GeneralCreateColumnFromRegexUI() { initComponents(); regexTextField.getDocument().addDocumentListener(new DocumentListener() { + @Override public void insertUpdate(DocumentEvent e) { refreshPattern(); } + @Override public void removeUpdate(DocumentEvent e) { refreshPattern(); } + @Override public void changedUpdate(DocumentEvent e) { refreshPattern(); } }); titleTextField.getDocument().addDocumentListener(new DocumentListener() { + @Override public void insertUpdate(DocumentEvent e) { refreshOkButton(); } + @Override public void removeUpdate(DocumentEvent e) { refreshOkButton(); } + @Override public void changedUpdate(DocumentEvent e) { refreshOkButton(); } }); } - public void setup(AttributeColumnsManipulator m, AttributeTable table, AttributeColumn column, DialogControls dialogControls) { + @Override + public void setup(AttributeColumnsManipulator m, GraphModel graphModel, Table table, Column column, + DialogControls dialogControls) { this.manipulator = (GeneralCreateColumnFromRegex) m; this.table = table; this.dialogControls = dialogControls; switch (mode) { case BOOLEAN: - descriptionLabel.setText(NbBundle.getMessage(GeneralCreateColumnFromRegexUI.class, "GeneralCreateColumnFromRegexUI.descriptionLabel.text.boolean", column.getTitle())); + descriptionLabel.setText(NbBundle.getMessage(GeneralCreateColumnFromRegexUI.class, + "GeneralCreateColumnFromRegexUI.descriptionLabel.text.boolean", column.getTitle())); break; case MATCHING_GROUPS: - descriptionLabel.setText(NbBundle.getMessage(GeneralCreateColumnFromRegexUI.class, "GeneralCreateColumnFromRegexUI.descriptionLabel.text.matching_groups", column.getTitle())); + descriptionLabel.setText(NbBundle.getMessage(GeneralCreateColumnFromRegexUI.class, + "GeneralCreateColumnFromRegexUI.descriptionLabel.text.matching_groups", column.getTitle())); break; } refreshPattern(); } + @Override public void unSetup() { manipulator.setTitle(titleTextField.getText()); manipulator.setPattern(pattern); } + @Override public String getDisplayName() { return manipulator.getName(); } + @Override public JPanel getSettingsPanel() { ValidationPanel validationPanel = new ValidationPanel(); validationPanel.setInnerComponent(this); @@ -145,13 +164,15 @@ public JPanel getSettingsPanel() { return validationPanel; } + @Override public boolean isModal() { return true; } private void refreshOkButton() { String text = titleTextField.getText(); - dialogControls.setOkButtonEnabled(pattern != null && text != null && !text.isEmpty() && !table.hasColumn(text));//Valid regex and title not empty and not repeated. + dialogControls.setOkButtonEnabled(pattern != null && text != null && !text.isEmpty() && + !table.hasColumn(text));//Valid regex and title not empty and not repeated. } private void refreshPattern() { @@ -174,7 +195,8 @@ public void setMode(Mode mode) { this.mode = mode; } - /** This method is called from within the constructor to + /** + * This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. @@ -189,13 +211,17 @@ private void initComponents() { regexTextField = new javax.swing.JTextField(); descriptionLabel = new javax.swing.JLabel(); - titleLabel.setText(org.openide.util.NbBundle.getMessage(GeneralCreateColumnFromRegexUI.class, "GeneralCreateColumnFromRegexUI.titleLabel.text")); // NOI18N + titleLabel.setText(org.openide.util.NbBundle.getMessage(GeneralCreateColumnFromRegexUI.class, + "GeneralCreateColumnFromRegexUI.titleLabel.text")); // NOI18N - titleTextField.setText(org.openide.util.NbBundle.getMessage(GeneralCreateColumnFromRegexUI.class, "GeneralCreateColumnFromRegexUI.titleTextField.text")); // NOI18N + titleTextField.setText(org.openide.util.NbBundle.getMessage(GeneralCreateColumnFromRegexUI.class, + "GeneralCreateColumnFromRegexUI.titleTextField.text")); // NOI18N - regexLabel.setText(org.openide.util.NbBundle.getMessage(GeneralCreateColumnFromRegexUI.class, "GeneralCreateColumnFromRegexUI.regexLabel.text")); // NOI18N + regexLabel.setText(org.openide.util.NbBundle.getMessage(GeneralCreateColumnFromRegexUI.class, + "GeneralCreateColumnFromRegexUI.regexLabel.text")); // NOI18N - regexTextField.setText(org.openide.util.NbBundle.getMessage(GeneralCreateColumnFromRegexUI.class, "GeneralCreateColumnFromRegexUI.regexTextField.text")); // NOI18N + regexTextField.setText(org.openide.util.NbBundle.getMessage(GeneralCreateColumnFromRegexUI.class, + "GeneralCreateColumnFromRegexUI.regexTextField.text")); // NOI18N descriptionLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); descriptionLabel.setText(null); @@ -204,41 +230,45 @@ private void initComponents() { this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(descriptionLabel, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 280, Short.MAX_VALUE) - .addGroup(layout.createSequentialGroup() - .addComponent(regexLabel) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(regexTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 180, Short.MAX_VALUE)) - .addGroup(layout.createSequentialGroup() - .addComponent(titleLabel) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(titleTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 184, Short.MAX_VALUE))) - .addContainerGap()) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(descriptionLabel, javax.swing.GroupLayout.Alignment.TRAILING, + javax.swing.GroupLayout.DEFAULT_SIZE, 280, Short.MAX_VALUE) + .addGroup(layout.createSequentialGroup() + .addComponent(regexLabel) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(regexTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 180, Short.MAX_VALUE)) + .addGroup(layout.createSequentialGroup() + .addComponent(titleLabel) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(titleTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 184, Short.MAX_VALUE))) + .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addContainerGap() - .addComponent(descriptionLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(titleTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(titleLabel)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(regexLabel) - .addComponent(regexTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addContainerGap()) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addContainerGap() + .addComponent(descriptionLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 33, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, + javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(titleTextField, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(titleLabel)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(regexLabel) + .addComponent(regexTextField, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addContainerGap()) ); }// //GEN-END:initComponents - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JLabel descriptionLabel; - private javax.swing.JLabel regexLabel; - private javax.swing.JTextField regexTextField; - private javax.swing.JLabel titleLabel; - private javax.swing.JTextField titleTextField; - // End of variables declaration//GEN-END:variables + + public enum Mode { + + BOOLEAN, + MATCHING_GROUPS + } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/BasicEdgesManipulator.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/BasicEdgesManipulator.java index fe5d25d909..4116dc18cf 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/BasicEdgesManipulator.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/BasicEdgesManipulator.java @@ -39,25 +39,28 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.edges; import org.gephi.datalab.spi.ContextMenuItemManipulator; import org.gephi.datalab.spi.edges.EdgesManipulator; /** - * * @author Eduardo */ -public abstract class BasicEdgesManipulator implements EdgesManipulator{ +public abstract class BasicEdgesManipulator implements EdgesManipulator { + @Override public boolean isAvailable() { return true; } + @Override public ContextMenuItemManipulator[] getSubItems() { return null; } + @Override public Integer getMnemonicKey() { return null; } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/ClearEdgesData.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/ClearEdgesData.java index 4b2c64ddc1..205d90a29e 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/ClearEdgesData.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/ClearEdgesData.java @@ -39,43 +39,47 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.edges; import java.util.ArrayList; import javax.swing.Icon; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeController; import org.gephi.datalab.api.AttributeColumnsController; import org.gephi.datalab.api.datatables.DataTablesController; import org.gephi.datalab.plugin.manipulators.GeneralColumnsChooser; import org.gephi.datalab.plugin.manipulators.ui.GeneralChooseColumnsUI; import org.gephi.datalab.spi.ManipulatorUI; +import org.gephi.graph.api.Column; import org.gephi.graph.api.Edge; +import org.gephi.graph.api.GraphController; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; import org.openide.util.NbBundle; /** * Edges manipulator that clears the given columns data of one or more edges except the id and computed attributes. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class ClearEdgesData extends BasicEdgesManipulator implements GeneralColumnsChooser { private Edge[] edges; - private AttributeColumn[] columnsToClearData; + private Column[] columnsToClearData; + @Override public void setup(Edge[] edges, Edge clickedEdge) { this.edges = edges; AttributeColumnsController ac = Lookup.getDefault().lookup(AttributeColumnsController.class); - ArrayList columnsToClearDataList = new ArrayList(); - for (AttributeColumn column : Lookup.getDefault().lookup(AttributeController.class).getModel().getEdgeTable().getColumns()) { + ArrayList columnsToClearDataList = new ArrayList<>(); + for (Column column : Lookup.getDefault().lookup(GraphController.class).getGraphModel().getEdgeTable()) { if (ac.canClearColumnData(column)) { columnsToClearDataList.add(column); } } - columnsToClearData = columnsToClearDataList.toArray(new AttributeColumn[0]); + columnsToClearData = columnsToClearDataList.toArray(new Column[0]); } + @Override public void execute() { if (columnsToClearData.length >= 0) { AttributeColumnsController ac = Lookup.getDefault().lookup(AttributeColumnsController.class); @@ -84,6 +88,7 @@ public void execute() { } } + @Override public String getName() { if (edges.length > 1) { return NbBundle.getMessage(ClearEdgesData.class, "ClearEdgesData.name.multiple"); @@ -92,35 +97,43 @@ public String getName() { } } + @Override public String getDescription() { return NbBundle.getMessage(ClearEdgesData.class, "ClearEdgesData.description"); } + @Override public boolean canExecute() { return true; } + @Override public ManipulatorUI getUI() { return new GeneralChooseColumnsUI(NbBundle.getMessage(ClearEdgesData.class, "ClearEdgesData.ui.description")); } + @Override public int getType() { return 200; } + @Override public int getPosition() { return 100; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/clear-data.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/clear-data.svg", false); } - public AttributeColumn[] getColumns() { + @Override + public Column[] getColumns() { return columnsToClearData; } - public void setColumns(AttributeColumn[] columnsToClearData) { + @Override + public void setColumns(Column[] columnsToClearData) { this.columnsToClearData = columnsToClearData; } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/ClearEdgesDataBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/ClearEdgesDataBuilder.java index 5315305187..9600cacd8f 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/ClearEdgesDataBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/ClearEdgesDataBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.edges; import org.gephi.datalab.spi.edges.EdgesManipulator; @@ -47,11 +48,13 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for ClearEdgesData edges manipulator. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=EdgesManipulatorBuilder.class) -public class ClearEdgesDataBuilder implements EdgesManipulatorBuilder{ +@ServiceProvider(service = EdgesManipulatorBuilder.class) +public class ClearEdgesDataBuilder implements EdgesManipulatorBuilder { + @Override public EdgesManipulator getEdgesManipulator() { return new ClearEdgesData(); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/CopyEdgeDataToOtherEdges.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/CopyEdgeDataToOtherEdges.java index 9c605b103a..5f09180991 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/CopyEdgeDataToOtherEdges.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/CopyEdgeDataToOtherEdges.java @@ -1,83 +1,88 @@ /* -Copyright 2008-2010 Gephi -Authors : Eduardo Ramos -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. + Copyright 2008-2010 Gephi + Authors : Eduardo Ramos + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2011 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.edges; import java.util.ArrayList; import javax.swing.Icon; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeController; import org.gephi.datalab.api.AttributeColumnsController; import org.gephi.datalab.api.datatables.DataTablesController; import org.gephi.datalab.plugin.manipulators.GeneralColumnsAndRowChooser; import org.gephi.datalab.plugin.manipulators.ui.GeneralChooseColumnsAndRowUI; import org.gephi.datalab.spi.ManipulatorUI; +import org.gephi.graph.api.Column; import org.gephi.graph.api.Edge; +import org.gephi.graph.api.Element; +import org.gephi.graph.api.GraphController; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; import org.openide.util.NbBundle; /** * Edges manipulator that copies the given columns data of one edge to the other selected edges. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class CopyEdgeDataToOtherEdges extends BasicEdgesManipulator implements GeneralColumnsAndRowChooser { private Edge clickedEdge; private Edge[] edges; - private AttributeColumn[] columnsToCopyData; + private Column[] columnsToCopyData; + @Override public void setup(Edge[] edges, Edge clickedEdge) { this.clickedEdge = clickedEdge; this.edges = edges; AttributeColumnsController ac = Lookup.getDefault().lookup(AttributeColumnsController.class); - ArrayList columnsToCopyDataList = new ArrayList(); - for (AttributeColumn column : Lookup.getDefault().lookup(AttributeController.class).getModel().getEdgeTable().getColumns()) { + ArrayList columnsToCopyDataList = new ArrayList<>(); + for (Column column : Lookup.getDefault().lookup(GraphController.class).getGraphModel().getEdgeTable()) { if (ac.canChangeColumnData(column)) { columnsToCopyDataList.add(column); } } - columnsToCopyData = columnsToCopyDataList.toArray(new AttributeColumn[0]); + columnsToCopyData = columnsToCopyDataList.toArray(new Column[0]); } + @Override public void execute() { if (columnsToCopyData.length >= 0) { AttributeColumnsController ac = Lookup.getDefault().lookup(AttributeColumnsController.class); @@ -86,51 +91,65 @@ public void execute() { } } + @Override public String getName() { return NbBundle.getMessage(CopyEdgeDataToOtherEdges.class, "CopyEdgeDataToOtherEdges.name"); } + @Override public String getDescription() { return NbBundle.getMessage(CopyEdgeDataToOtherEdges.class, "CopyEdgeDataToOtherEdges.description"); } + @Override public boolean canExecute() { - return edges.length>1;//At least 2 edges to copy data from one to the other. + return edges.length > 1;//At least 2 edges to copy data from one to the other. } + @Override public ManipulatorUI getUI() { - return new GeneralChooseColumnsAndRowUI(NbBundle.getMessage(CopyEdgeDataToOtherEdges.class, "CopyEdgeDataToOtherEdges.ui.rowDescription"),NbBundle.getMessage(CopyEdgeDataToOtherEdges.class, "CopyEdgeDataToOtherEdges.ui.columnsDescription")); + return new GeneralChooseColumnsAndRowUI( + NbBundle.getMessage(CopyEdgeDataToOtherEdges.class, "CopyEdgeDataToOtherEdges.ui.rowDescription"), + NbBundle.getMessage(CopyEdgeDataToOtherEdges.class, "CopyEdgeDataToOtherEdges.ui.columnsDescription")); } + @Override public int getType() { return 200; } + @Override public int getPosition() { return 200; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/broom--arrow.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/broom--arrow.svg", false); } - public AttributeColumn[] getColumns() { + @Override + public Column[] getColumns() { return columnsToCopyData; } - public void setColumns(AttributeColumn[] columnsToClearData) { + @Override + public void setColumns(Column[] columnsToClearData) { this.columnsToCopyData = columnsToClearData; } - public Object[] getRows() { + @Override + public Element[] getRows() { return edges; } - public Object getRow() { + @Override + public Element getRow() { return clickedEdge; } - public void setRow(Object row) { - clickedEdge=(Edge) row; + @Override + public void setRow(Element row) { + clickedEdge = (Edge) row; } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/CopyEdgeDataToOtherEdgesBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/CopyEdgeDataToOtherEdgesBuilder.java index f2ffb554f4..f647b4f2a1 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/CopyEdgeDataToOtherEdgesBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/CopyEdgeDataToOtherEdgesBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.edges; import org.gephi.datalab.spi.edges.EdgesManipulator; @@ -47,11 +48,13 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for CopyEdgeDataToOtherEdges edges manipulator. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=EdgesManipulatorBuilder.class) -public class CopyEdgeDataToOtherEdgesBuilder implements EdgesManipulatorBuilder{ +@ServiceProvider(service = EdgesManipulatorBuilder.class) +public class CopyEdgeDataToOtherEdgesBuilder implements EdgesManipulatorBuilder { + @Override public EdgesManipulator getEdgesManipulator() { return new CopyEdgeDataToOtherEdges(); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/DeleteEdges.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/DeleteEdges.java index 29d8bfc5b8..76ee2fc60b 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/DeleteEdges.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/DeleteEdges.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.edges; import javax.swing.Icon; @@ -52,23 +53,29 @@ Development and Distribution License("CDDL") (collectively, the /** * Edges manipulator that deletes one or more edges. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class DeleteEdges extends BasicEdgesManipulator { private Edge[] edges; + @Override public void setup(Edge[] edges, Edge clickedEdge) { this.edges = edges; } + @Override public void execute() { - if (JOptionPane.showConfirmDialog(null, NbBundle.getMessage(DeleteEdges.class, "DeleteEdges.confirmation.message"), getName(), JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) { + if (JOptionPane + .showConfirmDialog(null, NbBundle.getMessage(DeleteEdges.class, "DeleteEdges.confirmation.message"), + getName(), JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) { GraphElementsController gec = Lookup.getDefault().lookup(GraphElementsController.class); gec.deleteEdges(edges); } } + @Override public String getName() { if (edges.length > 1) { return NbBundle.getMessage(DeleteEdges.class, "DeleteEdges.name.multiple"); @@ -77,27 +84,33 @@ public String getName() { } } + @Override public String getDescription() { return ""; } + @Override public boolean canExecute() { return true; } + @Override public ManipulatorUI getUI() { return null; } + @Override public int getType() { return 100; } + @Override public int getPosition() { return 300; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/cross.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/cross.svg", false); } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/DeleteEdgesBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/DeleteEdgesBuilder.java index 5dc2ebf846..b184a989f9 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/DeleteEdgesBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/DeleteEdgesBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.edges; import org.gephi.datalab.spi.edges.EdgesManipulator; @@ -47,11 +48,13 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for DeleteEdges edges manipulator. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=EdgesManipulatorBuilder.class) -public class DeleteEdgesBuilder implements EdgesManipulatorBuilder{ +@ServiceProvider(service = EdgesManipulatorBuilder.class) +public class DeleteEdgesBuilder implements EdgesManipulatorBuilder { + @Override public EdgesManipulator getEdgesManipulator() { return new DeleteEdges(); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/DeleteEdgesWithNodes.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/DeleteEdgesWithNodes.java index 0f39134784..aa9a10bc5a 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/DeleteEdgesWithNodes.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/DeleteEdgesWithNodes.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.edges; import javax.swing.Icon; @@ -52,22 +53,26 @@ Development and Distribution License("CDDL") (collectively, the /** * Edges manipulator that deletes one or more edges and allows the user to choose what of their nodes to delete at the same time. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -public class DeleteEdgesWithNodes extends BasicEdgesManipulator { +public class DeleteEdgesWithNodes extends BasicEdgesManipulator { private Edge[] edges; - private boolean deleteSource,deleteTarget; + private boolean deleteSource, deleteTarget; + @Override public void setup(Edge[] edges, Edge clickedEdge) { this.edges = edges; } + @Override public void execute() { GraphElementsController gec = Lookup.getDefault().lookup(GraphElementsController.class); - gec.deleteEdgesWithNodes(edges,deleteSource,deleteTarget); + gec.deleteEdgesWithNodes(edges, deleteSource, deleteTarget); } + @Override public String getName() { if (edges.length > 1) { return NbBundle.getMessage(DeleteEdgesWithNodes.class, "DeleteEdgesWithNodes.name.multiple"); @@ -76,28 +81,34 @@ public String getName() { } } + @Override public String getDescription() { return ""; } + @Override public boolean canExecute() { return true; } + @Override public ManipulatorUI getUI() { return new DeleteEdgesWithNodesUI(); } + @Override public int getType() { return 100; } + @Override public int getPosition() { return 400; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/cross.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/cross.svg", false); } public void setDeleteSource(boolean deleteSource) { diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/DeleteEdgesWithNodesBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/DeleteEdgesWithNodesBuilder.java index e9eb7bc7da..0c555c3088 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/DeleteEdgesWithNodesBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/DeleteEdgesWithNodesBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.edges; import org.gephi.datalab.spi.edges.EdgesManipulator; @@ -47,11 +48,13 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for DeleteEdgesWithNodes edges manipulator. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=EdgesManipulatorBuilder.class) -public class DeleteEdgesWithNodesBuilder implements EdgesManipulatorBuilder{ +@ServiceProvider(service = EdgesManipulatorBuilder.class) +public class DeleteEdgesWithNodesBuilder implements EdgesManipulatorBuilder { + @Override public EdgesManipulator getEdgesManipulator() { return new DeleteEdgesWithNodes(); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/OpenInEditEdgeWindow.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/OpenInEditEdgeWindow.java index 7de799ebad..5420d73b3f 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/OpenInEditEdgeWindow.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/OpenInEditEdgeWindow.java @@ -39,33 +39,38 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.edges; import javax.swing.Icon; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.graph.api.Edge; -import org.gephi.tools.api.EditWindowController; +import org.gephi.desktop.attributes.api.AttributesUIController; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; import org.openide.util.NbBundle; /** * Opens the selected edge(s) one or various in Edit window. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -public class OpenInEditEdgeWindow extends BasicEdgesManipulator { +public class OpenInEditEdgeWindow extends BasicEdgesManipulator { Edge[] edges; + @Override public void setup(Edge[] edges, Edge clickedEdge) { - this.edges=edges; + this.edges = edges; } + @Override public void execute() { - EditWindowController edc = Lookup.getDefault().lookup(EditWindowController.class); - edc.openEditWindow(); + AttributesUIController edc = Lookup.getDefault().lookup(AttributesUIController.class); + edc.openWindowAndRequestActive(); edc.editEdges(edges); } + @Override public String getName() { if (edges.length > 1) { return NbBundle.getMessage(OpenInEditEdgeWindow.class, "OpenInEditEdgeWindow.name.multiple"); @@ -74,6 +79,7 @@ public String getName() { } } + @Override public String getDescription() { if (edges.length > 1) { return NbBundle.getMessage(OpenInEditEdgeWindow.class, "OpenInEditEdgeWindow.description.multiple"); @@ -82,23 +88,28 @@ public String getDescription() { } } + @Override public boolean canExecute() { return true; } + @Override public ManipulatorUI getUI() { return null; } + @Override public int getType() { return 0; } + @Override public int getPosition() { return 0; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/edit.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/edit.svg", false); } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/OpenInEditEdgeWindowBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/OpenInEditEdgeWindowBuilder.java index 53792ab6b6..8961da2e6a 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/OpenInEditEdgeWindowBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/OpenInEditEdgeWindowBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.edges; import org.gephi.datalab.spi.edges.EdgesManipulator; @@ -47,11 +48,13 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for OpenInEditEdgeWindow edges manipulator. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=EdgesManipulatorBuilder.class) -public class OpenInEditEdgeWindowBuilder implements EdgesManipulatorBuilder{ +@ServiceProvider(service = EdgesManipulatorBuilder.class) +public class OpenInEditEdgeWindowBuilder implements EdgesManipulatorBuilder { + @Override public EdgesManipulator getEdgesManipulator() { return new OpenInEditEdgeWindow(); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/SelectNodesOnTable.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/SelectNodesOnTable.java index b426df625f..22b8377765 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/SelectNodesOnTable.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/SelectNodesOnTable.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.edges; import javax.swing.Icon; @@ -52,48 +53,59 @@ Development and Distribution License("CDDL") (collectively, the /** * Edges manipulator that selects source and target node of an edge and selects them in nodes table. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class SelectNodesOnTable extends BasicEdgesManipulator { private Edge clickedEdge; + @Override public void setup(Edge[] edges, Edge clickedEdge) { - this.clickedEdge=clickedEdge; + this.clickedEdge = clickedEdge; } + @Override public void execute() { - Node[] nodes=new Node[]{clickedEdge.getSource(),clickedEdge.getTarget()}; - DataTablesController dtc=Lookup.getDefault().lookup(DataTablesController.class); + Node[] nodes = new Node[] {clickedEdge.getSource(), clickedEdge.getTarget()}; + DataTablesController dtc = Lookup.getDefault().lookup(DataTablesController.class); dtc.setNodeTableSelection(nodes); dtc.selectNodesTable(); } + @Override public String getName() { return NbBundle.getMessage(SelectNodesOnTable.class, "SelectNodesOnTable.name"); } + @Override public String getDescription() { return ""; } + @Override public boolean canExecute() { return true; } + @Override public ManipulatorUI getUI() { return null; } + @Override public int getType() { return 100; } + @Override public int getPosition() { return 200; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/table-select-row.png", true); + return ImageUtilities + .loadImageIcon("DataLaboratoryPlugin/table-select-row.svg", false); } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/SelectNodesOnTableBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/SelectNodesOnTableBuilder.java index 8850eb6193..85e01f4b2a 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/SelectNodesOnTableBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/SelectNodesOnTableBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.edges; import org.gephi.datalab.spi.edges.EdgesManipulator; @@ -47,11 +48,13 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for SelectNodesOnTable edges manipulator. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=EdgesManipulatorBuilder.class) -public class SelectNodesOnTableBuilder implements EdgesManipulatorBuilder{ +@ServiceProvider(service = EdgesManipulatorBuilder.class) +public class SelectNodesOnTableBuilder implements EdgesManipulatorBuilder { + @Override public EdgesManipulator getEdgesManipulator() { return new SelectNodesOnTable(); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/SelectOnGraph.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/SelectOnGraph.java new file mode 100644 index 0000000000..6cd1a5d4df --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/SelectOnGraph.java @@ -0,0 +1,113 @@ +/* +Copyright 2008-2010 Gephi +Authors : Eduardo Ramos +Website : http://www.gephi.org + +This file is part of Gephi. + +DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + +Copyright 2011 Gephi Consortium. All rights reserved. + +The contents of this file are subject to the terms of either the GNU +General Public License Version 3 only ("GPL") or the Common +Development and Distribution License("CDDL") (collectively, the +"License"). You may not use this file except in compliance with the +License. You can obtain a copy of the License at +http://gephi.org/about/legal/license-notice/ +or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the +specific language governing permissions and limitations under the +License. When distributing the software, include this License Header +Notice in each file and include the License files at +/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the +License Header, with the fields enclosed by brackets [] replaced by +your own identifying information: +"Portions Copyrighted [year] [name of copyright owner]" + +If you wish your version of this file to be governed by only the CDDL +or only the GPL Version 3, indicate your decision by adding +"[Contributor] elects to include this software in this distribution +under the [CDDL or GPL Version 3] license." If you do not indicate a +single choice of license, a recipient has the option to distribute +your version of this file under either the CDDL, the GPL Version 3 or +to extend the choice of license to its licensees as provided above. +However, if you add GPL Version 3 code and therefore, elected the GPL +Version 3 license, then the option applies only if the new code is +made subject to such option by the copyright holder. + +Contributor(s): + +Portions Copyrighted 2011 Gephi Consortium. + */ + +package org.gephi.datalab.plugin.manipulators.edges; + +import javax.swing.Icon; +import org.gephi.datalab.spi.ManipulatorUI; +import org.gephi.graph.api.Edge; +import org.gephi.visualization.api.VisualizationController; +import org.openide.util.ImageUtilities; +import org.openide.util.Lookup; +import org.openide.util.NbBundle; + +/** + * Nodes manipulator that selects edges in the graph overview. + * + * @author Eduardo Ramos + */ +public class SelectOnGraph extends BasicEdgesManipulator { + + private Edge[] edges; + private Edge clickedEdge; + + @Override + public void setup(Edge[] nodes, Edge clickedEdge) { + this.edges = nodes; + this.clickedEdge = clickedEdge; + } + + @Override + public void execute() { + VisualizationController vc = Lookup.getDefault().lookup(VisualizationController.class); + if (vc != null) { + vc.selectEdges(edges); + vc.centerOnEdge(clickedEdge); + } + } + + @Override + public String getName() { + return NbBundle.getMessage(SelectOnGraph.class, "SelectOnGraph.name"); + } + + @Override + public String getDescription() { + return ""; + } + + @Override + public boolean canExecute() { + return true; + } + + @Override + public ManipulatorUI getUI() { + return null; + } + + @Override + public int getType() { + return 100; + } + + @Override + public int getPosition() { + return 0; + } + + @Override + public Icon getIcon() { + return ImageUtilities + .loadImageIcon("DataLaboratoryPlugin/magnifier--arrow.svg", false); + } +} diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/SelectOnGraphBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/SelectOnGraphBuilder.java new file mode 100644 index 0000000000..d0029f8ff9 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/SelectOnGraphBuilder.java @@ -0,0 +1,61 @@ +/* +Copyright 2008-2010 Gephi +Authors : Eduardo Ramos +Website : http://www.gephi.org + +This file is part of Gephi. + +DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + +Copyright 2011 Gephi Consortium. All rights reserved. + +The contents of this file are subject to the terms of either the GNU +General Public License Version 3 only ("GPL") or the Common +Development and Distribution License("CDDL") (collectively, the +"License"). You may not use this file except in compliance with the +License. You can obtain a copy of the License at +http://gephi.org/about/legal/license-notice/ +or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the +specific language governing permissions and limitations under the +License. When distributing the software, include this License Header +Notice in each file and include the License files at +/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the +License Header, with the fields enclosed by brackets [] replaced by +your own identifying information: +"Portions Copyrighted [year] [name of copyright owner]" + +If you wish your version of this file to be governed by only the CDDL +or only the GPL Version 3, indicate your decision by adding +"[Contributor] elects to include this software in this distribution +under the [CDDL or GPL Version 3] license." If you do not indicate a +single choice of license, a recipient has the option to distribute +your version of this file under either the CDDL, the GPL Version 3 or +to extend the choice of license to its licensees as provided above. +However, if you add GPL Version 3 code and therefore, elected the GPL +Version 3 license, then the option applies only if the new code is +made subject to such option by the copyright holder. + +Contributor(s): + +Portions Copyrighted 2011 Gephi Consortium. + */ + +package org.gephi.datalab.plugin.manipulators.edges; + +import org.gephi.datalab.spi.edges.EdgesManipulator; +import org.gephi.datalab.spi.edges.EdgesManipulatorBuilder; +import org.openide.util.lookup.ServiceProvider; + +/** + * Builder for SelectOnGraph nodes manipulator. + * + * @author Eduardo Ramos + */ +@ServiceProvider(service = EdgesManipulatorBuilder.class) +public class SelectOnGraphBuilder implements EdgesManipulatorBuilder { + + @Override + public EdgesManipulator getEdgesManipulator() { + return new SelectOnGraph(); + } +} diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/SelectSourceOnGraph.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/SelectSourceOnGraph.java index 4302e9f5d7..7eec9da4ee 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/SelectSourceOnGraph.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/SelectSourceOnGraph.java @@ -39,58 +39,72 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.edges; import javax.swing.Icon; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.graph.api.Edge; import org.gephi.graph.api.Node; -import org.gephi.visualization.VizController; +import org.gephi.visualization.api.VisualizationController; import org.openide.util.ImageUtilities; +import org.openide.util.Lookup; import org.openide.util.NbBundle; /** * Edges manipulator that shows the source node of an edge centered in graph view. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class SelectSourceOnGraph extends BasicEdgesManipulator { private Edge clickedEdge; + @Override public void setup(Edge[] edges, Edge clickedEdge) { this.clickedEdge = clickedEdge; } + @Override public void execute() { Node source = clickedEdge.getSource(); - VizController.getInstance().getSelectionManager().centerOnNode(source); + VisualizationController vc = Lookup.getDefault().lookup(VisualizationController.class); + vc.centerOnNode(source); } + @Override public String getName() { return NbBundle.getMessage(SelectSourceOnGraph.class, "SelectSourceOnGraph.name"); } + @Override public String getDescription() { return ""; } + @Override public boolean canExecute() { return true; } + @Override public ManipulatorUI getUI() { return null; } + @Override public int getType() { return 100; } + @Override public int getPosition() { return 0; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/magnifier--arrow.png", true); + return ImageUtilities + .loadImageIcon("DataLaboratoryPlugin/magnifier--arrow.svg", false); } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/SelectSourceOnGraphBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/SelectSourceOnGraphBuilder.java index cb298e1c48..5e02dd86f2 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/SelectSourceOnGraphBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/SelectSourceOnGraphBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.edges; import org.gephi.datalab.spi.edges.EdgesManipulator; @@ -47,11 +48,13 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for SelectSourceOnGraph edges manipulator. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=EdgesManipulatorBuilder.class) -public class SelectSourceOnGraphBuilder implements EdgesManipulatorBuilder{ +@ServiceProvider(service = EdgesManipulatorBuilder.class) +public class SelectSourceOnGraphBuilder implements EdgesManipulatorBuilder { + @Override public EdgesManipulator getEdgesManipulator() { return new SelectSourceOnGraph(); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/SelectTargetOnGraph.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/SelectTargetOnGraph.java index 035e0f0051..bc1a20a84f 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/SelectTargetOnGraph.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/SelectTargetOnGraph.java @@ -39,57 +39,71 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.edges; import javax.swing.Icon; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.graph.api.Edge; import org.gephi.graph.api.Node; -import org.gephi.visualization.VizController; +import org.gephi.visualization.api.VisualizationController; import org.openide.util.ImageUtilities; +import org.openide.util.Lookup; import org.openide.util.NbBundle; /** * Edges manipulator that shows the target node of an edge centered in graph view. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class SelectTargetOnGraph extends BasicEdgesManipulator { private Edge clickedEdge; + @Override public void setup(Edge[] edges, Edge clickedEdge) { - this.clickedEdge=clickedEdge; + this.clickedEdge = clickedEdge; } + @Override public void execute() { - Node source=clickedEdge.getTarget(); - VizController.getInstance().getSelectionManager().centerOnNode(source); + Node source = clickedEdge.getTarget(); + VisualizationController vc = Lookup.getDefault().lookup(VisualizationController.class); + vc.centerOnNode(source); } + @Override public String getName() { return NbBundle.getMessage(SelectTargetOnGraph.class, "SelectTargetOnGraph.name"); } + @Override public String getDescription() { return ""; } + @Override public boolean canExecute() { return true; } + @Override public ManipulatorUI getUI() { return null; } + @Override public int getType() { return 100; } + @Override public int getPosition() { return 100; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/magnifier--arrow.png", true); + return ImageUtilities + .loadImageIcon("DataLaboratoryPlugin/magnifier--arrow.svg", false); } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/SelectTargetOnGraphBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/SelectTargetOnGraphBuilder.java index f82f89583b..f2725e33df 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/SelectTargetOnGraphBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/SelectTargetOnGraphBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.edges; import org.gephi.datalab.spi.edges.EdgesManipulator; @@ -47,11 +48,13 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for SelectTargetOnGraph edges manipulator. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=EdgesManipulatorBuilder.class) -public class SelectTargetOnGraphBuilder implements EdgesManipulatorBuilder{ +@ServiceProvider(service = EdgesManipulatorBuilder.class) +public class SelectTargetOnGraphBuilder implements EdgesManipulatorBuilder { + @Override public EdgesManipulator getEdgesManipulator() { return new SelectTargetOnGraph(); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/ui/DeleteEdgesWithNodesUI.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/ui/DeleteEdgesWithNodesUI.java index b876dc3f39..fba9591453 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/ui/DeleteEdgesWithNodesUI.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/edges/ui/DeleteEdgesWithNodesUI.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.edges.ui; import javax.swing.JPanel; @@ -50,44 +51,62 @@ Development and Distribution License("CDDL") (collectively, the /** * UI for DeleteEdgesWithNodes edges manipulator. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class DeleteEdgesWithNodesUI extends javax.swing.JPanel implements ManipulatorUI { private static final String DELETE_SOURCE_SAVED_PREFERENCES = "DeleteEdgesWithNodesUI_deleteSource"; private static final String DELETE_TARGET_SAVED_PREFERENCES = "DeleteEdgesWithNodesUI_deleteTarget"; private DeleteEdgesWithNodes del; + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JCheckBox deleteSource; + private javax.swing.JCheckBox deleteTarget; + private javax.swing.JLabel descriptionLabel; + // End of variables declaration//GEN-END:variables - /** Creates new form DeleteEdgesWithNodesUI */ + /** + * Creates new form DeleteEdgesWithNodesUI + */ public DeleteEdgesWithNodesUI() { initComponents(); } + @Override public void setup(Manipulator m, DialogControls dialogControls) { - del=(DeleteEdgesWithNodes) m; - deleteSource.setSelected(NbPreferences.forModule(DeleteEdgesWithNodesUI.class).getBoolean(DELETE_SOURCE_SAVED_PREFERENCES, true)); - deleteTarget.setSelected(NbPreferences.forModule(DeleteEdgesWithNodesUI.class).getBoolean(DELETE_TARGET_SAVED_PREFERENCES, true)); + del = (DeleteEdgesWithNodes) m; + deleteSource.setSelected( + NbPreferences.forModule(DeleteEdgesWithNodesUI.class).getBoolean(DELETE_SOURCE_SAVED_PREFERENCES, true)); + deleteTarget.setSelected( + NbPreferences.forModule(DeleteEdgesWithNodesUI.class).getBoolean(DELETE_TARGET_SAVED_PREFERENCES, true)); } + @Override public void unSetup() { del.setDeleteSource(deleteSource.isSelected()); del.setDeleteTarget(deleteTarget.isSelected()); - NbPreferences.forModule(DeleteEdgesWithNodesUI.class).putBoolean(DELETE_SOURCE_SAVED_PREFERENCES, deleteSource.isSelected()); - NbPreferences.forModule(DeleteEdgesWithNodesUI.class).putBoolean(DELETE_TARGET_SAVED_PREFERENCES, deleteTarget.isSelected()); + NbPreferences.forModule(DeleteEdgesWithNodesUI.class) + .putBoolean(DELETE_SOURCE_SAVED_PREFERENCES, deleteSource.isSelected()); + NbPreferences.forModule(DeleteEdgesWithNodesUI.class) + .putBoolean(DELETE_TARGET_SAVED_PREFERENCES, deleteTarget.isSelected()); } + @Override public String getDisplayName() { return del.getName(); } + @Override public JPanel getSettingsPanel() { return this; } + @Override public boolean isModal() { return true; } - /** This method is called from within the constructor to + /** + * This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. @@ -101,45 +120,42 @@ private void initComponents() { descriptionLabel = new javax.swing.JLabel(); deleteSource.setSelected(true); - deleteSource.setText(org.openide.util.NbBundle.getMessage(DeleteEdgesWithNodesUI.class, "DeleteEdgesWithNodesUI.deleteSource.text")); // NOI18N + deleteSource.setText(org.openide.util.NbBundle + .getMessage(DeleteEdgesWithNodesUI.class, "DeleteEdgesWithNodesUI.deleteSource.text")); // NOI18N deleteTarget.setSelected(true); - deleteTarget.setText(org.openide.util.NbBundle.getMessage(DeleteEdgesWithNodesUI.class, "DeleteEdgesWithNodesUI.deleteTarget.text")); // NOI18N + deleteTarget.setText(org.openide.util.NbBundle + .getMessage(DeleteEdgesWithNodesUI.class, "DeleteEdgesWithNodesUI.deleteTarget.text")); // NOI18N - descriptionLabel.setText(org.openide.util.NbBundle.getMessage(DeleteEdgesWithNodesUI.class, "DeleteEdgesWithNodesUI.description")); // NOI18N + descriptionLabel.setText(org.openide.util.NbBundle + .getMessage(DeleteEdgesWithNodesUI.class, "DeleteEdgesWithNodesUI.description")); // NOI18N javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(descriptionLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 254, Short.MAX_VALUE) - .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() - .addComponent(deleteSource) - .addGap(18, 18, 18) - .addComponent(deleteTarget))) - .addContainerGap()) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(descriptionLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 254, Short.MAX_VALUE) + .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() + .addComponent(deleteSource) + .addGap(18, 18, 18) + .addComponent(deleteTarget))) + .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addContainerGap() - .addComponent(descriptionLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(deleteSource) - .addComponent(deleteTarget)) - .addContainerGap()) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addContainerGap() + .addComponent(descriptionLabel, javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(deleteSource) + .addComponent(deleteTarget)) + .addContainerGap()) ); }// //GEN-END:initComponents - - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JCheckBox deleteSource; - private javax.swing.JCheckBox deleteTarget; - private javax.swing.JLabel descriptionLabel; - // End of variables declaration//GEN-END:variables - } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/AddEdgeToGraph.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/AddEdgeToGraph.java index 6c2c248ef7..e60a5f9872 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/AddEdgeToGraph.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/AddEdgeToGraph.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.general; import javax.swing.Icon; @@ -57,53 +58,65 @@ Development and Distribution License("CDDL") (collectively, the /** * GeneralActionsManipulator that adds a new edge to the graph, asking for source and target nodes and type of edge in UI. * - * @author Eduardo Ramos + * @author Eduardo Ramos */ @ServiceProvider(service = GeneralActionsManipulator.class) public class AddEdgeToGraph implements GeneralActionsManipulator { private Node source = null, target = null; private boolean directed; + private Object edgeTypeLabel = null; private GraphModel graphModel = null; + @Override public void execute() { if (source != null && target != null) { - Lookup.getDefault().lookup(GraphElementsController.class).createEdge(source, target, directed); + Lookup.getDefault().lookup(GraphElementsController.class) + .createEdge(source, target, directed, edgeTypeLabel); } } + @Override public String getName() { return NbBundle.getMessage(AddNodeToGraph.class, "AddEdgeToGraph.name"); } + @Override public String getDescription() { return ""; } + @Override public boolean canExecute() { return Lookup.getDefault().lookup(GraphElementsController.class).getNodesCount() > 0;//At least 1 nodes } + @Override public ManipulatorUI getUI() { - GraphModel currentGraphModel = Lookup.getDefault().lookup(GraphController.class).getModel(); - if (graphModel != currentGraphModel) {//If graph model has changed since last execution, change default mode for edges to create in UI, else keep this parameter across calls - directed = currentGraphModel.isDirected() || currentGraphModel.isMixed();//Get graph directed state. Set to true if graph is directed or mixed + GraphModel currentGraphModel = Lookup.getDefault().lookup(GraphController.class).getGraphModel(); + if (graphModel != null && graphModel != + currentGraphModel) {//If graph model has changed since last execution, change default mode for edges to create in UI, else keep this parameter across calls + directed = currentGraphModel.isDirected() || + currentGraphModel.isMixed();//Get graph directed state. Set to true if graph is directed or mixed graphModel = currentGraphModel; source = null; } return new AddEdgeToGraphUI(); } + @Override public int getType() { return 0; } + @Override public int getPosition() { return 200; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/plus-white.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/plus-white.svg", false); } public boolean isDirected() { @@ -129,4 +142,12 @@ public Node getTarget() { public void setTarget(Node target) { this.target = target; } + + public Object getEdgeTypeLabel() { + return edgeTypeLabel; + } + + public void setEdgeTypeLabel(Object edgeTypeLabel) { + this.edgeTypeLabel = edgeTypeLabel; + } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/AddNodeToGraph.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/AddNodeToGraph.java index bd4b09334e..eb78826d0a 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/AddNodeToGraph.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/AddNodeToGraph.java @@ -39,12 +39,13 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.general; import javax.swing.Icon; import javax.swing.JOptionPane; -import org.gephi.datalab.api.datatables.DataTablesController; import org.gephi.datalab.api.GraphElementsController; +import org.gephi.datalab.api.datatables.DataTablesController; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.datalab.spi.general.GeneralActionsManipulator; import org.gephi.graph.api.Node; @@ -56,44 +57,55 @@ Development and Distribution License("CDDL") (collectively, the /** * GeneralActionsManipulator that adds a new node to the graph, asking for its label. * Uses the default id for the node. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=GeneralActionsManipulator.class) -public class AddNodeToGraph implements GeneralActionsManipulator{ +@ServiceProvider(service = GeneralActionsManipulator.class) +public class AddNodeToGraph implements GeneralActionsManipulator { + @Override public void execute() { - String label = JOptionPane.showInputDialog(null, NbBundle.getMessage(AddNodeToGraph.class, "AddNodeToGraph.dialog.text"), NbBundle.getMessage(AddNodeToGraph.class, "AddNodeToGraph.name"), JOptionPane.QUESTION_MESSAGE); + String label = JOptionPane + .showInputDialog(null, NbBundle.getMessage(AddNodeToGraph.class, "AddNodeToGraph.dialog.text"), + NbBundle.getMessage(AddNodeToGraph.class, "AddNodeToGraph.name"), JOptionPane.QUESTION_MESSAGE); if (label != null) { - Node node=Lookup.getDefault().lookup(GraphElementsController.class).createNode(label); - Lookup.getDefault().lookup(DataTablesController.class).setNodeTableSelection(new Node[]{node}); + Node node = Lookup.getDefault().lookup(GraphElementsController.class).createNode(label); + Lookup.getDefault().lookup(DataTablesController.class).setNodeTableSelection(new Node[] {node}); } } + @Override public String getName() { return NbBundle.getMessage(AddNodeToGraph.class, "AddNodeToGraph.name"); } + @Override public String getDescription() { return ""; } + @Override public boolean canExecute() { return true; } + @Override public ManipulatorUI getUI() { return null; } + @Override public int getType() { return 0; } + @Override public int getPosition() { return 0; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/plus-circle.png",true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/plus-circle.svg", false); } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ClearEdges.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ClearEdges.java index 5cc23dafcf..f9200cd828 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ClearEdges.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ClearEdges.java @@ -39,15 +39,19 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.general; +import java.util.ArrayList; +import java.util.List; import javax.swing.Icon; import org.gephi.datalab.api.GraphElementsController; import org.gephi.datalab.plugin.manipulators.general.ui.ClearEdgesUI; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.datalab.spi.general.PluginGeneralActionsManipulator; +import org.gephi.graph.api.Edge; +import org.gephi.graph.api.Graph; import org.gephi.graph.api.GraphController; -import org.gephi.graph.api.MixedGraph; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; import org.openide.util.NbBundle; @@ -56,7 +60,8 @@ Development and Distribution License("CDDL") (collectively, the /** * PluginGeneralActionsManipulator that clears directed and/or undirected edges of the graph. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ @ServiceProvider(service = PluginGeneralActionsManipulator.class) public class ClearEdges implements PluginGeneralActionsManipulator { @@ -67,46 +72,62 @@ public class ClearEdges implements PluginGeneralActionsManipulator { public ClearEdges() { deleteDirected = NbPreferences.forModule(ClearEdges.class).getBoolean(DELETE_DIRECTED_SAVED_PREFERENCES, true); - deleteUndirected = NbPreferences.forModule(ClearEdges.class).getBoolean(DELETE_UNDIRECTED_SAVED_PREFERENCES, true); + deleteUndirected = + NbPreferences.forModule(ClearEdges.class).getBoolean(DELETE_UNDIRECTED_SAVED_PREFERENCES, true); } + @Override public void execute() { GraphElementsController gec = Lookup.getDefault().lookup(GraphElementsController.class); - MixedGraph graph = Lookup.getDefault().lookup(GraphController.class).getModel().getMixedGraph(); - if (deleteDirected) { - gec.deleteEdges(graph.getDirectedEdges().toArray()); - } - if (deleteUndirected) { - gec.deleteEdges(graph.getUndirectedEdges().toArray()); + Graph graph = Lookup.getDefault().lookup(GraphController.class).getGraphModel().getGraph(); + + List edges = new ArrayList<>(); + for (Edge edge : graph.getEdges().toArray()) { + if (edge.isDirected()) { + if (deleteDirected) { + edges.add(edge); + } + } else if (deleteUndirected) { + edges.add(edge); + } } + + gec.deleteEdges(edges.toArray(new Edge[0])); } + @Override public String getName() { return NbBundle.getMessage(ClearEdges.class, "ClearEdges.name"); } + @Override public String getDescription() { return ""; } + @Override public boolean canExecute() { return Lookup.getDefault().lookup(GraphElementsController.class).getEdgesCount() > 0; } + @Override public ManipulatorUI getUI() { return new ClearEdgesUI(); } + @Override public int getType() { return 0; } + @Override public int getPosition() { return 300; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/eraser--minus.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/eraser--minus.svg", false); } public boolean isDeleteDirected() { diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ClearGraph.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ClearGraph.java index fbf7daddc8..4e98bd9169 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ClearGraph.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ClearGraph.java @@ -1,44 +1,45 @@ /* -Copyright 2008-2010 Gephi -Authors : Eduardo Ramos -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. + Copyright 2008-2010 Gephi + Authors : Eduardo Ramos + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2011 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.general; import javax.swing.Icon; @@ -54,42 +55,53 @@ Development and Distribution License("CDDL") (collectively, the /** * PluginGeneralActionsManipulator that clears the entire graph, asking for confirmation. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=PluginGeneralActionsManipulator.class) +@ServiceProvider(service = PluginGeneralActionsManipulator.class) public class ClearGraph implements PluginGeneralActionsManipulator { + @Override public void execute() { - if (JOptionPane.showConfirmDialog(null, NbBundle.getMessage(ClearGraph.class, "ClearGraph.dialog.text"), NbBundle.getMessage(ClearGraph.class, "ClearGraph.name"), JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE) == JOptionPane.YES_OPTION) { - Lookup.getDefault().lookup(GraphController.class).getModel().getGraph().clear(); + if (JOptionPane.showConfirmDialog(null, NbBundle.getMessage(ClearGraph.class, "ClearGraph.dialog.text"), + NbBundle.getMessage(ClearGraph.class, "ClearGraph.name"), JOptionPane.YES_NO_OPTION, + JOptionPane.WARNING_MESSAGE) == JOptionPane.YES_OPTION) { + Lookup.getDefault().lookup(GraphController.class).getGraphModel().getGraph().clear(); } } + @Override public String getName() { return NbBundle.getMessage(ClearGraph.class, "ClearGraph.name"); } + @Override public String getDescription() { return ""; } + @Override public boolean canExecute() { - return Lookup.getDefault().lookup(GraphElementsController.class).getNodesCount()>0; + return Lookup.getDefault().lookup(GraphElementsController.class).getNodesCount() > 0; } + @Override public ManipulatorUI getUI() { return null; } + @Override public int getType() { return 0; } + @Override public int getPosition() { return 200; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/eraser--minus.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/eraser--minus.svg", false); } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ExportTable.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ExportTable.java index 467810faef..3a02cfc673 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ExportTable.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ExportTable.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.general; import javax.swing.Icon; @@ -51,42 +52,51 @@ Development and Distribution License("CDDL") (collectively, the import org.openide.util.lookup.ServiceProvider; /** - * GeneralActionsManipulator that exports a table to CSV. - * @author Eduardo Ramos + * GeneralActionsManipulator that exports a table to a spreadsheet file. + * + * @author Eduardo Ramos */ -@ServiceProvider(service=GeneralActionsManipulator.class) +@ServiceProvider(service = GeneralActionsManipulator.class) public class ExportTable implements GeneralActionsManipulator { + @Override public void execute() { - DataTablesController dtc=Lookup.getDefault().lookup(DataTablesController.class); - dtc.exportCurrentTable(DataTablesController.ExportMode.CSV); + DataTablesController dtc = Lookup.getDefault().lookup(DataTablesController.class); + dtc.exportCurrentTable(); } + @Override public String getName() { return NbBundle.getMessage(ExportTable.class, "ExportTable.name"); } + @Override public String getDescription() { return ""; } + @Override public boolean canExecute() { return true; } + @Override public ManipulatorUI getUI() { return null; } + @Override public int getType() { return 100; } + @Override public int getPosition() { return 200; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/table-excel.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/table-excel.svg", false); } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ImportCSV.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ImportCSV.java index d89e861800..c4692a4cf4 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ImportCSV.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ImportCSV.java @@ -39,53 +39,81 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.general; +import java.awt.event.ActionEvent; +import java.util.ArrayList; +import java.util.List; import javax.swing.Icon; -import org.gephi.datalab.plugin.manipulators.general.ui.ImportCSVUIWizardAction; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.datalab.spi.general.GeneralActionsManipulator; +import org.gephi.io.importer.spi.FileImporterBuilder; +import org.openide.awt.Actions; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; import org.openide.util.NbBundle; import org.openide.util.lookup.ServiceProvider; /** - * GeneralActionsManipulator shows a wizard UI for importing a CSV file to nodes/edges table. - * @author Eduardo Ramos + * GeneralActionsManipulator that shows a wizard UI for importing a CSV/Excel file to nodes/edges table. + * + * @author Eduardo Ramos */ -@ServiceProvider(service=GeneralActionsManipulator.class) -public class ImportCSV implements GeneralActionsManipulator{ +@ServiceProvider(service = GeneralActionsManipulator.class) +public class ImportCSV implements GeneralActionsManipulator { + + private final FileImporterBuilder[] spreadsheetImporterBuilders; + + public ImportCSV() { + List list = new ArrayList<>(); + for (FileImporterBuilder builder : Lookup.getDefault().lookupAll(FileImporterBuilder.class)) { + if (builder.getName().startsWith("spreadsheet")) { + list.add(builder); + } + } + + spreadsheetImporterBuilders = list.toArray(new FileImporterBuilder[0]); + } + @Override public void execute() { - Lookup.getDefault().lookup(ImportCSVUIWizardAction.class).performAction(); + Actions.forID("File", "org.gephi.desktop.project.actions.OpenFile").actionPerformed( + new ActionEvent(spreadsheetImporterBuilders, 0, null)); } + @Override public String getName() { return NbBundle.getMessage(ImportCSV.class, "ImportCSV.name"); } + @Override public String getDescription() { return ""; } + @Override public boolean canExecute() { return true; } + @Override public ManipulatorUI getUI() { return null; } + @Override public int getType() { return 100; } + @Override public int getPosition() { return 100; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/table-excel.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/table-excel.svg", false); } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ManageColumnEstimators.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ManageColumnEstimators.java new file mode 100644 index 0000000000..067c438940 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ManageColumnEstimators.java @@ -0,0 +1,144 @@ +/* + Copyright 2008-2015 Gephi + Authors : Eduardo Ramos + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2011 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2011 Gephi Consortium. + */ + +package org.gephi.datalab.plugin.manipulators.general; + +import java.util.ArrayList; +import java.util.List; +import javax.swing.Icon; +import org.gephi.datalab.api.datatables.DataTablesController; +import org.gephi.datalab.plugin.manipulators.general.ui.ManageColumnEstimatorsUI; +import org.gephi.datalab.spi.ManipulatorUI; +import org.gephi.datalab.spi.general.PluginGeneralActionsManipulator; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Estimator; +import org.gephi.graph.api.GraphController; +import org.gephi.graph.api.GraphModel; +import org.gephi.graph.api.Table; +import org.gephi.graph.api.types.TimeMap; +import org.openide.util.ImageUtilities; +import org.openide.util.Lookup; +import org.openide.util.NbBundle; +import org.openide.util.lookup.ServiceProvider; + +/** + * PluginGeneralActionsManipulator for managing column estimators. + * + * @author Eduardo Ramos + */ +@ServiceProvider(service = PluginGeneralActionsManipulator.class) +public class ManageColumnEstimators implements PluginGeneralActionsManipulator { + + private Column[] columns; + private Estimator[] estimators; + + @Override + public void execute() { + for (int i = 0; i < columns.length; i++) { + Column column = columns[i]; + Estimator estimator = estimators[i]; + + column.setEstimator(estimator); + } + } + + @Override + public String getName() { + return NbBundle.getMessage(ManageColumnEstimators.class, "ManageColumnEstimators.name"); + } + + @Override + public String getDescription() { + return NbBundle.getMessage(ManageColumnEstimators.class, "ManageColumnEstimators.description"); + } + + public List getColumns() { + GraphModel graphModel = Lookup.getDefault().lookup(GraphController.class).getGraphModel(); + + Table table; + if (Lookup.getDefault().lookup(DataTablesController.class).isNodeTableMode()) { + table = graphModel.getNodeTable(); + } else { + table = graphModel.getEdgeTable(); + } + + List availableColumns = new ArrayList<>(); + for (Column column : table) { + if (TimeMap.class.isAssignableFrom(column.getTypeClass())) { + availableColumns.add(column); + } + } + return availableColumns; + } + + @Override + public boolean canExecute() { + return !getColumns().isEmpty(); + } + + @Override + public ManipulatorUI getUI() { + this.columns = null; + this.estimators = null; + return new ManageColumnEstimatorsUI(); + } + + @Override + public int getType() { + return 200; + } + + @Override + public int getPosition() { + return 0; + } + + @Override + public Icon getIcon() { + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/gear.svg", false); + } + + public void setup(Column[] columns, Estimator[] estimators) { + this.columns = columns; + this.estimators = estimators; + } +} diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/MergeNodeDuplicates.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/MergeNodeDuplicates.java index 71c011e542..4428d832ec 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/MergeNodeDuplicates.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/MergeNodeDuplicates.java @@ -39,18 +39,22 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.general; +import java.util.ArrayList; import java.util.List; import javax.swing.Icon; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeController; import org.gephi.datalab.api.GraphElementsController; import org.gephi.datalab.plugin.manipulators.general.ui.MergeNodeDuplicatesUI; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.datalab.spi.general.PluginGeneralActionsManipulator; import org.gephi.datalab.spi.rows.merge.AttributeRowsMergeStrategy; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Graph; +import org.gephi.graph.api.GraphController; import org.gephi.graph.api.Node; +import org.gephi.graph.api.Table; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; import org.openide.util.NbBundle; @@ -59,7 +63,8 @@ Development and Distribution License("CDDL") (collectively, the /** * PluginGeneralActionsManipulator that automatically detects and merges node duplicates based on a column - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ @ServiceProvider(service = PluginGeneralActionsManipulator.class) public class MergeNodeDuplicates implements PluginGeneralActionsManipulator { @@ -72,55 +77,76 @@ public class MergeNodeDuplicates implements PluginGeneralActionsManipulator { private List> duplicateGroups; private boolean deleteMergedNodes; private boolean caseSensitive; - private AttributeColumn[] columns; + private Column[] columns; private AttributeRowsMergeStrategy[] mergeStrategies; + @Override public void execute() { + Graph graph = Lookup.getDefault().lookup(GraphController.class).getGraphModel().getGraph(); GraphElementsController gec = Lookup.getDefault().lookup(GraphElementsController.class); for (List nodes : duplicateGroups) { - gec.mergeNodes(nodes.toArray(new Node[0]), nodes.get(0), mergeStrategies, deleteMergedNodes); + gec.mergeNodes(graph, nodes.toArray(new Node[0]), nodes.get(0), columns, mergeStrategies, + deleteMergedNodes); } - NbPreferences.forModule(MergeNodeDuplicates.class).putBoolean(DELETE_MERGED_NODES_SAVED_PREFERENCES, deleteMergedNodes); + NbPreferences.forModule(MergeNodeDuplicates.class) + .putBoolean(DELETE_MERGED_NODES_SAVED_PREFERENCES, deleteMergedNodes); NbPreferences.forModule(MergeNodeDuplicates.class).putBoolean(CASE_SENSITIVE_SAVED_PREFERENCES, caseSensitive); } + @Override public String getName() { return NbBundle.getMessage(MergeNodeDuplicates.class, "MergeNodeDuplicates.name"); } + @Override public String getDescription() { return "MergeNodeDuplicates.description"; } + @Override public boolean canExecute() { return Lookup.getDefault().lookup(GraphElementsController.class).getNodesCount() > 0; } + @Override public ManipulatorUI getUI() { - columns = Lookup.getDefault().lookup(AttributeController.class).getModel().getNodeTable().getColumns(); + Table nodeTable = Lookup.getDefault().lookup(GraphController.class).getGraphModel().getNodeTable(); + List columnsList = new ArrayList<>(); + for (Column column : nodeTable) { + if (!column.isReadOnly()) { + columnsList.add(column); + } + } + + columns = columnsList.toArray(new Column[0]); mergeStrategies = new AttributeRowsMergeStrategy[columns.length]; - deleteMergedNodes = NbPreferences.forModule(MergeNodeDuplicates.class).getBoolean(DELETE_MERGED_NODES_SAVED_PREFERENCES, true); - caseSensitive = NbPreferences.forModule(MergeNodeDuplicates.class).getBoolean(CASE_SENSITIVE_SAVED_PREFERENCES, true); + deleteMergedNodes = + NbPreferences.forModule(MergeNodeDuplicates.class).getBoolean(DELETE_MERGED_NODES_SAVED_PREFERENCES, true); + caseSensitive = + NbPreferences.forModule(MergeNodeDuplicates.class).getBoolean(CASE_SENSITIVE_SAVED_PREFERENCES, true); return new MergeNodeDuplicatesUI(); } + @Override public int getType() { return 100; } + @Override public int getPosition() { return 0; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/merge.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/merge.svg", false); } - public AttributeColumn[] getColumns() { + public Column[] getColumns() { return columns; } - public void setColumns(AttributeColumn[] columns) { + public void setColumns(Column[] columns) { this.columns = columns; } @@ -128,6 +154,10 @@ public boolean isDeleteMergedNodes() { return deleteMergedNodes; } + public void setDeleteMergedNodes(boolean deleteMergedNodes) { + this.deleteMergedNodes = deleteMergedNodes; + } + public boolean isCaseSensitive() { return caseSensitive; } @@ -136,10 +166,6 @@ public void setCaseSensitive(boolean caseSensitive) { this.caseSensitive = caseSensitive; } - public void setDeleteMergedNodes(boolean deleteMergedNodes) { - this.deleteMergedNodes = deleteMergedNodes; - } - public List> getDuplicateGroups() { return duplicateGroups; } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/SearchReplace.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/SearchReplace.java index c5c1a2f370..c316e4c069 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/SearchReplace.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/SearchReplace.java @@ -39,16 +39,17 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.general; import javax.swing.Icon; -import org.gephi.data.attributes.api.AttributeController; -import org.gephi.data.attributes.api.AttributeTable; import org.gephi.datalab.api.AttributeColumnsController; import org.gephi.datalab.api.datatables.DataTablesController; import org.gephi.datalab.plugin.manipulators.general.ui.SearchReplaceUI; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.datalab.spi.general.GeneralActionsManipulator; +import org.gephi.graph.api.GraphController; +import org.gephi.graph.api.Table; import org.openide.DialogDescriptor; import org.openide.DialogDisplayer; import org.openide.util.ImageUtilities; @@ -58,11 +59,13 @@ Development and Distribution License("CDDL") (collectively, the /** * GeneralActionsManipulator that shows a UI for doing search/replace tasks with normal and regex features. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ @ServiceProvider(service = GeneralActionsManipulator.class) public class SearchReplace implements GeneralActionsManipulator { + @Override public void execute() { SearchReplaceUI ui = Lookup.getDefault().lookup(SearchReplaceUI.class); if (ui.isActive()) { @@ -75,50 +78,60 @@ public void execute() { } DialogDescriptor dd = new DialogDescriptor(ui, getName()); dd.setModal(true); - dd.setOptions(new Object[]{NbBundle.getMessage(SearchReplace.class, "SearchReplace.window.close")}); + dd.setOptions(new Object[] {NbBundle.getMessage(SearchReplace.class, "SearchReplace.window.close")}); ui.setActive(true); DialogDisplayer.getDefault().notify(dd); ui.setActive(false); } + @Override public String getName() { return NbBundle.getMessage(SearchReplace.class, "SearchReplace.name"); } + @Override public String getDescription() { return ""; } + @Override public boolean canExecute() { - AttributeTable currentTable = getCurrentTable(); - return currentTable != null && Lookup.getDefault().lookup(AttributeColumnsController.class).getTableRowsCount(currentTable) > 0;//Make sure that there is at least 1 row + Table currentTable = getCurrentTable(); + return currentTable != null && + Lookup.getDefault().lookup(AttributeColumnsController.class).getTableRowsCount(currentTable) > + 0;//Make sure that there is at least 1 row } + @Override public ManipulatorUI getUI() { return null; } + @Override public int getType() { return 100; } + @Override public int getPosition() { return 0; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/binocular--pencil.png", true); + return ImageUtilities + .loadImageIcon("DataLaboratoryPlugin/binocular--pencil.svg", false); } - private AttributeTable getCurrentTable() { + private Table getCurrentTable() { DataTablesController dtc = Lookup.getDefault().lookup(DataTablesController.class); if (dtc.getDataTablesEventListener() == null) { return null; } if (dtc.isNodeTableMode()) { - return Lookup.getDefault().lookup(AttributeController.class).getModel().getNodeTable(); + return Lookup.getDefault().lookup(GraphController.class).getGraphModel().getNodeTable(); } else { - return Lookup.getDefault().lookup(AttributeController.class).getModel().getEdgeTable(); + return Lookup.getDefault().lookup(GraphController.class).getGraphModel().getEdgeTable(); } } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/AddEdgeToGraphUI.form b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/AddEdgeToGraphUI.form index 6ca401e18e..253412b5b7 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/AddEdgeToGraphUI.form +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/AddEdgeToGraphUI.form @@ -40,6 +40,11 @@ + + + + + @@ -50,7 +55,7 @@ - + @@ -65,7 +70,12 @@ - + + + + + + @@ -80,9 +90,6 @@ - - - @@ -93,9 +100,6 @@ - - - @@ -110,9 +114,6 @@ - - - @@ -135,5 +136,20 @@ + + + + + + + + + + + + + + + diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/AddEdgeToGraphUI.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/AddEdgeToGraphUI.java index 41a52fe02a..d1637d8bd4 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/AddEdgeToGraphUI.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/AddEdgeToGraphUI.java @@ -39,31 +39,45 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.general.ui; -import java.util.ArrayList; +import javax.swing.JComboBox; import javax.swing.JPanel; import org.gephi.datalab.plugin.manipulators.general.AddEdgeToGraph; import org.gephi.datalab.spi.DialogControls; import org.gephi.datalab.spi.Manipulator; import org.gephi.datalab.spi.ManipulatorUI; -import org.gephi.graph.api.Edge; import org.gephi.graph.api.Graph; import org.gephi.graph.api.GraphController; import org.gephi.graph.api.Node; +import org.gephi.project.api.ProjectController; +import org.gephi.project.api.Workspace; import org.openide.util.Lookup; /** * UI for AddEdgeToGraph GeneralActionsManipulator * - * @author Eduardo Ramos + * @author Eduardo Ramos */ public class AddEdgeToGraphUI extends javax.swing.JPanel implements ManipulatorUI { private AddEdgeToGraph manipulator; - private Node[] nodes, targetNodes; + private Node[] nodes; private Graph graph; - private DialogControls dialogControls; + private Workspace workspace; + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JLabel descriptionLabel; + private javax.swing.JRadioButton directedRadioButton; + private javax.swing.ButtonGroup directedUndirectedRadioButtonGroup; + private javax.swing.JComboBox edgeTypeComboBox; + private javax.swing.JLabel edgeTypeLabel; + private javax.swing.JLabel sourceNodeLabel; + private javax.swing.JComboBox sourceNodesComboBox; + private javax.swing.JLabel targetNodeLabel; + private javax.swing.JComboBox targetNodesComboBox; + private javax.swing.JRadioButton undirectedRadioButton; + // End of variables declaration//GEN-END:variables /** * Creates new form AddEdgeToGraphUI @@ -72,85 +86,105 @@ public AddEdgeToGraphUI() { initComponents(); } + @Override public void setup(Manipulator m, DialogControls dialogControls) { this.manipulator = (AddEdgeToGraph) m; - this.dialogControls = dialogControls; if (manipulator.isDirected()) { directedRadioButton.setSelected(true); } else { undirectedRadioButton.setSelected(true); } - - graph = Lookup.getDefault().lookup(GraphController.class).getModel().getMixedGraph(); + + graph = Lookup.getDefault().lookup(GraphController.class).getGraphModel().getGraph(); nodes = graph.getNodes().toArray(); - + + workspace = Lookup.getDefault().lookup(ProjectController.class).getCurrentWorkspace(); + for (Node n : nodes) { - sourceNodesComboBox.addItem(n.getId() + " - " + n.getNodeData().getLabel()); + sourceNodesComboBox.addItem(n.getId() + " - " + n.getLabel()); + targetNodesComboBox.addItem(n.getId() + " - " + n.getLabel()); + } + + SelectedOptions selectedOptions = workspace.getLookup().lookup(SelectedOptions.class); + if (selectedOptions != null) { + setNodeComboBoxSelection(sourceNodesComboBox, selectedOptions.source); + setNodeComboBoxSelection(targetNodesComboBox, selectedOptions.target); + edgeTypeComboBox.setSelectedItem(selectedOptions.edgeType); + } else { + workspace.add(new SelectedOptions()); } - - Node selectedSource = manipulator.getSource(); - if(selectedSource != null){ + + refreshAvailableEdgeTypes(); + + dialogControls.setOkButtonEnabled(nodes.length > 0); + } + + private void setNodeComboBoxSelection(JComboBox comboBox, Node node) { + if (node != null) { for (int i = 0; i < nodes.length; i++) { - if(nodes[i] == selectedSource){ - sourceNodesComboBox.setSelectedIndex(i); + if (nodes[i] == node) {//Make sure the node is still in the graph + comboBox.setSelectedIndex(i); } } } - - refreshAvailableTargetNodes(); } + @Override public void unSetup() { - manipulator.setDirected(directedRadioButton.isSelected()); + Object edgeType = getSelectedEdgeType(); + boolean directed = directedRadioButton.isSelected(); + Node source = null; + Node target = null; + + if (sourceNodesComboBox.getSelectedIndex() != -1) { + source = nodes[sourceNodesComboBox.getSelectedIndex()]; + } + if (targetNodesComboBox.getSelectedIndex() != -1) { - manipulator.setSource(nodes[sourceNodesComboBox.getSelectedIndex()]); - manipulator.setTarget(targetNodes[targetNodesComboBox.getSelectedIndex()]); + target = nodes[targetNodesComboBox.getSelectedIndex()]; } + + manipulator.setDirected(directed); + manipulator.setEdgeTypeLabel(edgeType); + manipulator.setSource(source); + manipulator.setTarget(target); + + SelectedOptions selectedOptions = workspace.getLookup().lookup(SelectedOptions.class); + + selectedOptions.directed = directed; + selectedOptions.edgeType = edgeType; + selectedOptions.source = source; + selectedOptions.target = target; } + @Override public String getDisplayName() { return manipulator.getName(); } + @Override public JPanel getSettingsPanel() { return this; } + @Override public boolean isModal() { return true; } - private boolean canCreateEdge(Graph graph, Node source, Node target, boolean createUndirected) { - Edge existingEdge = graph.getEdge(source, target); - - if (existingEdge == null) { - return true; + private String getSelectedEdgeType() { + String edgeType = + edgeTypeComboBox.getSelectedItem() != null ? edgeTypeComboBox.getSelectedItem().toString() : null; + if (edgeType != null && edgeType.trim().isEmpty()) { + edgeType = null; } - if (existingEdge.getSource() == source) {//Exact edge found - return false; - } else {//Inverse edge found - return !createUndirected && existingEdge.isDirected(); - } + return edgeType; } - private void refreshAvailableTargetNodes() { - if (nodes != null) { - ArrayList availableTargetNodes = new ArrayList(); - Node sourceNode = nodes[sourceNodesComboBox.getSelectedIndex()]; - boolean createUndirected = undirectedRadioButton.isSelected(); - for (Node n : nodes) { - if (canCreateEdge(graph, sourceNode, n, createUndirected)) { - availableTargetNodes.add(n); - } - } - - targetNodes = availableTargetNodes.toArray(new Node[0]); - dialogControls.setOkButtonEnabled(!availableTargetNodes.isEmpty()); - targetNodesComboBox.removeAllItems(); - for (Node n : targetNodes) { - targetNodesComboBox.addItem(n.getId() + " - " + n.getNodeData().getLabel()); - } + private void refreshAvailableEdgeTypes() { + for (Object edgeType : graph.getModel().getEdgeTypeLabels()) { + edgeTypeComboBox.addItem(edgeType); } } @@ -169,97 +203,100 @@ private void initComponents() { sourceNodeLabel = new javax.swing.JLabel(); targetNodeLabel = new javax.swing.JLabel(); targetNodesComboBox = new javax.swing.JComboBox(); + edgeTypeLabel = new javax.swing.JLabel(); + edgeTypeComboBox = new javax.swing.JComboBox(); directedUndirectedRadioButtonGroup.add(directedRadioButton); - directedRadioButton.setText(org.openide.util.NbBundle.getMessage(AddEdgeToGraphUI.class, "AddEdgeToGraphUI.directedRadioButton.text")); // NOI18N - directedRadioButton.addItemListener(new java.awt.event.ItemListener() { - public void itemStateChanged(java.awt.event.ItemEvent evt) { - directedRadioButtonItemStateChanged(evt); - } - }); + directedRadioButton.setText(org.openide.util.NbBundle + .getMessage(AddEdgeToGraphUI.class, "AddEdgeToGraphUI.directedRadioButton.text")); // NOI18N directedUndirectedRadioButtonGroup.add(undirectedRadioButton); - undirectedRadioButton.setText(org.openide.util.NbBundle.getMessage(AddEdgeToGraphUI.class, "AddEdgeToGraphUI.undirectedRadioButton.text")); // NOI18N - undirectedRadioButton.addItemListener(new java.awt.event.ItemListener() { - public void itemStateChanged(java.awt.event.ItemEvent evt) { - undirectedRadioButtonItemStateChanged(evt); - } - }); + undirectedRadioButton.setText(org.openide.util.NbBundle + .getMessage(AddEdgeToGraphUI.class, "AddEdgeToGraphUI.undirectedRadioButton.text")); // NOI18N - descriptionLabel.setText(org.openide.util.NbBundle.getMessage(AddEdgeToGraphUI.class, "AddEdgeToGraphUI.descriptionLabel.text")); // NOI18N + descriptionLabel.setText(org.openide.util.NbBundle + .getMessage(AddEdgeToGraphUI.class, "AddEdgeToGraphUI.descriptionLabel.text")); // NOI18N - sourceNodesComboBox.addItemListener(new java.awt.event.ItemListener() { - public void itemStateChanged(java.awt.event.ItemEvent evt) { - sourceNodesComboBoxItemStateChanged(evt); - } - }); + sourceNodeLabel.setText(org.openide.util.NbBundle + .getMessage(AddEdgeToGraphUI.class, "AddEdgeToGraphUI.sourceNodeLabel.text")); // NOI18N + + targetNodeLabel.setText(org.openide.util.NbBundle + .getMessage(AddEdgeToGraphUI.class, "AddEdgeToGraphUI.targetNodeLabel.text")); // NOI18N - sourceNodeLabel.setText(org.openide.util.NbBundle.getMessage(AddEdgeToGraphUI.class, "AddEdgeToGraphUI.sourceNodeLabel.text")); // NOI18N + edgeTypeLabel.setText(org.openide.util.NbBundle + .getMessage(AddEdgeToGraphUI.class, "AddEdgeToGraphUI.edgeTypeLabel.text")); // NOI18N - targetNodeLabel.setText(org.openide.util.NbBundle.getMessage(AddEdgeToGraphUI.class, "AddEdgeToGraphUI.targetNodeLabel.text")); // NOI18N + edgeTypeComboBox.setEditable(true); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(descriptionLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(directedRadioButton) - .addComponent(sourceNodeLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 73, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(sourceNodesComboBox, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(undirectedRadioButton))) - .addGroup(layout.createSequentialGroup() - .addComponent(targetNodeLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 73, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(targetNodesComboBox, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) - .addContainerGap()) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(descriptionLabel, javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(directedRadioButton) + .addComponent(sourceNodeLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 73, + javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(sourceNodesComboBox, 0, javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addComponent(undirectedRadioButton))) + .addGroup(layout.createSequentialGroup() + .addComponent(targetNodeLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 73, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(targetNodesComboBox, 0, javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE)) + .addGroup(layout.createSequentialGroup() + .addComponent(edgeTypeLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 73, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(edgeTypeComboBox, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) + .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addContainerGap() - .addComponent(descriptionLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(directedRadioButton) - .addComponent(undirectedRadioButton)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(sourceNodesComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(sourceNodeLabel)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(targetNodesComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(targetNodeLabel)) - .addContainerGap()) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addContainerGap() + .addComponent(descriptionLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 25, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(directedRadioButton) + .addComponent(undirectedRadioButton)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(sourceNodesComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(sourceNodeLabel)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(targetNodesComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(targetNodeLabel)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(edgeTypeLabel) + .addComponent(edgeTypeComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); }// //GEN-END:initComponents - private void sourceNodesComboBoxItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_sourceNodesComboBoxItemStateChanged - refreshAvailableTargetNodes(); - }//GEN-LAST:event_sourceNodesComboBoxItemStateChanged + private class SelectedOptions { - private void directedRadioButtonItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_directedRadioButtonItemStateChanged - refreshAvailableTargetNodes(); - }//GEN-LAST:event_directedRadioButtonItemStateChanged + private Node source; + private Node target; + private Object edgeType; + private boolean directed = false; - private void undirectedRadioButtonItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_undirectedRadioButtonItemStateChanged - refreshAvailableTargetNodes(); - }//GEN-LAST:event_undirectedRadioButtonItemStateChanged - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JLabel descriptionLabel; - private javax.swing.JRadioButton directedRadioButton; - private javax.swing.ButtonGroup directedUndirectedRadioButtonGroup; - private javax.swing.JLabel sourceNodeLabel; - private javax.swing.JComboBox sourceNodesComboBox; - private javax.swing.JLabel targetNodeLabel; - private javax.swing.JComboBox targetNodesComboBox; - private javax.swing.JRadioButton undirectedRadioButton; - // End of variables declaration//GEN-END:variables + public SelectedOptions() { + } + } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/ClearEdgesUI.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/ClearEdgesUI.java index fc6c3fb062..1c14f58d9d 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/ClearEdgesUI.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/ClearEdgesUI.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.general.ui; import javax.swing.JPanel; @@ -50,41 +51,58 @@ Development and Distribution License("CDDL") (collectively, the /** * UI for ClearEdges GeneralActionsManipulator - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class ClearEdgesUI extends javax.swing.JPanel implements ManipulatorUI { ClearEdges manipulator; - /** Creates new form ClearEdgesUI */ + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JCheckBox deleteDirectedCheckbox; + private javax.swing.JCheckBox deleteUndirectedChekbox; + private javax.swing.JLabel descriptionLabel; + // End of variables declaration//GEN-END:variables + + /** + * Creates new form ClearEdgesUI + */ public ClearEdgesUI() { initComponents(); } + @Override public void setup(Manipulator m, DialogControls dialogControls) { - manipulator=(ClearEdges) m; + manipulator = (ClearEdges) m; deleteDirectedCheckbox.setSelected(manipulator.isDeleteDirected()); deleteUndirectedChekbox.setSelected(manipulator.isDeleteUndirected()); } + @Override public void unSetup() { manipulator.setDeleteDirected(deleteDirectedCheckbox.isSelected()); manipulator.setDeleteUndirected(deleteUndirectedChekbox.isSelected()); - NbPreferences.forModule(ClearEdges.class).putBoolean(ClearEdges.DELETE_DIRECTED_SAVED_PREFERENCES, deleteDirectedCheckbox.isSelected()); - NbPreferences.forModule(ClearEdges.class).putBoolean(ClearEdges.DELETE_UNDIRECTED_SAVED_PREFERENCES, deleteUndirectedChekbox.isSelected()); + NbPreferences.forModule(ClearEdges.class) + .putBoolean(ClearEdges.DELETE_DIRECTED_SAVED_PREFERENCES, deleteDirectedCheckbox.isSelected()); + NbPreferences.forModule(ClearEdges.class) + .putBoolean(ClearEdges.DELETE_UNDIRECTED_SAVED_PREFERENCES, deleteUndirectedChekbox.isSelected()); } + @Override public String getDisplayName() { return manipulator.getName(); } + @Override public JPanel getSettingsPanel() { return this; } + @Override public boolean isModal() { return true; } - /** This method is called from within the constructor to + /** + * This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. @@ -97,45 +115,41 @@ private void initComponents() { deleteUndirectedChekbox = new javax.swing.JCheckBox(); descriptionLabel = new javax.swing.JLabel(); - deleteDirectedCheckbox.setText(org.openide.util.NbBundle.getMessage(ClearEdgesUI.class, "ClearEdgesUI.deleteDirectedCheckbox.text")); // NOI18N + deleteDirectedCheckbox.setText(org.openide.util.NbBundle + .getMessage(ClearEdgesUI.class, "ClearEdgesUI.deleteDirectedCheckbox.text")); // NOI18N - deleteUndirectedChekbox.setText(org.openide.util.NbBundle.getMessage(ClearEdgesUI.class, "ClearEdgesUI.deleteUndirectedChekbox.text")); // NOI18N + deleteUndirectedChekbox.setText(org.openide.util.NbBundle + .getMessage(ClearEdgesUI.class, "ClearEdgesUI.deleteUndirectedChekbox.text")); // NOI18N descriptionLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - descriptionLabel.setText(org.openide.util.NbBundle.getMessage(ClearEdgesUI.class, "ClearEdgesUI.descriptionLabel.text")); // NOI18N + descriptionLabel.setText( + org.openide.util.NbBundle.getMessage(ClearEdgesUI.class, "ClearEdgesUI.descriptionLabel.text")); // NOI18N javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addComponent(deleteDirectedCheckbox) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(deleteUndirectedChekbox)) - .addGroup(layout.createSequentialGroup() - .addComponent(descriptionLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 271, Short.MAX_VALUE) - .addContainerGap()))) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addComponent(deleteDirectedCheckbox) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(deleteUndirectedChekbox)) + .addGroup(layout.createSequentialGroup() + .addComponent(descriptionLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 271, Short.MAX_VALUE) + .addContainerGap()))) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addContainerGap() - .addComponent(descriptionLabel) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 16, Short.MAX_VALUE) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(deleteUndirectedChekbox) - .addComponent(deleteDirectedCheckbox)) - .addContainerGap()) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addContainerGap() + .addComponent(descriptionLabel) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 16, Short.MAX_VALUE) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(deleteUndirectedChekbox) + .addComponent(deleteDirectedCheckbox)) + .addContainerGap()) ); }// //GEN-END:initComponents - - - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JCheckBox deleteDirectedCheckbox; - private javax.swing.JCheckBox deleteUndirectedChekbox; - private javax.swing.JLabel descriptionLabel; - // End of variables declaration//GEN-END:variables } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/ImportCSVUIVisualPanel1.form b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/ImportCSVUIVisualPanel1.form deleted file mode 100644 index 1c2fc2a4eb..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/ImportCSVUIVisualPanel1.form +++ /dev/null @@ -1,185 +0,0 @@ - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/ImportCSVUIVisualPanel1.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/ImportCSVUIVisualPanel1.java deleted file mode 100644 index b416d132c8..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/ImportCSVUIVisualPanel1.java +++ /dev/null @@ -1,529 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Mathieu Bastian, Mathieu Jacomy, Julian Bilcke, Eduardo Ramos -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.datalab.plugin.manipulators.general.ui; - -import com.csvreader.CsvReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.lang.reflect.InvocationTargetException; -import java.nio.charset.Charset; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.Set; -import javax.swing.JFileChooser; -import javax.swing.JOptionPane; -import javax.swing.SwingUtilities; -import javax.swing.event.TableModelListener; -import javax.swing.table.TableModel; -import org.gephi.ui.utils.DialogFileFilter; -import org.netbeans.validation.api.Problems; -import org.netbeans.validation.api.Validator; -import org.netbeans.validation.api.ui.ValidationGroup; -import org.netbeans.validation.api.ui.ValidationPanel; -import org.openide.util.Exceptions; -import org.openide.util.NbBundle; -import org.openide.util.NbPreferences; - -/** - * - * @author Eduardo Ramos - */ -public class ImportCSVUIVisualPanel1 extends javax.swing.JPanel { - - private static final String CHARSET_SAVED_PREFERENCES = "ImportCSVUIVisualPanel1_Charset"; - private static final String SEPARATOR_SAVED_PREFERENCES = "ImportCSVUIVisualPanel1_Separator"; - private static final String TABLE_SAVED_PREFERENCES = "ImportCSVUIVisualPanel1_Table"; - - private static final int MAX_ROWS_PREVIEW = 25; - private File selectedFile = null; - private ImportCSVUIWizardPanel1 wizard1; - private int columnCount = 0; - private boolean hasSourceNodeColumn = false; - private boolean hasTargetNodeColumn = false; - private boolean columnNamesRepeated = false; - private ValidationPanel validationPanel; - - /** Creates new form ImportCSVUIVisualPanel1 */ - public ImportCSVUIVisualPanel1(ImportCSVUIWizardPanel1 wizard1) { - initComponents(); - this.wizard1 = wizard1; - separatorComboBox.addItem(new SeparatorWrapper((','), getMessage("ImportCSVUIVisualPanel1.comma"))); - separatorComboBox.addItem(new SeparatorWrapper((';'), getMessage("ImportCSVUIVisualPanel1.semicolon"))); - separatorComboBox.addItem(new SeparatorWrapper(('\t'), getMessage("ImportCSVUIVisualPanel1.tab"))); - separatorComboBox.addItem(new SeparatorWrapper((' '), getMessage("ImportCSVUIVisualPanel1.space"))); - - separatorComboBox.setSelectedIndex(NbPreferences.forModule(ImportCSVUIVisualPanel1.class).getInt(SEPARATOR_SAVED_PREFERENCES, 0));//Use saved separator or comma if not saved yet - - tableComboBox.addItem(getMessage("ImportCSVUIVisualPanel1.nodes-table")); - tableComboBox.addItem(getMessage("ImportCSVUIVisualPanel1.edges-table")); - - tableComboBox.setSelectedIndex(NbPreferences.forModule(ImportCSVUIVisualPanel1.class).getInt(TABLE_SAVED_PREFERENCES, 0));//Use saved table or nodes table if not saved yet - - for (String charset : Charset.availableCharsets().keySet()) { - charsetComboBox.addItem(charset); - } - String savedCharset = NbPreferences.forModule(ImportCSVUIVisualPanel1.class).get(CHARSET_SAVED_PREFERENCES, null); - if (savedCharset != null) { - charsetComboBox.setSelectedItem(savedCharset); - }else{ - charsetComboBox.setSelectedItem(Charset.forName("UTF-8").name());//UTF-8 by default, not system default charset - } - } - - public void unSetup(){ - NbPreferences.forModule(ImportCSVUIVisualPanel1.class).put(CHARSET_SAVED_PREFERENCES, charsetComboBox.getSelectedItem().toString()); - NbPreferences.forModule(ImportCSVUIVisualPanel1.class).putInt(SEPARATOR_SAVED_PREFERENCES, separatorComboBox.getSelectedIndex()); - NbPreferences.forModule(ImportCSVUIVisualPanel1.class).putInt(TABLE_SAVED_PREFERENCES, tableComboBox.getSelectedIndex()); - } - - public ValidationPanel getValidationPanel() { - if (validationPanel != null) { - return validationPanel; - } - try { - SwingUtilities.invokeAndWait(new Runnable() { - - public void run() { - validationPanel = new ValidationPanel(); - validationPanel.setInnerComponent(ImportCSVUIVisualPanel1.this); - - ValidationGroup validationGroup = validationPanel.getValidationGroup(); - - validationGroup.add(pathTextField, new Validator() { - - public boolean validate(Problems prblms, String string, String t) { - if (!isValidFile()) { - prblms.add(getMessage("ImportCSVUIVisualPanel1.validation.invalid-file")); - return false; - } - if (!hasColumns()) { - prblms.add(getMessage("ImportCSVUIVisualPanel1.validation.no-columns")); - return false; - } - if (columnNamesRepeated) { - prblms.add(getMessage("ImportCSVUIVisualPanel1.validation.repeated-columns")); - return false; - } - if (!areValidColumnsForTable()) { - prblms.add(getMessage("ImportCSVUIVisualPanel1.validation.edges.no-source-target-columns")); - return false; - } - return true; - } - }); - } - }); - validationPanel.setName(getName()); - } catch (InterruptedException ex) { - Exceptions.printStackTrace(ex); - } catch (InvocationTargetException ex) { - Exceptions.printStackTrace(ex); - } - - return validationPanel; - } - - public void refreshPreviewTable() { - if (selectedFile != null && selectedFile.exists()) { - try { - CsvReader reader = new CsvReader(new FileInputStream(selectedFile), getSelectedSeparator(), getSelectedCharset()); - reader.setTrimWhitespace(false); - String[] headers; - try { - reader.readHeaders(); - headers = reader.getHeaders(); - } catch (Exception ex) { - headers = new String[0];//Some charsets can be problematic with unreal columns lenght. Don't show table when there are problems - } - columnCount = headers.length; - - //Check for repeated column names: - Set columnNamesSet = new HashSet(); - columnNamesRepeated = false; - hasSourceNodeColumn = false; - hasTargetNodeColumn = false; - for (String header : headers) { - if (header.equalsIgnoreCase("source")) { - hasSourceNodeColumn = true; - } - if (header.equalsIgnoreCase("target")) { - hasTargetNodeColumn = true; - } - if (columnNamesSet.contains(header)) { - columnNamesRepeated = true; - break; - } - columnNamesSet.add(header); - } - - ArrayList records = new ArrayList(); - if (columnCount > 0) { - String[] currentRecord; - while (reader.readRecord() && records.size() < MAX_ROWS_PREVIEW) { - currentRecord = new String[reader.getColumnCount()]; - for (int i = 0; i < currentRecord.length; i++) { - currentRecord[i] = reader.get(i); - } - records.add(currentRecord); - } - } - reader.close(); - final String[] columnNames = headers; - final String[][] values = records.toArray(new String[0][]); - previewTable.setModel(new TableModel() { - - public int getRowCount() { - return values.length; - } - - public int getColumnCount() { - return columnNames.length; - } - - public String getColumnName(int columnIndex) { - return columnNames[columnIndex]; - } - - public Class getColumnClass(int columnIndex) { - return String.class; - } - - public boolean isCellEditable(int rowIndex, int columnIndex) { - return false; - } - - public Object getValueAt(int rowIndex, int columnIndex) { - if (values[rowIndex].length > columnIndex) { - return values[rowIndex][columnIndex]; - } else { - return null; - } - } - - public void setValueAt(Object aValue, int rowIndex, int columnIndex) { - } - - public void addTableModelListener(TableModelListener l) { - } - - public void removeTableModelListener(TableModelListener l) { - } - }); - } catch (FileNotFoundException ex) { - Exceptions.printStackTrace(ex); - } catch (IOException ex) { - JOptionPane.showMessageDialog(this, getMessage("ImportCSVUIVisualPanel1.validation.error"), getMessage("ImportCSVUIVisualPanel1.validation.file-permissions-error"), JOptionPane.ERROR_MESSAGE); - } - } - wizard1.fireChangeEvent(); - pathTextField.setText(pathTextField.getText());//To fire validation panel messages. - } - - @Override - public String getName() { - return getMessage("ImportCSVUIVisualPanel1.name"); - } - - public Character getSelectedSeparator() { - Object item = separatorComboBox.getSelectedItem(); - if (item instanceof SeparatorWrapper) { - return ((SeparatorWrapper) item).separator; - } else { - return item.toString().charAt(0); - } - } - - public File getSelectedFile() { - return selectedFile; - } - - public ImportCSVUIWizardAction.Mode getMode() { - switch (tableComboBox.getSelectedIndex()) { - case 0: - return ImportCSVUIWizardAction.Mode.NODES_TABLE; - case 1: - return ImportCSVUIWizardAction.Mode.EDGES_TABLE; - default: - return ImportCSVUIWizardAction.Mode.NODES_TABLE;//Not going to happen. - } - } - - public Charset getSelectedCharset() { - return Charset.forName(charsetComboBox.getSelectedItem().toString()); - } - - public int getColumnCount() { - return columnCount; - } - - public boolean isColumnNamesRepeated() { - return columnNamesRepeated; - } - - public boolean isValidFile() { - return selectedFile != null && selectedFile.exists(); - } - - public boolean hasColumns() { - return columnCount > 0; - } - - public boolean areValidColumnsForTable() { - switch (getMode()) { - case NODES_TABLE: - return true; - case EDGES_TABLE: - return hasSourceNodeColumn && hasTargetNodeColumn; - default: - return false; - } - } - - public boolean isCSVValid() { - return isValidFile() && hasColumns() && !columnNamesRepeated && areValidColumnsForTable(); - } - - class SeparatorWrapper { - - private Character separator; - private String displayText; - - public SeparatorWrapper(Character separator) { - this.separator = separator; - } - - public SeparatorWrapper(Character separator, String displayText) { - this.separator = separator; - this.displayText = displayText; - } - - @Override - public String toString() { - if (displayText != null) { - return displayText; - } else { - return String.valueOf(separator); - } - } - } - - private String getMessage(String resName) { - return NbBundle.getMessage(ImportCSVUIVisualPanel1.class, resName); - } - - /** This method is called from within the constructor to - * initialize the form. - * WARNING: Do NOT modify this code. The content of this method is - * always regenerated by the Form Editor. - */ - @SuppressWarnings("unchecked") - // //GEN-BEGIN:initComponents - private void initComponents() { - - descriptionLabel = new javax.swing.JLabel(); - pathTextField = new javax.swing.JTextField(); - fileButton = new javax.swing.JButton(); - separatorLabel = new javax.swing.JLabel(); - separatorComboBox = new javax.swing.JComboBox(); - tableLabel = new javax.swing.JLabel(); - tableComboBox = new javax.swing.JComboBox(); - previewLabel = new javax.swing.JLabel(); - scroll = new javax.swing.JScrollPane(); - previewTable = new javax.swing.JTable(); - charsetLabel = new javax.swing.JLabel(); - charsetComboBox = new javax.swing.JComboBox(); - - descriptionLabel.setText(org.openide.util.NbBundle.getMessage(ImportCSVUIVisualPanel1.class, "ImportCSVUIVisualPanel1.descriptionLabel.text")); // NOI18N - - pathTextField.setEditable(false); - pathTextField.setText(org.openide.util.NbBundle.getMessage(ImportCSVUIVisualPanel1.class, "ImportCSVUIVisualPanel1.pathTextField.text")); // NOI18N - - fileButton.setText(org.openide.util.NbBundle.getMessage(ImportCSVUIVisualPanel1.class, "ImportCSVUIVisualPanel1.fileButton.text")); // NOI18N - fileButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - fileButtonActionPerformed(evt); - } - }); - - separatorLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - separatorLabel.setText(org.openide.util.NbBundle.getMessage(ImportCSVUIVisualPanel1.class, "ImportCSVUIVisualPanel1.separatorLabel.text")); // NOI18N - - separatorComboBox.addItemListener(new java.awt.event.ItemListener() { - public void itemStateChanged(java.awt.event.ItemEvent evt) { - separatorComboBoxItemStateChanged(evt); - } - }); - - tableLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - tableLabel.setText(org.openide.util.NbBundle.getMessage(ImportCSVUIVisualPanel1.class, "ImportCSVUIVisualPanel1.tableLabel.text")); // NOI18N - - tableComboBox.addItemListener(new java.awt.event.ItemListener() { - public void itemStateChanged(java.awt.event.ItemEvent evt) { - tableComboBoxItemStateChanged(evt); - } - }); - - previewLabel.setText(org.openide.util.NbBundle.getMessage(ImportCSVUIVisualPanel1.class, "ImportCSVUIVisualPanel1.previewLabel.text")); // NOI18N - - scroll.setViewportView(previewTable); - - charsetLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - charsetLabel.setText(org.openide.util.NbBundle.getMessage(ImportCSVUIVisualPanel1.class, "ImportCSVUIVisualPanel1.charsetLabel.text")); // NOI18N - - charsetComboBox.addItemListener(new java.awt.event.ItemListener() { - public void itemStateChanged(java.awt.event.ItemEvent evt) { - charsetComboBoxItemStateChanged(evt); - } - }); - - javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); - this.setLayout(layout); - layout.setHorizontalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(scroll, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 325, Short.MAX_VALUE) - .addComponent(descriptionLabel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 325, Short.MAX_VALUE) - .addGroup(layout.createSequentialGroup() - .addComponent(pathTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 274, Short.MAX_VALUE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(fileButton)) - .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(separatorLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(separatorComboBox, 0, 90, Short.MAX_VALUE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(tableLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(tableComboBox, 0, 123, Short.MAX_VALUE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(charsetLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 96, Short.MAX_VALUE) - .addComponent(charsetComboBox, 0, 96, Short.MAX_VALUE))) - .addComponent(previewLabel, javax.swing.GroupLayout.Alignment.LEADING)) - .addContainerGap()) - ); - layout.setVerticalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addComponent(descriptionLabel) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(pathTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(fileButton)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addGroup(layout.createSequentialGroup() - .addComponent(separatorLabel) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(separatorComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(tableLabel) - .addComponent(charsetLabel)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(tableComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(charsetComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))) - .addGap(18, 18, 18) - .addComponent(previewLabel) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(scroll, javax.swing.GroupLayout.DEFAULT_SIZE, 147, Short.MAX_VALUE) - .addContainerGap()) - ); - }// //GEN-END:initComponents - - private void fileButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_fileButtonActionPerformed - String lastPath = NbPreferences.forModule(ImportCSVUIVisualPanel1.class).get(LAST_PATH, null); - final JFileChooser chooser = new JFileChooser(lastPath); - chooser.setAcceptAllFileFilterUsed(true); - DialogFileFilter dialogFileFilter = new DialogFileFilter(NbBundle.getMessage(ImportCSVUIVisualPanel1.class, "ImportCSVUIVisualPanel1.filechooser.csvDescription")); - dialogFileFilter.addExtension("csv"); - chooser.addChoosableFileFilter(dialogFileFilter); - chooser.setSelectedFile(selectedFile); - int returnFile = chooser.showOpenDialog(null); - if (returnFile != JFileChooser.APPROVE_OPTION) { - return; - } - - selectedFile = chooser.getSelectedFile(); - String path = selectedFile.getAbsolutePath(); - - pathTextField.setText(path); - - //Save last path - String defaultDirectory = selectedFile.getParentFile().getAbsolutePath(); - NbPreferences.forModule(ImportCSVUIVisualPanel1.class).put(LAST_PATH, defaultDirectory); - refreshPreviewTable(); - }//GEN-LAST:event_fileButtonActionPerformed - - private void separatorComboBoxItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_separatorComboBoxItemStateChanged - refreshPreviewTable(); - }//GEN-LAST:event_separatorComboBoxItemStateChanged - - private void charsetComboBoxItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_charsetComboBoxItemStateChanged - refreshPreviewTable(); - }//GEN-LAST:event_charsetComboBoxItemStateChanged - - private void tableComboBoxItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_tableComboBoxItemStateChanged - refreshPreviewTable(); - }//GEN-LAST:event_tableComboBoxItemStateChanged - private static final String LAST_PATH = "ImportCSVUIVisualPanel1_Save_Last_Path"; - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JComboBox charsetComboBox; - private javax.swing.JLabel charsetLabel; - private javax.swing.JLabel descriptionLabel; - private javax.swing.JButton fileButton; - private javax.swing.JTextField pathTextField; - private javax.swing.JLabel previewLabel; - private javax.swing.JTable previewTable; - private javax.swing.JScrollPane scroll; - private javax.swing.JComboBox separatorComboBox; - private javax.swing.JLabel separatorLabel; - private javax.swing.JComboBox tableComboBox; - private javax.swing.JLabel tableLabel; - // End of variables declaration//GEN-END:variables -} diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/ImportCSVUIVisualPanel2.form b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/ImportCSVUIVisualPanel2.form deleted file mode 100644 index 354c16272c..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/ImportCSVUIVisualPanel2.form +++ /dev/null @@ -1,34 +0,0 @@ - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/ImportCSVUIVisualPanel2.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/ImportCSVUIVisualPanel2.java deleted file mode 100644 index f05131c6bf..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/ImportCSVUIVisualPanel2.java +++ /dev/null @@ -1,307 +0,0 @@ -/* - Copyright 2008-2010 Gephi - Authors : Eduardo Ramos - Website : http://www.gephi.org - - This file is part of Gephi. - - DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - - Copyright 2011 Gephi Consortium. All rights reserved. - - The contents of this file are subject to the terms of either the GNU - General Public License Version 3 only ("GPL") or the Common - Development and Distribution License("CDDL") (collectively, the - "License"). You may not use this file except in compliance with the - License. You can obtain a copy of the License at - http://gephi.org/about/legal/license-notice/ - or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the - specific language governing permissions and limitations under the - License. When distributing the software, include this License Header - Notice in each file and include the License files at - /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the - License Header, with the fields enclosed by brackets [] replaced by - your own identifying information: - "Portions Copyrighted [year] [name of copyright owner]" - - If you wish your version of this file to be governed by only the CDDL - or only the GPL Version 3, indicate your decision by adding - "[Contributor] elects to include this software in this distribution - under the [CDDL or GPL Version 3] license." If you do not indicate a - single choice of license, a recipient has the option to distribute - your version of this file under either the CDDL, the GPL Version 3 or - to extend the choice of license to its licensees as provided above. - However, if you add GPL Version 3 code and therefore, elected the GPL - Version 3 license, then the option applies only if the new code is - made subject to such option by the copyright holder. - - Contributor(s): - - Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.datalab.plugin.manipulators.general.ui; - -import com.csvreader.CsvReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.nio.charset.Charset; -import java.util.ArrayList; -import javax.swing.JCheckBox; -import javax.swing.JComboBox; -import javax.swing.JLabel; -import javax.swing.JPanel; -import net.miginfocom.swing.MigLayout; -import org.gephi.data.attributes.api.AttributeController; -import org.gephi.data.attributes.api.AttributeTable; -import org.gephi.data.attributes.api.AttributeType; -import org.gephi.datalab.plugin.manipulators.general.ui.ImportCSVUIWizardAction.Mode; -import org.openide.util.Exceptions; -import org.openide.util.Lookup; -import org.openide.util.NbBundle; -import org.openide.util.NbPreferences; - -public final class ImportCSVUIVisualPanel2 extends JPanel { - - private static final String ASSIGN_NEW_NODES_IDS_SAVED_PREFERENCES = "ImportCSVUIVisualPanel2_assign_new_nodes_ids"; - private static final String CREATE_NEW_NODES_SAVED_PREFERENCES = "ImportCSVUIVisualPanel2_create_new_nodes"; - private final ImportCSVUIWizardPanel2 wizard2; - private Character separator; - private File file; - private ImportCSVUIWizardAction.Mode mode; - private ArrayList columnsCheckBoxes=new ArrayList(); - private ArrayList columnsComboBoxes=new ArrayList(); - private AttributeTable table; - private Charset charset; - //Nodes table settings: - private JCheckBox assignNewNodeIds; - //Edges table settings: - private JCheckBox createNewNodes; - - /** - * Creates new form ImportCSVUIVisualPanel2 - */ - public ImportCSVUIVisualPanel2(ImportCSVUIWizardPanel2 wizard2) { - initComponents(); - this.wizard2 = wizard2; - } - - public void unSetup() { - if (assignNewNodeIds != null) { - NbPreferences.forModule(ImportCSVUIVisualPanel1.class).putBoolean(ASSIGN_NEW_NODES_IDS_SAVED_PREFERENCES, assignNewNodeIds.isSelected()); - } - if (createNewNodes != null) { - NbPreferences.forModule(ImportCSVUIVisualPanel1.class).putBoolean(CREATE_NEW_NODES_SAVED_PREFERENCES, createNewNodes.isSelected()); - } - } - - public void reloadSettings() { - if (separator != null && file != null && file.exists() && mode != null && charset != null) { - JPanel settingsPanel = new JPanel(); - settingsPanel.setLayout(new MigLayout()); - loadDescription(settingsPanel); - switch (mode) { - case NODES_TABLE: - table = Lookup.getDefault().lookup(AttributeController.class).getModel().getNodeTable(); - loadColumns(settingsPanel); - loadNodesTableSettings(settingsPanel); - break; - case EDGES_TABLE: - table = Lookup.getDefault().lookup(AttributeController.class).getModel().getEdgeTable(); - loadColumns(settingsPanel); - loadEdgesTableSettings(settingsPanel); - break; - } - - scroll.setViewportView(settingsPanel); - } - wizard2.fireChangeEvent();//Enable/disable finish button - } - - private void loadDescription(JPanel settingsPanel) { - JLabel descriptionLabel = new JLabel(); - switch (mode) { - case NODES_TABLE: - descriptionLabel.setText(getMessage("ImportCSVUIVisualPanel2.nodes.description")); - break; - case EDGES_TABLE: - descriptionLabel.setText(getMessage("ImportCSVUIVisualPanel2.edges.description")); - break; - } - settingsPanel.add(descriptionLabel, "wrap 15px"); - } - - private void loadColumns(JPanel settingsPanel) { - try { - columnsCheckBoxes.clear(); - columnsComboBoxes.clear(); - JLabel columnsLabel = new JLabel(getMessage("ImportCSVUIVisualPanel2.columnsLabel.text")); - settingsPanel.add(columnsLabel, "wrap"); - - CsvReader reader = new CsvReader(new FileInputStream(file), separator, charset); - reader.setTrimWhitespace(false); - reader.readHeaders(); - final String[] columns = reader.getHeaders(); - reader.close(); - - boolean sourceFound = false, targetFound = false, typeFound = false;//Only first source and target columns found will be used as source and target nodes ids. - for (int i = 0; i < columns.length; i++) { - if (columns[i].isEmpty()) { - continue;//Remove empty column headers: - } - - JCheckBox columnCheckBox= new JCheckBox(columns[i], true); - columnsCheckBoxes.add(columnCheckBox); - settingsPanel.add(columnCheckBox, "wrap"); - JComboBox columnComboBox = new JComboBox(); - columnsComboBoxes.add(columnComboBox); - fillComboBoxWithColumnTypes(columns[i], columnComboBox); - settingsPanel.add(columnComboBox, "wrap 15px"); - - if (mode == ImportCSVUIWizardAction.Mode.EDGES_TABLE && columns[i].equalsIgnoreCase("source") && !sourceFound) { - sourceFound = true; - //Do not allow to not select source column: - columnCheckBox.setEnabled(false); - columnComboBox.setEnabled(false); - } - if (mode == ImportCSVUIWizardAction.Mode.EDGES_TABLE && columns[i].equalsIgnoreCase("target") && !targetFound) { - targetFound = true; - //Do not allow to not select target column: - columnCheckBox.setEnabled(false); - columnComboBox.setEnabled(false); - } - if (mode == ImportCSVUIWizardAction.Mode.EDGES_TABLE && columns[i].equalsIgnoreCase("type") && !typeFound) { - typeFound = true; - //Do not allow to change type column type: - columnComboBox.setEnabled(false); - } - } - } catch (IOException ex) { - Exceptions.printStackTrace(ex); - } - } - - private void fillComboBoxWithColumnTypes(String column, JComboBox comboBox) { - comboBox.removeAllItems(); - for (AttributeType type : AttributeType.values()) { - comboBox.addItem(type); - } - if (table.hasColumn(column)) { - //Set type of the already existing column in the table and disable the edition: - comboBox.setSelectedItem(table.getColumn(column).getType()); - comboBox.setEnabled(false); - } else { - comboBox.setSelectedItem(AttributeType.STRING);//Set STRING by default - } - } - - private void loadNodesTableSettings(JPanel settingsPanel) { - //Create assignNewNodeIds checkbox and set its selection with saved preferences or true by default: - assignNewNodeIds = new JCheckBox(getMessage("ImportCSVUIVisualPanel2.nodes.assign-ids-checkbox"), - NbPreferences.forModule(ImportCSVUIVisualPanel1.class).getBoolean(ASSIGN_NEW_NODES_IDS_SAVED_PREFERENCES, true)); - settingsPanel.add(assignNewNodeIds, "wrap"); - } - - private void loadEdgesTableSettings(JPanel settingsPanel) { - //Create createNewNodes checkbox and set its selection with saved preferences or true by default: - createNewNodes = new JCheckBox(getMessage("ImportCSVUIVisualPanel2.edges.create-new-nodes-checkbox"), - NbPreferences.forModule(ImportCSVUIVisualPanel1.class).getBoolean(CREATE_NEW_NODES_SAVED_PREFERENCES, true)); - settingsPanel.add(createNewNodes, "wrap"); - } - - public boolean isValidCSV() { - return true; - } - - public String[] getColumnsToImport() { - ArrayList columns = new ArrayList(); - for (JCheckBox columnCheckBox : columnsCheckBoxes) { - if (columnCheckBox.isSelected()) { - columns.add(columnCheckBox.getText()); - } - } - return columns.toArray(new String[0]); - } - - public AttributeType[] getColumnsToImportTypes() { - ArrayList types = new ArrayList(); - for (int i = 0; i < columnsCheckBoxes.size(); i++) { - if (columnsCheckBoxes.get(i).isSelected()) { - types.add((AttributeType) columnsComboBoxes.get(i).getSelectedItem()); - } - } - return types.toArray(new AttributeType[0]); - } - - public boolean getAssignNewNodeIds() { - return assignNewNodeIds != null ? assignNewNodeIds.isSelected() : false; - } - - public boolean getCreateNewNodes() { - return createNewNodes != null ? createNewNodes.isSelected() : false; - } - - @Override - public String getName() { - return NbBundle.getMessage(ImportCSVUIVisualPanel2.class, "ImportCSVUIVisualPanel2.name"); - } - - public File getFile() { - return file; - } - - public void setFile(File file) { - this.file = file; - } - - public Mode getMode() { - return mode; - } - - public void setMode(Mode mode) { - this.mode = mode; - } - - public Character getSeparator() { - return separator; - } - - public void setSeparator(Character separator) { - this.separator = separator; - } - - public Charset getCharset() { - return charset; - } - - void setCharset(Charset charset) { - this.charset = charset; - } - - private String getMessage(String resName) { - return NbBundle.getMessage(ImportCSVUIVisualPanel2.class, resName); - } - - /** - * This method is called from within the constructor to initialize the form. WARNING: Do NOT modify this code. The content of this method is always regenerated by the Form Editor. - */ - // //GEN-BEGIN:initComponents - private void initComponents() { - - scroll = new javax.swing.JScrollPane(); - - javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); - this.setLayout(layout); - layout.setHorizontalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(scroll, javax.swing.GroupLayout.DEFAULT_SIZE, 290, Short.MAX_VALUE) - ); - layout.setVerticalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(scroll, javax.swing.GroupLayout.DEFAULT_SIZE, 320, Short.MAX_VALUE) - ); - }// //GEN-END:initComponents - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JScrollPane scroll; - // End of variables declaration//GEN-END:variables -} diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/ImportCSVUIWizardAction.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/ImportCSVUIWizardAction.java deleted file mode 100644 index 324a39c1e3..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/ImportCSVUIWizardAction.java +++ /dev/null @@ -1,173 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Eduardo Ramos -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.datalab.plugin.manipulators.general.ui; - -import java.awt.Component; -import java.awt.Dialog; -import java.io.File; -import java.nio.charset.Charset; -import java.text.MessageFormat; -import javax.swing.JComponent; -import org.gephi.data.attributes.api.AttributeType; -import org.gephi.datalab.api.AttributeColumnsController; -import org.gephi.datalab.api.datatables.DataTablesController; -import org.openide.DialogDisplayer; -import org.openide.WizardDescriptor; -import org.openide.util.HelpCtx; -import org.openide.util.Lookup; -import org.openide.util.NbBundle; -import org.openide.util.actions.CallableSystemAction; -import org.openide.util.lookup.ServiceProvider; - -// An example action demonstrating how the wizard could be called from within -// your code. You can copy-paste the code below wherever you need. -@ServiceProvider(service = ImportCSVUIWizardAction.class) -public final class ImportCSVUIWizardAction extends CallableSystemAction { - - public enum Mode { - - NODES_TABLE, - EDGES_TABLE - } - private WizardDescriptor.Panel[] panels; - private ImportCSVUIWizardPanel1 step1; - private ImportCSVUIWizardPanel2 step2; - private WizardDescriptor wizardDescriptor; - - public void performAction() { - wizardDescriptor = new WizardDescriptor(getPanels()); - step1.setWizardDescriptor(wizardDescriptor); - step2.setWizardDescriptor(wizardDescriptor); - // {0} will be replaced by WizardDesriptor.Panel.getComponent().getName() - wizardDescriptor.setTitleFormat(new MessageFormat("{0}")); - wizardDescriptor.setTitle(getName()); - Dialog dialog = DialogDisplayer.getDefault().createDialog(wizardDescriptor); - dialog.setVisible(true); - dialog.toFront(); - boolean cancelled = wizardDescriptor.getValue() != WizardDescriptor.FINISH_OPTION; - if (!cancelled) { - //General parameters: - File file = (File) wizardDescriptor.getProperty("file"); - Character separator = (Character) wizardDescriptor.getProperty("separator"); - Charset charset = (Charset) wizardDescriptor.getProperty("charset"); - String[] columnNames = (String[]) wizardDescriptor.getProperty("columns-names"); - AttributeType[] columnTypes = (AttributeType[]) wizardDescriptor.getProperty("columns-types"); - - //Nodes import parameters: - Boolean assignNewNodeIds = (Boolean) wizardDescriptor.getProperty("assign-new-node-ids"); - //Edges import parameters: - Boolean createNewNodes = (Boolean) wizardDescriptor.getProperty("create-new-nodes"); - - AttributeColumnsController ac = Lookup.getDefault().lookup(AttributeColumnsController.class); - switch ((Mode) wizardDescriptor.getProperty("mode")) { - case NODES_TABLE: - ac.importCSVToNodesTable(file, separator, charset, columnNames, columnTypes, assignNewNodeIds); - break; - case EDGES_TABLE: - ac.importCSVToEdgesTable(file, separator, charset, columnNames, columnTypes, createNewNodes); - break; - } - Lookup.getDefault().lookup(DataTablesController.class).refreshCurrentTable(); - } - step1.unSetup(); - step2.unSetup(); - } - - /** - * Initialize panels representing individual wizard's steps and sets - * various properties for them influencing wizard appearance. - */ - private WizardDescriptor.Panel[] getPanels() { - if (panels == null) { - panels = new WizardDescriptor.Panel[]{ - step1 = new ImportCSVUIWizardPanel1(), - step2 = new ImportCSVUIWizardPanel2() - }; - String[] steps = new String[panels.length]; - - - for (int i = 0; i - < panels.length; i++) { - Component c = panels[i].getComponent(); - // Default step name to component name of panel. Mainly useful - // for getting the name of the target chooser to appear in the - // list of steps. - steps[i] = c.getName(); - - - if (c instanceof JComponent) { // assume Swing components - JComponent jc = (JComponent) c; - // Sets step number of a component - // TODO if using org.openide.dialogs >= 7.8, can use WizardDescriptor.PROP_*: - jc.putClientProperty("WizardPanel_contentSelectedIndex", new Integer(i)); - // Sets steps names for a panel - jc.putClientProperty("WizardPanel_contentData", steps); - // Turn on subtitle creation on each step - jc.putClientProperty("WizardPanel_autoWizardStyle", Boolean.TRUE); - // Show steps on the left side with the image on the background - jc.putClientProperty("WizardPanel_contentDisplayed", Boolean.TRUE); - // Turn on numbering of all steps - jc.putClientProperty("WizardPanel_contentNumbered", Boolean.TRUE); - } - } - } - return panels; - } - - public String getName() { - return NbBundle.getMessage(ImportCSVUIWizardAction.class, "ImportCSVUIWizardAction.name"); - } - - @Override - public String iconResource() { - return null; - } - - public HelpCtx getHelpCtx() { - return HelpCtx.DEFAULT_HELP; - } - - @Override - protected boolean asynchronous() { - return false; - } -} diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/ImportCSVUIWizardPanel1.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/ImportCSVUIWizardPanel1.java deleted file mode 100644 index 10092fd9e0..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/ImportCSVUIWizardPanel1.java +++ /dev/null @@ -1,134 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. -*/ - -package org.gephi.datalab.plugin.manipulators.general.ui; - -import java.awt.Component; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Set; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; -import org.openide.WizardDescriptor; -import org.openide.util.HelpCtx; - -public class ImportCSVUIWizardPanel1 implements WizardDescriptor.Panel { - - private WizardDescriptor wizardDescriptor; - /** - * The visual component that displays this panel. If you need to access the - * component from this class, just use getComponent(). - */ - private ImportCSVUIVisualPanel1 component; - - // Get the visual component for the panel. In this template, the component - // is kept separate. This can be more efficient: if the wizard is created - // but never displayed, or not all panels are displayed, it is better to - // create only those which really need to be visible. - public Component getComponent() { - if (component == null) { - component = new ImportCSVUIVisualPanel1(this); - } - return component.getValidationPanel(); - } - - public HelpCtx getHelp() { - // Show no Help button for this panel: - return HelpCtx.DEFAULT_HELP; - // If you have context help: - // return new HelpCtx(SampleWizardPanel1.class); - } - - public boolean isValid() { - return component.isCSVValid(); - } - private final Set listeners = new HashSet(1); // or can use ChangeSupport in NB 6.0 - - public final void addChangeListener(ChangeListener l) { - synchronized (listeners) { - listeners.add(l); - } - } - - public final void removeChangeListener(ChangeListener l) { - synchronized (listeners) { - listeners.remove(l); - } - } - - protected final void fireChangeEvent() { - Iterator it; - synchronized (listeners) { - it = new HashSet(listeners).iterator(); - } - ChangeEvent ev = new ChangeEvent(this); - while (it.hasNext()) { - it.next().stateChanged(ev); - } - } - - // You can use a settings object to keep track of state. Normally the - // settings object will be the WizardDescriptor, so you can use - // WizardDescriptor.getProperty & putProperty to store information entered - // by the user. - public void readSettings(Object settings) { - component.refreshPreviewTable(); - } - - public void storeSettings(Object settings) { - wizardDescriptor.putProperty("separator", component.getSelectedSeparator()); - wizardDescriptor.putProperty("file", component.getSelectedFile()); - wizardDescriptor.putProperty("mode", component.getMode()); - wizardDescriptor.putProperty("charset", component.getSelectedCharset()); - } - - public void unSetup(){ - component.unSetup(); - } - - public WizardDescriptor getWizardDescriptor() { - return wizardDescriptor; - } - - public void setWizardDescriptor(WizardDescriptor wizardDescriptor) { - this.wizardDescriptor = wizardDescriptor; - } -} diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/ImportCSVUIWizardPanel2.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/ImportCSVUIWizardPanel2.java deleted file mode 100644 index 03244ec295..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/ImportCSVUIWizardPanel2.java +++ /dev/null @@ -1,138 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Eduardo Ramos -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.datalab.plugin.manipulators.general.ui; - -import java.awt.Component; -import java.io.File; -import java.nio.charset.Charset; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Set; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; -import org.gephi.datalab.plugin.manipulators.general.ui.ImportCSVUIWizardAction.Mode; -import org.openide.WizardDescriptor; -import org.openide.util.HelpCtx; - -public class ImportCSVUIWizardPanel2 implements WizardDescriptor.Panel { - - private WizardDescriptor wizardDescriptor; - /** - * The visual component that displays this panel. If you need to access the - * component from this class, just use getComponent(). - */ - private ImportCSVUIVisualPanel2 component; - - // Get the visual component for the panel. In this template, the component - // is kept separate. This can be more efficient: if the wizard is created - // but never displayed, or not all panels are displayed, it is better to - // create only those which really need to be visible. - public Component getComponent() { - if (component == null) { - component = new ImportCSVUIVisualPanel2(this); - } - return component; - } - - public HelpCtx getHelp() { - // Show no Help button for this panel: - return HelpCtx.DEFAULT_HELP; - // If you have context help: - // return new HelpCtx(SampleWizardPanel1.class); - } - - public boolean isValid() { - return component.isValidCSV(); - } - - private final Set listeners = new HashSet(1); // or can use ChangeSupport in NB 6.0 - - public final void addChangeListener(ChangeListener l) { - synchronized (listeners) { - listeners.add(l); - } - } - - public final void removeChangeListener(ChangeListener l) { - synchronized (listeners) { - listeners.remove(l); - } - } - - protected final void fireChangeEvent() { - Iterator it; - synchronized (listeners) { - it = new HashSet(listeners).iterator(); - } - ChangeEvent ev = new ChangeEvent(this); - while (it.hasNext()) { - it.next().stateChanged(ev); - } - } - - // You can use a settings object to keep track of state. Normally the - // settings object will be the WizardDescriptor, so you can use - // WizardDescriptor.getProperty & putProperty to store information entered - // by the user. - public void readSettings(Object settings) { - component.setSeparator((Character) wizardDescriptor.getProperty("separator")); - component.setFile((File) wizardDescriptor.getProperty("file")); - component.setMode((Mode) wizardDescriptor.getProperty("mode")); - component.setCharset((Charset) wizardDescriptor.getProperty("charset")); - component.reloadSettings(); - } - - public void unSetup() { - component.unSetup(); - } - - public void storeSettings(Object settings) { - wizardDescriptor.putProperty("columns-names", component.getColumnsToImport()); - wizardDescriptor.putProperty("columns-types", component.getColumnsToImportTypes()); - wizardDescriptor.putProperty("assign-new-node-ids", component.getAssignNewNodeIds()); - wizardDescriptor.putProperty("create-new-nodes", component.getCreateNewNodes()); - } - - public void setWizardDescriptor(WizardDescriptor wizardDescriptor) { - this.wizardDescriptor = wizardDescriptor; - } -} diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/ManageColumnEstimatorsUI.form b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/ManageColumnEstimatorsUI.form new file mode 100644 index 0000000000..7e35b2c2f6 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/ManageColumnEstimatorsUI.form @@ -0,0 +1,63 @@ + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/ManageColumnEstimatorsUI.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/ManageColumnEstimatorsUI.java new file mode 100644 index 0000000000..cc1b79d7cb --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/ManageColumnEstimatorsUI.java @@ -0,0 +1,252 @@ +/* +Copyright 2008-2015 Gephi +Authors : Eduardo Ramos +Website : http://www.gephi.org + +This file is part of Gephi. + +DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + +Copyright 2011 Gephi Consortium. All rights reserved. + +The contents of this file are subject to the terms of either the GNU +General Public License Version 3 only ("GPL") or the Common +Development and Distribution License("CDDL") (collectively, the +"License"). You may not use this file except in compliance with the +License. You can obtain a copy of the License at +http://gephi.org/about/legal/license-notice/ +or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the +specific language governing permissions and limitations under the +License. When distributing the software, include this License Header +Notice in each file and include the License files at +/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the +License Header, with the fields enclosed by brackets [] replaced by +your own identifying information: +"Portions Copyrighted [year] [name of copyright owner]" + +If you wish your version of this file to be governed by only the CDDL +or only the GPL Version 3, indicate your decision by adding +"[Contributor] elects to include this software in this distribution +under the [CDDL or GPL Version 3] license." If you do not indicate a +single choice of license, a recipient has the option to distribute +your version of this file under either the CDDL, the GPL Version 3 or +to extend the choice of license to its licensees as provided above. +However, if you add GPL Version 3 code and therefore, elected the GPL +Version 3 license, then the option applies only if the new code is +made subject to such option by the copyright holder. + +Contributor(s): + +Portions Copyrighted 2011 Gephi Consortium. + */ + +package org.gephi.datalab.plugin.manipulators.general.ui; + +import java.util.List; +import java.util.MissingResourceException; +import javax.swing.JComboBox; +import javax.swing.JLabel; +import javax.swing.JPanel; +import net.miginfocom.swing.MigLayout; +import org.gephi.datalab.plugin.manipulators.general.ManageColumnEstimators; +import org.gephi.datalab.spi.DialogControls; +import org.gephi.datalab.spi.Manipulator; +import org.gephi.datalab.spi.ManipulatorUI; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Estimator; +import org.gephi.graph.api.types.TimeMap; +import org.openide.util.NbBundle; + +/** + * UI for ManageColumnEstimators. + * + * @author Eduardo Ramos + */ +public class ManageColumnEstimatorsUI extends javax.swing.JPanel implements ManipulatorUI { + + private ManageColumnEstimators manipulator; + private ColumnEstimator[] columnsEstimators; + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JPanel contentPanel; + private javax.swing.JScrollPane contentScrollPane; + private javax.swing.JLabel descriptionLabel; + // End of variables declaration//GEN-END:variables + + /** + * Creates new form GeneralChooseColumnsUI + */ + public ManageColumnEstimatorsUI() { + initComponents(); + } + + @Override + public void setup(Manipulator m, DialogControls dialogControls) { + this.manipulator = (ManageColumnEstimators) m; + descriptionLabel.setText(manipulator.getDescription()); + refreshColumns(); + } + + @Override + public void unSetup() { + Column[] columns = new Column[columnsEstimators.length]; + Estimator[] estimators = new Estimator[columnsEstimators.length]; + for (int i = 0; i < columnsEstimators.length; i++) { + columns[i] = columnsEstimators[i].column; + estimators[i] = columnsEstimators[i].getEstimator(); + } + + manipulator.setup(columns, estimators); + } + + @Override + public String getDisplayName() { + return manipulator.getName(); + } + + @Override + public JPanel getSettingsPanel() { + return this; + } + + @Override + public boolean isModal() { + return true; + } + + private void refreshColumns() { + List columns = manipulator.getColumns(); + columnsEstimators = new ColumnEstimator[columns.size()]; + contentPanel.removeAll(); + contentPanel.setLayout(new MigLayout("", "[pref!]")); + for (int i = 0; i < columnsEstimators.length; i++) { + columnsEstimators[i] = new ColumnEstimator(columns.get(i)); + contentPanel.add(columnsEstimators[i].label, "wrap"); + contentPanel.add(columnsEstimators[i].comboBox, "wrap"); + } + contentPanel.revalidate(); + contentPanel.repaint(); + } + + /** + * This method is called from within the constructor to initialize the form. WARNING: Do NOT modify this code. The content of this method is always regenerated by the Form Editor. + */ + @SuppressWarnings("unchecked") + // //GEN-BEGIN:initComponents + private void initComponents() { + + contentScrollPane = new javax.swing.JScrollPane(); + contentPanel = new javax.swing.JPanel(); + descriptionLabel = new javax.swing.JLabel(); + + contentPanel.setLayout(new java.awt.GridLayout(1, 0)); + contentScrollPane.setViewportView(contentPanel); + + descriptionLabel.setText(null); + + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); + this.setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(descriptionLabel, javax.swing.GroupLayout.Alignment.LEADING, + javax.swing.GroupLayout.DEFAULT_SIZE, 319, Short.MAX_VALUE) + .addComponent(contentScrollPane, javax.swing.GroupLayout.Alignment.LEADING, + javax.swing.GroupLayout.DEFAULT_SIZE, 319, Short.MAX_VALUE)) + .addContainerGap()) + ); + layout.setVerticalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(descriptionLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 26, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(contentScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 220, Short.MAX_VALUE) + .addContainerGap()) + ); + }// //GEN-END:initComponents + + private static class EstimatorWrapper { + + private final Estimator estimator; + + public EstimatorWrapper(Estimator estimator) { + this.estimator = estimator; + } + + @Override + public String toString() { + if (estimator == null) { + return "---"; + } + + try { + return NbBundle.getMessage(ManageColumnEstimatorsUI.class, + "ManageColumnEstimatorsUI.estimator." + estimator.name()); + } catch (MissingResourceException missingResourceException) { + return estimator.name();//In case of new estimators without translation + } + } + + @Override + public int hashCode() { + int hash = 7; + hash = 37 * hash + (this.estimator != null ? this.estimator.hashCode() : 0); + return hash; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final EstimatorWrapper other = (EstimatorWrapper) obj; + return this.estimator == other.estimator; + } + } + + private static class ColumnEstimator { + + private final JLabel label; + private final JComboBox comboBox; + private final Column column; + + public ColumnEstimator(Column column) { + this.column = column; + this.comboBox = new JComboBox(); + this.label = new JLabel(column.getTitle()); + + initAvailableEstimators(); + Estimator currentEstimator = column.getEstimator(); + comboBox.setSelectedItem(new EstimatorWrapper(currentEstimator)); + } + + private void initAvailableEstimators() { + Class type = column.getTypeClass(); + try { + TimeMap dummy = type.newInstance(); + for (Estimator estimator : Estimator.values()) { + if (dummy.isSupported(estimator)) { + comboBox.addItem(new EstimatorWrapper(estimator)); + } + } + } catch (InstantiationException ex) { + throw new RuntimeException(ex); + } catch (IllegalAccessException ex) { + throw new RuntimeException(ex); + } + } + + public Estimator getEstimator() { + return ((EstimatorWrapper) comboBox.getSelectedItem()).estimator; + } + } +} diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/MergeNodeDuplicatesUI.form b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/MergeNodeDuplicatesUI.form index 4dd2656d3e..4d8177666b 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/MergeNodeDuplicatesUI.form +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/MergeNodeDuplicatesUI.form @@ -1,4 +1,4 @@ - +
    @@ -16,16 +16,16 @@ - - + + - - - + + + diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/MergeNodeDuplicatesUI.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/MergeNodeDuplicatesUI.java index 090c4e2e88..9f148894cc 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/MergeNodeDuplicatesUI.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/MergeNodeDuplicatesUI.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.general.ui; import java.awt.event.ActionEvent; @@ -54,7 +55,6 @@ Development and Distribution License("CDDL") (collectively, the import javax.swing.JLabel; import javax.swing.JPanel; import net.miginfocom.swing.MigLayout; -import org.gephi.data.attributes.api.AttributeColumn; import org.gephi.datalab.api.AttributeColumnsController; import org.gephi.datalab.api.DataLaboratoryHelper; import org.gephi.datalab.plugin.manipulators.general.MergeNodeDuplicates; @@ -62,7 +62,8 @@ Development and Distribution License("CDDL") (collectively, the import org.gephi.datalab.spi.Manipulator; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.datalab.spi.rows.merge.AttributeRowsMergeStrategy; -import org.gephi.graph.api.Attributes; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Element; import org.gephi.graph.api.Node; import org.gephi.ui.components.richtooltip.RichTooltip; import org.openide.util.ImageUtilities; @@ -71,28 +72,38 @@ Development and Distribution License("CDDL") (collectively, the /** * UI for MergeNodeDuplicates PluginGeneralActionsManipulator - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public final class MergeNodeDuplicatesUI extends JPanel implements ManipulatorUI { - private static final ImageIcon CONFIG_BUTTONS_ICON = ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/gear.png", true); - private static final ImageIcon INFO_LABELS_ICON = ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/information.png", true); + private static final ImageIcon CONFIG_BUTTONS_ICON = + ImageUtilities.loadImageIcon("DataLaboratoryPlugin/gear.svg", false); + private static final ImageIcon INFO_LABELS_ICON = + ImageUtilities.loadImageIcon("DataLaboratoryPlugin/information.png", false); private MergeNodeDuplicates manipulator; private DialogControls dialogControls; - private AttributeColumn[] columns; + private Column[] columns; private List> duplicateGroups; private JCheckBox deleteMergedNodesCheckBox; private JCheckBox caseSensitiveCheckBox; private JComboBox baseColumnComboBox; - private Attributes[] rows; + private Element[] rows; private StrategyComboBox[] strategiesComboBoxes; private StrategyConfigurationButton[] strategiesConfigurationButtons; + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JScrollPane scroll; + private javax.swing.JScrollPane scrollStrategies; + // End of variables declaration//GEN-END:variables - /** Creates new form MergeNodeDuplicatesUI */ + /** + * Creates new form MergeNodeDuplicatesUI + */ public MergeNodeDuplicatesUI() { initComponents(); } + @Override public void setup(Manipulator m, DialogControls dialogControls) { manipulator = (MergeNodeDuplicates) m; this.dialogControls = dialogControls; @@ -100,34 +111,41 @@ public void setup(Manipulator m, DialogControls dialogControls) { loadSettings(); } + @Override public void unSetup() { manipulator.setDeleteMergedNodes(deleteMergedNodesCheckBox.isSelected()); manipulator.setCaseSensitive(caseSensitiveCheckBox.isSelected()); if (duplicateGroups != null && duplicateGroups.size() > 0) { AttributeRowsMergeStrategy[] chosenStrategies = new AttributeRowsMergeStrategy[strategiesComboBoxes.length]; for (int i = 0; i < strategiesComboBoxes.length; i++) { - chosenStrategies[i] = strategiesComboBoxes[i].getSelectedItem() != null ? ((StrategyWrapper) strategiesComboBoxes[i].getSelectedItem()).getStrategy() : null; + chosenStrategies[i] = strategiesComboBoxes[i].getSelectedItem() != null ? + ((StrategyWrapper) strategiesComboBoxes[i].getSelectedItem()).getStrategy() : null; } manipulator.setMergeStrategies(chosenStrategies); manipulator.setDuplicateGroups(duplicateGroups); } } + @Override public String getDisplayName() { return manipulator.getName(); } + @Override public JPanel getSettingsPanel() { return this; } + @Override public boolean isModal() { return true; } private void calculateDuplicates() { if (baseColumnComboBox.getSelectedIndex() != -1) { - duplicateGroups = Lookup.getDefault().lookup(AttributeColumnsController.class).detectNodeDuplicatesByColumn(columns[baseColumnComboBox.getSelectedIndex()], caseSensitiveCheckBox.isSelected()); + duplicateGroups = Lookup.getDefault().lookup(AttributeColumnsController.class) + .detectNodeDuplicatesByColumn(columns[baseColumnComboBox.getSelectedIndex()], + caseSensitiveCheckBox.isSelected()); } } @@ -151,13 +169,16 @@ private void loadColumnsStrategies() { JPanel strategiesPanel = new JPanel(); strategiesPanel.setLayout(new MigLayout("fillx")); if (duplicateGroups != null && duplicateGroups.size() > 0) { - strategiesPanel.add(new JLabel(NbBundle.getMessage(MergeNodeDuplicatesUI.class, "MergeNodeDuplicatesUI.duplicateGroupsNumber",duplicateGroups.size())),"wrap 15px"); - - List nodes = duplicateGroups.get(0);//Use first group of duplicated nodes to set strategies for all of them + strategiesPanel.add(new JLabel(NbBundle + .getMessage(MergeNodeDuplicatesUI.class, "MergeNodeDuplicatesUI.duplicateGroupsNumber", + duplicateGroups.size())), "wrap 15px"); + + List nodes = + duplicateGroups.get(0);//Use first group of duplicated nodes to set strategies for all of them //Prepare node rows: - rows = new Attributes[nodes.size()]; + rows = new Element[nodes.size()]; for (int i = 0; i < nodes.size(); i++) { - rows[i] = nodes.get(0).getAttributes(); + rows[i] = nodes.get(i); } strategiesConfigurationButtons = new StrategyConfigurationButton[columns.length]; @@ -191,9 +212,10 @@ private void loadColumnsStrategies() { scrollStrategies.setViewportView(strategiesPanel); } - private List getColumnAvailableStrategies(AttributeColumn column) { - ArrayList availableStrategies = new ArrayList(); - for (AttributeRowsMergeStrategy strategy : DataLaboratoryHelper.getDefault().getAttributeRowsMergeStrategies()) { + private List getColumnAvailableStrategies(Column column) { + ArrayList availableStrategies = new ArrayList<>(); + for (AttributeRowsMergeStrategy strategy : DataLaboratoryHelper.getDefault() + .getAttributeRowsMergeStrategies()) { strategy.setup(rows, rows[0], column); if (strategy.canExecute()) { availableStrategies.add(strategy); @@ -210,17 +232,19 @@ private void loadDescription(JPanel settingsPanel) { private void loadBaseColumn(JPanel settingsPanel) { baseColumnComboBox = new JComboBox(); - for (AttributeColumn column : columns) { + for (Column column : columns) { baseColumnComboBox.addItem(column.getTitle()); } settingsPanel.add(new JLabel(getMessage("MergeNodeDuplicatesUI.baseColumnText")), "split 2"); settingsPanel.add(baseColumnComboBox, "growx, wrap"); - caseSensitiveCheckBox = new JCheckBox(getMessage("MergeNodeDuplicatesUI.caseSensitiveText"), manipulator.isCaseSensitive()); + caseSensitiveCheckBox = + new JCheckBox(getMessage("MergeNodeDuplicatesUI.caseSensitiveText"), manipulator.isCaseSensitive()); settingsPanel.add(caseSensitiveCheckBox, "wrap"); //Reload duplicates on parameteres of detection change: ActionListener listener = new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { refreshDuplicatesAndStrategies(); } @@ -230,7 +254,8 @@ public void actionPerformed(ActionEvent e) { } private void loadDeleteMergedNodesCheckBox(JPanel settingsPanel) { - deleteMergedNodesCheckBox = new JCheckBox(getMessage("MergeNodeDuplicatesUI.deleteMergedNodesText"), manipulator.isDeleteMergedNodes()); + deleteMergedNodesCheckBox = + new JCheckBox(getMessage("MergeNodeDuplicatesUI.deleteMergedNodesText"), manipulator.isDeleteMergedNodes()); settingsPanel.add(deleteMergedNodesCheckBox, "wrap"); } @@ -248,9 +273,38 @@ private AttributeRowsMergeStrategy getStrategy(int strategyIndex) { return null; } + /** + * This method is called from within the constructor to + * initialize the form. + * WARNING: Do NOT modify this code. The content of this method is + * always regenerated by the Form Editor. + */ + // //GEN-BEGIN:initComponents + private void initComponents() { + + scrollStrategies = new javax.swing.JScrollPane(); + scroll = new javax.swing.JScrollPane(); + + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); + this.setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(scrollStrategies, javax.swing.GroupLayout.DEFAULT_SIZE, 782, Short.MAX_VALUE) + .addComponent(scroll, javax.swing.GroupLayout.DEFAULT_SIZE, 782, Short.MAX_VALUE) + ); + layout.setVerticalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addComponent(scroll, javax.swing.GroupLayout.PREFERRED_SIZE, 192, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(scrollStrategies, javax.swing.GroupLayout.DEFAULT_SIZE, 308, Short.MAX_VALUE)) + ); + }// //GEN-END:initComponents + class StrategyConfigurationButton extends JButton implements ActionListener { - private int strategyIndex; + private final int strategyIndex; public StrategyConfigurationButton(int strategyIndex) { this.strategyIndex = strategyIndex; @@ -264,6 +318,7 @@ public void refreshEnabledState() { setEnabled(strategy != null && strategy.getUI() != null);//Has strategy and the strategy has UI } + @Override public void actionPerformed(ActionEvent e) { DataLaboratoryHelper.getDefault().showAttributeRowsMergeStrategyUIDialog(getStrategy(strategyIndex)); } @@ -271,8 +326,8 @@ public void actionPerformed(ActionEvent e) { class StrategyComboBox extends JComboBox implements ActionListener { - private StrategyConfigurationButton button; - private StrategyInfoLabel infoLabel; + private final StrategyConfigurationButton button; + private final StrategyInfoLabel infoLabel; public StrategyComboBox(StrategyConfigurationButton button, StrategyInfoLabel infoLabel) { this.button = button; @@ -293,7 +348,7 @@ public void actionPerformed(ActionEvent e) { class StrategyInfoLabel extends JLabel { - private int strategyIndex; + private final int strategyIndex; public StrategyInfoLabel(int strategyIndex) { this.strategyIndex = strategyIndex; @@ -347,7 +402,7 @@ private RichTooltip buildTooltip(AttributeRowsMergeStrategy strategy) { class StrategyWrapper { - private AttributeRowsMergeStrategy strategy; + private final AttributeRowsMergeStrategy strategy; public StrategyWrapper(AttributeRowsMergeStrategy strategy) { this.strategy = strategy; @@ -362,35 +417,4 @@ public AttributeRowsMergeStrategy getStrategy() { return strategy; } } - - /** This method is called from within the constructor to - * initialize the form. - * WARNING: Do NOT modify this code. The content of this method is - * always regenerated by the Form Editor. - */ - // //GEN-BEGIN:initComponents - private void initComponents() { - - scrollStrategies = new javax.swing.JScrollPane(); - scroll = new javax.swing.JScrollPane(); - - javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); - this.setLayout(layout); - layout.setHorizontalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(scrollStrategies, javax.swing.GroupLayout.DEFAULT_SIZE, 489, Short.MAX_VALUE) - .addComponent(scroll, javax.swing.GroupLayout.DEFAULT_SIZE, 489, Short.MAX_VALUE) - ); - layout.setVerticalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addComponent(scroll, javax.swing.GroupLayout.PREFERRED_SIZE, 159, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(scrollStrategies, javax.swing.GroupLayout.DEFAULT_SIZE, 199, Short.MAX_VALUE)) - ); - }// //GEN-END:initComponents - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JScrollPane scroll; - private javax.swing.JScrollPane scrollStrategies; - // End of variables declaration//GEN-END:variables } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/SearchReplaceUI.form b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/SearchReplaceUI.form index f265ac65eb..af1b9fb990 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/SearchReplaceUI.form +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/SearchReplaceUI.form @@ -1,4 +1,4 @@ - + @@ -20,8 +20,9 @@ + - + @@ -58,15 +59,12 @@ + + + + + - - - - - - - - @@ -221,6 +219,9 @@ + + + diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/SearchReplaceUI.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/SearchReplaceUI.java index 3b9c6b47f8..b1cd53d057 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/SearchReplaceUI.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/general/ui/SearchReplaceUI.java @@ -39,24 +39,29 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.general.ui; import java.awt.Color; +import java.awt.event.KeyEvent; +import java.time.ZoneId; import java.util.regex.Pattern; import java.util.regex.PatternSyntaxException; import javax.swing.JOptionPane; +import javax.swing.UIManager; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeController; -import org.gephi.data.attributes.api.AttributeTable; -import org.gephi.datalab.api.datatables.DataTablesController; import org.gephi.datalab.api.SearchReplaceController; import org.gephi.datalab.api.SearchReplaceController.SearchOptions; import org.gephi.datalab.api.SearchReplaceController.SearchResult; +import org.gephi.datalab.api.datatables.DataTablesController; +import org.gephi.graph.api.AttributeUtils; +import org.gephi.graph.api.Column; import org.gephi.graph.api.Edge; import org.gephi.graph.api.GraphController; import org.gephi.graph.api.Node; +import org.gephi.graph.api.Table; +import org.gephi.graph.api.TimeFormat; import org.gephi.utils.HTMLEscape; import org.openide.util.Lookup; import org.openide.util.NbBundle; @@ -64,26 +69,45 @@ Development and Distribution License("CDDL") (collectively, the /** * Special UI for SearchReplace GeneralActionsManipulator - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ @ServiceProvider(service = SearchReplaceUI.class) public final class SearchReplaceUI extends javax.swing.JPanel { - public enum Mode { - - NODES_TABLE, - EDGES_TABLE - } private static final Color invalidRegexColor = new Color(254, 150, 150); private Mode mode = Mode.NODES_TABLE; - private SearchReplaceController searchReplaceController; - private DataTablesController dataTablesController; + private final SearchReplaceController searchReplaceController; + private final DataTablesController dataTablesController; private SearchOptions searchOptions; private SearchResult searchResult = null; private Pattern regexPattern; private boolean active = false; + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JCheckBox caseSensitiveCheckBox; + private javax.swing.JComboBox columnsToSearchComboBox; + private javax.swing.JLabel columnsToSearchLabel; + private javax.swing.JButton findNextButton; + private javax.swing.JSeparator jSeparator1; + private javax.swing.JCheckBox matchWholeValueCheckBox; + private javax.swing.JRadioButton normalSearchModeRadioButton; + private javax.swing.JCheckBox regexReplaceCheckBox; + private javax.swing.JRadioButton regexSearchModeRadioButton; + private javax.swing.JButton replaceAllButton; + private javax.swing.JButton replaceButton; + private javax.swing.JLabel replaceLabel; + private javax.swing.JTextField replaceText; + private javax.swing.JLabel resultLabel; + private javax.swing.JTextPane resultText; + private javax.swing.JScrollPane scroll; + private javax.swing.JLabel searchLabel; + private javax.swing.ButtonGroup searchModeButtonGroup; + private javax.swing.JTextField searchText; + // End of variables declaration//GEN-END:variables - /** Creates new form SearchReplaceUI */ + /** + * Creates new form SearchReplaceUI + */ public SearchReplaceUI() { initComponents(); @@ -94,14 +118,17 @@ public SearchReplaceUI() { searchText.getDocument().addDocumentListener(new DocumentListener() { + @Override public void insertUpdate(DocumentEvent e) { refreshSearchOptions(); } + @Override public void removeUpdate(DocumentEvent e) { refreshSearchOptions(); } + @Override public void changedUpdate(DocumentEvent e) { refreshSearchOptions(); } @@ -126,7 +153,8 @@ public void refreshSearchOptions() { if (columnsToSearchComboBox.getSelectedIndex() <= 0) { searchOptions.setColumnsToSearch(new int[0]); } else { - searchOptions.setColumnsToSearch(new int[]{((ColumnWrapper) columnsToSearchComboBox.getSelectedItem()).column.getIndex()}); + searchOptions.setColumnsToSearch( + new int[] {((ColumnWrapper) columnsToSearchComboBox.getSelectedItem()).column.getIndex()}); } refreshControls(); } @@ -135,32 +163,34 @@ private void createSearchOptions() { boolean onlyVisibleElements = Lookup.getDefault().lookup(DataTablesController.class).isShowOnlyVisible(); searchResult = null; columnsToSearchComboBox.removeAllItems(); - AttributeTable table; + Table table; if (mode == Mode.NODES_TABLE) { Node[] nodes; if (onlyVisibleElements) { //Search on visible nodes: - nodes = Lookup.getDefault().lookup(GraphController.class).getModel().getHierarchicalGraphVisible().getNodesTree().toArray(); + nodes = Lookup.getDefault().lookup(GraphController.class).getGraphModel().getGraphVisible().getNodes() + .toArray(); } else { nodes = new Node[0];//Search on all nodes } searchOptions = new SearchOptions(nodes, null); - table = Lookup.getDefault().lookup(AttributeController.class).getModel().getNodeTable(); + table = Lookup.getDefault().lookup(GraphController.class).getGraphModel().getNodeTable(); } else { Edge[] edges; if (onlyVisibleElements) { //Search on visible edges: - edges = Lookup.getDefault().lookup(GraphController.class).getModel().getHierarchicalGraphVisible().getEdges().toArray(); + edges = Lookup.getDefault().lookup(GraphController.class).getGraphModel().getGraphVisible().getEdges() + .toArray(); } else { edges = new Edge[0];//Search on all edges } searchOptions = new SearchOptions(edges, null); - table = Lookup.getDefault().lookup(AttributeController.class).getModel().getEdgeTable(); + table = Lookup.getDefault().lookup(GraphController.class).getGraphModel().getEdgeTable(); } //Fill possible columns to search (first value is all columns): columnsToSearchComboBox.addItem(NbBundle.getMessage(SearchReplaceUI.class, "SearchReplaceUI.allColumns")); - for (AttributeColumn c : table.getColumns()) { + for (Column c : table) { columnsToSearchComboBox.addItem(new ColumnWrapper(c)); } } @@ -182,7 +212,7 @@ private void refreshRegexPattern() { regexPattern = Pattern.compile(text); } searchOptions.setRegexPattern(regexPattern); - searchText.setBackground(Color.WHITE); + searchText.setBackground(UIManager.getColor("TextField.background")); } catch (PatternSyntaxException ex) { searchText.setBackground(invalidRegexColor); regexPattern = null; @@ -196,7 +226,7 @@ private void refreshControls() { } else { boolean canReplace = searchReplaceController.canReplace(searchResult); replaceButton.setEnabled(canReplace); - replaceAllButton.setEnabled(columnsToSearchComboBox.getSelectedIndex() > 0 ? canReplace : true);//Disable replace all when the current search result cannot be replaced and + replaceAllButton.setEnabled(columnsToSearchComboBox.getSelectedIndex() <= 0 || canReplace);//Disable replace all when the current search result cannot be replaced and } if (regexPattern == null) { @@ -210,39 +240,50 @@ private void refreshControls() { private void showSearchResult() { if (searchResult != null) { + Table table; Object value; if (mode == Mode.NODES_TABLE) { Node node = searchResult.getFoundNode(); - dataTablesController.setNodeTableSelection(new Node[]{node}); + dataTablesController.setNodeTableSelection(new Node[] {node}); if (!dataTablesController.isNodeTableMode()) { dataTablesController.selectNodesTable(); } - value = node.getNodeData().getAttributes().getValue(searchResult.getFoundColumnIndex()); + + table = Lookup.getDefault().lookup(GraphController.class).getGraphModel().getNodeTable(); + value = node.getAttribute(table.getColumn(searchResult.getFoundColumnIndex())); } else { Edge edge = searchResult.getFoundEdge(); - dataTablesController.setEdgeTableSelection(new Edge[]{edge}); + dataTablesController.setEdgeTableSelection(new Edge[] {edge}); if (!dataTablesController.isEdgeTableMode()) { dataTablesController.selectEdgesTable(); } - value = edge.getEdgeData().getAttributes().getValue(searchResult.getFoundColumnIndex()); + table = Lookup.getDefault().lookup(GraphController.class).getGraphModel().getEdgeTable(); + value = edge.getAttribute(table.getColumn(searchResult.getFoundColumnIndex())); } + TimeFormat timeFormat = table.getGraph().getModel().getTimeFormat(); + ZoneId timeZone = table.getGraph().getModel().getTimeZone(); + String columnName; if (mode == Mode.NODES_TABLE) { - columnName = Lookup.getDefault().lookup(AttributeController.class).getModel().getNodeTable().getColumn(searchResult.getFoundColumnIndex()).getTitle(); + columnName = Lookup.getDefault().lookup(GraphController.class).getGraphModel().getNodeTable() + .getColumn(searchResult.getFoundColumnIndex()).getTitle(); } else { - columnName = Lookup.getDefault().lookup(AttributeController.class).getModel().getEdgeTable().getColumn(searchResult.getFoundColumnIndex()).getTitle(); + columnName = Lookup.getDefault().lookup(GraphController.class).getGraphModel().getEdgeTable() + .getColumn(searchResult.getFoundColumnIndex()).getTitle(); } StringBuilder sb = new StringBuilder(); sb.append(""); - sb.append(NbBundle.getMessage(SearchReplaceUI.class, "SearchReplaceUI.column", HTMLEscape.stringToHTMLString(columnName))); + sb.append(NbBundle.getMessage(SearchReplaceUI.class, "SearchReplaceUI.column", + HTMLEscape.stringToHTMLString(columnName))); sb.append("
    "); if (value != null) { - String text = value.toString(); + String text = AttributeUtils.print(value, timeFormat, timeZone); sb.append(HTMLEscape.stringToHTMLString(text.substring(0, searchResult.getStart()))); sb.append(""); - sb.append(HTMLEscape.stringToHTMLString(text.substring(searchResult.getStart(), searchResult.getEnd()))); + sb.append( + HTMLEscape.stringToHTMLString(text.substring(searchResult.getStart(), searchResult.getEnd()))); sb.append(""); sb.append(HTMLEscape.stringToHTMLString(text.substring(searchResult.getEnd()))); } else { @@ -251,13 +292,23 @@ private void showSearchResult() { sb.append(""); resultText.setText(sb.toString()); } else { - JOptionPane.showMessageDialog(null, NbBundle.getMessage(SearchReplaceUI.class, "SearchReplaceUI.not.found", searchText.getText())); + JOptionPane.showMessageDialog(null, + NbBundle.getMessage(SearchReplaceUI.class, "SearchReplaceUI.not.found", searchText.getText())); resultText.setText(""); } } + private void nextResult() { + searchResult = searchReplaceController.findNext(searchOptions); + refreshSearchOptions(); + showSearchResult(); + } + private void showRegexReplaceError() { - JOptionPane.showMessageDialog(null, NbBundle.getMessage(SearchReplaceUI.class, "SearchReplaceUI.regexReplacementError"), NbBundle.getMessage(SearchReplaceUI.class, "SearchReplaceUI.dialog.title.error"), JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(null, + NbBundle.getMessage(SearchReplaceUI.class, "SearchReplaceUI.regexReplacementError"), + NbBundle.getMessage(SearchReplaceUI.class, "SearchReplaceUI.dialog.title.error"), + JOptionPane.ERROR_MESSAGE); } public boolean isActive() { @@ -268,24 +319,8 @@ public void setActive(boolean active) { this.active = active; } - class ColumnWrapper { - - AttributeColumn column; - - public ColumnWrapper(AttributeColumn column) { - this.column = column; - } - - @Override - public String toString() { - return column.getTitle(); - } - } - - /** This method is called from within the constructor to - * initialize the form. - * WARNING: Do NOT modify this code. The content of this method is - * always regenerated by the Form Editor. + /** + * This method is called from within the constructor to initialize the form. WARNING: Do NOT modify this code. The content of this method is always regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents @@ -311,12 +346,16 @@ private void initComponents() { columnsToSearchLabel = new javax.swing.JLabel(); columnsToSearchComboBox = new javax.swing.JComboBox(); - searchLabel.setText(org.openide.util.NbBundle.getMessage(SearchReplaceUI.class, "SearchReplaceUI.searchLabel.text")); // NOI18N + searchLabel.setText( + org.openide.util.NbBundle.getMessage(SearchReplaceUI.class, "SearchReplaceUI.searchLabel.text")); // NOI18N - replaceLabel.setText(org.openide.util.NbBundle.getMessage(SearchReplaceUI.class, "SearchReplaceUI.replaceLabel.text")); // NOI18N + replaceLabel.setText( + org.openide.util.NbBundle.getMessage(SearchReplaceUI.class, "SearchReplaceUI.replaceLabel.text")); // NOI18N - matchWholeValueCheckBox.setText(org.openide.util.NbBundle.getMessage(SearchReplaceUI.class, "SearchReplaceUI.matchWholeValueCheckBox.text")); // NOI18N + matchWholeValueCheckBox.setText(org.openide.util.NbBundle + .getMessage(SearchReplaceUI.class, "SearchReplaceUI.matchWholeValueCheckBox.text")); // NOI18N matchWholeValueCheckBox.addItemListener(new java.awt.event.ItemListener() { + @Override public void itemStateChanged(java.awt.event.ItemEvent evt) { matchWholeValueCheckBoxItemStateChanged(evt); } @@ -324,69 +363,95 @@ public void itemStateChanged(java.awt.event.ItemEvent evt) { searchModeButtonGroup.add(normalSearchModeRadioButton); normalSearchModeRadioButton.setSelected(true); - normalSearchModeRadioButton.setText(org.openide.util.NbBundle.getMessage(SearchReplaceUI.class, "SearchReplaceUI.normalSearchModeRadioButton.text")); // NOI18N + normalSearchModeRadioButton.setText(org.openide.util.NbBundle + .getMessage(SearchReplaceUI.class, "SearchReplaceUI.normalSearchModeRadioButton.text")); // NOI18N normalSearchModeRadioButton.addItemListener(new java.awt.event.ItemListener() { + @Override public void itemStateChanged(java.awt.event.ItemEvent evt) { normalSearchModeRadioButtonItemStateChanged(evt); } }); searchModeButtonGroup.add(regexSearchModeRadioButton); - regexSearchModeRadioButton.setText(org.openide.util.NbBundle.getMessage(SearchReplaceUI.class, "SearchReplaceUI.regexSearchModeRadioButton.text")); // NOI18N + regexSearchModeRadioButton.setText(org.openide.util.NbBundle + .getMessage(SearchReplaceUI.class, "SearchReplaceUI.regexSearchModeRadioButton.text")); // NOI18N regexSearchModeRadioButton.addItemListener(new java.awt.event.ItemListener() { + @Override public void itemStateChanged(java.awt.event.ItemEvent evt) { regexSearchModeRadioButtonItemStateChanged(evt); } }); - caseSensitiveCheckBox.setText(org.openide.util.NbBundle.getMessage(SearchReplaceUI.class, "SearchReplaceUI.caseSensitiveCheckBox.text")); // NOI18N + caseSensitiveCheckBox.setText(org.openide.util.NbBundle + .getMessage(SearchReplaceUI.class, "SearchReplaceUI.caseSensitiveCheckBox.text")); // NOI18N caseSensitiveCheckBox.addItemListener(new java.awt.event.ItemListener() { + @Override public void itemStateChanged(java.awt.event.ItemEvent evt) { caseSensitiveCheckBoxItemStateChanged(evt); } }); - findNextButton.setText(org.openide.util.NbBundle.getMessage(SearchReplaceUI.class, "SearchReplaceUI.findNextButton.text")); // NOI18N + findNextButton.setText(org.openide.util.NbBundle + .getMessage(SearchReplaceUI.class, "SearchReplaceUI.findNextButton.text")); // NOI18N findNextButton.addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(java.awt.event.ActionEvent evt) { findNextButtonActionPerformed(evt); } }); - replaceButton.setText(org.openide.util.NbBundle.getMessage(SearchReplaceUI.class, "SearchReplaceUI.replaceButton.text")); // NOI18N + replaceButton.setText(org.openide.util.NbBundle + .getMessage(SearchReplaceUI.class, "SearchReplaceUI.replaceButton.text")); // NOI18N replaceButton.addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(java.awt.event.ActionEvent evt) { replaceButtonActionPerformed(evt); } }); - replaceAllButton.setText(org.openide.util.NbBundle.getMessage(SearchReplaceUI.class, "SearchReplaceUI.replaceAllButton.text")); // NOI18N + replaceAllButton.setText(org.openide.util.NbBundle + .getMessage(SearchReplaceUI.class, "SearchReplaceUI.replaceAllButton.text")); // NOI18N replaceAllButton.addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(java.awt.event.ActionEvent evt) { replaceAllButtonActionPerformed(evt); } }); - searchText.setText(org.openide.util.NbBundle.getMessage(SearchReplaceUI.class, "SearchReplaceUI.searchText.text")); // NOI18N + searchText.setText( + org.openide.util.NbBundle.getMessage(SearchReplaceUI.class, "SearchReplaceUI.searchText.text")); // NOI18N + searchText.addKeyListener(new java.awt.event.KeyAdapter() { + @Override + public void keyPressed(java.awt.event.KeyEvent evt) { + searchTextKeyPressed(evt); + } + }); - replaceText.setText(org.openide.util.NbBundle.getMessage(SearchReplaceUI.class, "SearchReplaceUI.replaceText.text")); // NOI18N + replaceText.setText( + org.openide.util.NbBundle.getMessage(SearchReplaceUI.class, "SearchReplaceUI.replaceText.text")); // NOI18N - resultText.setContentType(org.openide.util.NbBundle.getMessage(SearchReplaceUI.class, "SearchReplaceUI.resultText.contentType")); // NOI18N + resultText.setContentType(org.openide.util.NbBundle + .getMessage(SearchReplaceUI.class, "SearchReplaceUI.resultText.contentType")); // NOI18N resultText.setEditable(false); scroll.setViewportView(resultText); - resultLabel.setText(org.openide.util.NbBundle.getMessage(SearchReplaceUI.class, "SearchReplaceUI.resultLabel.text")); // NOI18N + resultLabel.setText( + org.openide.util.NbBundle.getMessage(SearchReplaceUI.class, "SearchReplaceUI.resultLabel.text")); // NOI18N - regexReplaceCheckBox.setText(org.openide.util.NbBundle.getMessage(SearchReplaceUI.class, "SearchReplaceUI.regexReplaceCheckBox.text")); // NOI18N + regexReplaceCheckBox.setText(org.openide.util.NbBundle + .getMessage(SearchReplaceUI.class, "SearchReplaceUI.regexReplaceCheckBox.text")); // NOI18N regexReplaceCheckBox.addItemListener(new java.awt.event.ItemListener() { + @Override public void itemStateChanged(java.awt.event.ItemEvent evt) { regexReplaceCheckBoxItemStateChanged(evt); } }); - columnsToSearchLabel.setText(org.openide.util.NbBundle.getMessage(SearchReplaceUI.class, "SearchReplaceUI.columnsToSearchLabel.text")); // NOI18N + columnsToSearchLabel.setText(org.openide.util.NbBundle + .getMessage(SearchReplaceUI.class, "SearchReplaceUI.columnsToSearchLabel.text")); // NOI18N columnsToSearchComboBox.addItemListener(new java.awt.event.ItemListener() { + @Override public void itemStateChanged(java.awt.event.ItemEvent evt) { columnsToSearchComboBoxItemStateChanged(evt); } @@ -396,111 +461,128 @@ public void itemStateChanged(java.awt.event.ItemEvent evt) { this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jSeparator1, javax.swing.GroupLayout.DEFAULT_SIZE, 379, Short.MAX_VALUE) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(matchWholeValueCheckBox) + .addGroup(layout.createSequentialGroup() + .addComponent(normalSearchModeRadioButton) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(regexSearchModeRadioButton)) + .addGroup(layout.createSequentialGroup() + .addComponent(caseSensitiveCheckBox) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(regexReplaceCheckBox)) + .addGroup(layout.createSequentialGroup() + .addGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(searchLabel, javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(replaceLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 71, + Short.MAX_VALUE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(searchText, javax.swing.GroupLayout.DEFAULT_SIZE, 160, + Short.MAX_VALUE) + .addComponent(replaceText, javax.swing.GroupLayout.DEFAULT_SIZE, 160, + Short.MAX_VALUE)) + .addGap(41, 41, 41))) + .addGap(0, 0, 0) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(replaceAllButton, javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(replaceButton, javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(findNextButton, javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) + .addComponent(scroll, javax.swing.GroupLayout.DEFAULT_SIZE, 359, Short.MAX_VALUE) + .addComponent(resultLabel) + .addGroup(layout.createSequentialGroup() + .addComponent(columnsToSearchLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 164, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(columnsToSearchComboBox, 0, 185, Short.MAX_VALUE))) + .addContainerGap()) + ); + layout.setVerticalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addComponent(findNextButton) + .addGap(35, 35, 35) + .addComponent(replaceButton) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(replaceAllButton)) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(searchText, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(searchLabel)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(replaceText, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(replaceLabel)) + .addGap(18, 18, 18) .addComponent(matchWholeValueCheckBox) - .addGroup(layout.createSequentialGroup() + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(normalSearchModeRadioButton) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(regexSearchModeRadioButton)) - .addGroup(layout.createSequentialGroup() + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(caseSensitiveCheckBox) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(regexReplaceCheckBox)) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(searchLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(replaceLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 71, Short.MAX_VALUE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(searchText, javax.swing.GroupLayout.DEFAULT_SIZE, 160, Short.MAX_VALUE) - .addComponent(replaceText, javax.swing.GroupLayout.DEFAULT_SIZE, 160, Short.MAX_VALUE)) - .addGap(41, 41, 41))) - .addGap(0, 0, 0) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(replaceAllButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(replaceButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(findNextButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) - .addComponent(scroll, javax.swing.GroupLayout.DEFAULT_SIZE, 359, Short.MAX_VALUE) - .addComponent(resultLabel)) - .addContainerGap()) - .addComponent(jSeparator1, javax.swing.GroupLayout.DEFAULT_SIZE, 379, Short.MAX_VALUE) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addComponent(columnsToSearchLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 164, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(columnsToSearchComboBox, 0, 185, Short.MAX_VALUE) - .addContainerGap()) - ); - layout.setVerticalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addComponent(findNextButton) - .addGap(35, 35, 35) - .addComponent(replaceButton) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(replaceAllButton)) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(searchText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(searchLabel)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(replaceText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(replaceLabel)) - .addGap(18, 18, 18) - .addComponent(matchWholeValueCheckBox) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(normalSearchModeRadioButton) - .addComponent(regexSearchModeRadioButton)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(caseSensitiveCheckBox) - .addComponent(regexReplaceCheckBox)))) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(columnsToSearchLabel) - .addComponent(columnsToSearchComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(resultLabel) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(scroll, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE) - .addContainerGap()) + .addComponent(regexReplaceCheckBox)))) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(columnsToSearchLabel) + .addComponent(columnsToSearchComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, + javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 21, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(resultLabel) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(scroll, javax.swing.GroupLayout.PREFERRED_SIZE, 53, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap()) ); }// //GEN-END:initComponents - private void normalSearchModeRadioButtonItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_normalSearchModeRadioButtonItemStateChanged + private void normalSearchModeRadioButtonItemStateChanged( + java.awt.event.ItemEvent evt) {//GEN-FIRST:event_normalSearchModeRadioButtonItemStateChanged refreshSearchOptions(); }//GEN-LAST:event_normalSearchModeRadioButtonItemStateChanged - private void regexSearchModeRadioButtonItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_regexSearchModeRadioButtonItemStateChanged + private void regexSearchModeRadioButtonItemStateChanged( + java.awt.event.ItemEvent evt) {//GEN-FIRST:event_regexSearchModeRadioButtonItemStateChanged refreshSearchOptions(); }//GEN-LAST:event_regexSearchModeRadioButtonItemStateChanged - private void matchWholeValueCheckBoxItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_matchWholeValueCheckBoxItemStateChanged + private void matchWholeValueCheckBoxItemStateChanged( + java.awt.event.ItemEvent evt) {//GEN-FIRST:event_matchWholeValueCheckBoxItemStateChanged refreshSearchOptions(); }//GEN-LAST:event_matchWholeValueCheckBoxItemStateChanged - private void caseSensitiveCheckBoxItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_caseSensitiveCheckBoxItemStateChanged + private void caseSensitiveCheckBoxItemStateChanged( + java.awt.event.ItemEvent evt) {//GEN-FIRST:event_caseSensitiveCheckBoxItemStateChanged refreshSearchOptions(); }//GEN-LAST:event_caseSensitiveCheckBoxItemStateChanged - private void findNextButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_findNextButtonActionPerformed - searchResult = searchReplaceController.findNext(searchOptions); - refreshSearchOptions(); - showSearchResult(); + private void findNextButtonActionPerformed( + java.awt.event.ActionEvent evt) {//GEN-FIRST:event_findNextButtonActionPerformed + nextResult(); }//GEN-LAST:event_findNextButtonActionPerformed - private void replaceButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_replaceButtonActionPerformed + private void replaceButtonActionPerformed( + java.awt.event.ActionEvent evt) {//GEN-FIRST:event_replaceButtonActionPerformed try { searchResult = searchReplaceController.replace(searchResult, replaceText.getText()); refreshSearchOptions(); @@ -511,45 +593,54 @@ private void replaceButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN } }//GEN-LAST:event_replaceButtonActionPerformed - private void replaceAllButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_replaceAllButtonActionPerformed + private void replaceAllButtonActionPerformed( + java.awt.event.ActionEvent evt) {//GEN-FIRST:event_replaceAllButtonActionPerformed try { int replacementsCount = searchReplaceController.replaceAll(searchOptions, replaceText.getText()); searchResult = null; refreshSearchOptions(); dataTablesController.refreshCurrentTable(); - JOptionPane.showMessageDialog(null, NbBundle.getMessage(SearchReplaceUI.class, "SearchReplaceUI.replacements.count.message", replacementsCount)); + JOptionPane.showMessageDialog(null, NbBundle + .getMessage(SearchReplaceUI.class, "SearchReplaceUI.replacements.count.message", replacementsCount)); resultText.setText(""); } catch (Exception ex) { showRegexReplaceError(); } }//GEN-LAST:event_replaceAllButtonActionPerformed - private void regexReplaceCheckBoxItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_regexReplaceCheckBoxItemStateChanged + private void regexReplaceCheckBoxItemStateChanged( + java.awt.event.ItemEvent evt) {//GEN-FIRST:event_regexReplaceCheckBoxItemStateChanged refreshSearchOptions(); }//GEN-LAST:event_regexReplaceCheckBoxItemStateChanged - private void columnsToSearchComboBoxItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_columnsToSearchComboBoxItemStateChanged + private void columnsToSearchComboBoxItemStateChanged( + java.awt.event.ItemEvent evt) {//GEN-FIRST:event_columnsToSearchComboBoxItemStateChanged refreshSearchOptions(); }//GEN-LAST:event_columnsToSearchComboBoxItemStateChanged - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JCheckBox caseSensitiveCheckBox; - private javax.swing.JComboBox columnsToSearchComboBox; - private javax.swing.JLabel columnsToSearchLabel; - private javax.swing.JButton findNextButton; - private javax.swing.JSeparator jSeparator1; - private javax.swing.JCheckBox matchWholeValueCheckBox; - private javax.swing.JRadioButton normalSearchModeRadioButton; - private javax.swing.JCheckBox regexReplaceCheckBox; - private javax.swing.JRadioButton regexSearchModeRadioButton; - private javax.swing.JButton replaceAllButton; - private javax.swing.JButton replaceButton; - private javax.swing.JLabel replaceLabel; - private javax.swing.JTextField replaceText; - private javax.swing.JLabel resultLabel; - private javax.swing.JTextPane resultText; - private javax.swing.JScrollPane scroll; - private javax.swing.JLabel searchLabel; - private javax.swing.ButtonGroup searchModeButtonGroup; - private javax.swing.JTextField searchText; - // End of variables declaration//GEN-END:variables + + private void searchTextKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_searchTextKeyPressed + if (evt.getKeyCode() == KeyEvent.VK_ENTER) { + nextResult(); + } + }//GEN-LAST:event_searchTextKeyPressed + + public enum Mode { + + NODES_TABLE, + EDGES_TABLE + } + + class ColumnWrapper { + + Column column; + + public ColumnWrapper(Column column) { + this.column = column; + } + + @Override + public String toString() { + return column.getTitle(); + } + } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/BasicNodesManipulator.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/BasicNodesManipulator.java index 41e17a3898..98c0cccfe4 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/BasicNodesManipulator.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/BasicNodesManipulator.java @@ -39,25 +39,28 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.nodes; import org.gephi.datalab.spi.ContextMenuItemManipulator; import org.gephi.datalab.spi.nodes.NodesManipulator; /** - * * @author Eduardo */ -public abstract class BasicNodesManipulator implements NodesManipulator{ +public abstract class BasicNodesManipulator implements NodesManipulator { + @Override public boolean isAvailable() { return true; } + @Override public ContextMenuItemManipulator[] getSubItems() { return null; } + @Override public Integer getMnemonicKey() { return null; } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ClearNodesData.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ClearNodesData.java index 00d237d136..ba4dd77242 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ClearNodesData.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ClearNodesData.java @@ -39,17 +39,18 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.nodes; import java.util.ArrayList; import javax.swing.Icon; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeController; import org.gephi.datalab.api.AttributeColumnsController; import org.gephi.datalab.api.datatables.DataTablesController; import org.gephi.datalab.plugin.manipulators.GeneralColumnsChooser; import org.gephi.datalab.plugin.manipulators.ui.GeneralChooseColumnsUI; import org.gephi.datalab.spi.ManipulatorUI; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.GraphController; import org.gephi.graph.api.Node; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; @@ -57,25 +58,28 @@ Development and Distribution License("CDDL") (collectively, the /** * Nodes manipulator that clears the given columns data of one or more nodes except the id and computed attributes. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -public class ClearNodesData extends BasicNodesManipulator implements GeneralColumnsChooser { +public class ClearNodesData extends BasicNodesManipulator implements GeneralColumnsChooser { private Node[] nodes; - private AttributeColumn[] columnsToClearData; + private Column[] columnsToClearData; + @Override public void setup(Node[] nodes, Node clickedNode) { this.nodes = nodes; AttributeColumnsController ac = Lookup.getDefault().lookup(AttributeColumnsController.class); - ArrayList columnsToClearDataList = new ArrayList(); - for (AttributeColumn column : Lookup.getDefault().lookup(AttributeController.class).getModel().getNodeTable().getColumns()) { + ArrayList columnsToClearDataList = new ArrayList<>(); + for (Column column : Lookup.getDefault().lookup(GraphController.class).getGraphModel().getNodeTable()) { if (ac.canClearColumnData(column)) { columnsToClearDataList.add(column); } } - columnsToClearData = columnsToClearDataList.toArray(new AttributeColumn[0]); + columnsToClearData = columnsToClearDataList.toArray(new Column[0]); } + @Override public void execute() { if (columnsToClearData.length >= 0) { AttributeColumnsController ac = Lookup.getDefault().lookup(AttributeColumnsController.class); @@ -84,6 +88,7 @@ public void execute() { } } + @Override public String getName() { if (nodes.length > 1) { return NbBundle.getMessage(ClearNodesData.class, "ClearNodesData.name.multiple"); @@ -92,35 +97,43 @@ public String getName() { } } + @Override public String getDescription() { return NbBundle.getMessage(ClearNodesData.class, "ClearNodesData.description"); } + @Override public boolean canExecute() { return true; } + @Override public ManipulatorUI getUI() { return new GeneralChooseColumnsUI(NbBundle.getMessage(ClearNodesData.class, "ClearNodesData.ui.description")); } + @Override public int getType() { return 200; } + @Override public int getPosition() { return 100; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/clear-data.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/clear-data.svg", false); } - public AttributeColumn[] getColumns() { + @Override + public Column[] getColumns() { return columnsToClearData; } - public void setColumns(AttributeColumn[] columnsToClearData) { + @Override + public void setColumns(Column[] columnsToClearData) { this.columnsToClearData = columnsToClearData; } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ClearNodesDataBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ClearNodesDataBuilder.java index a919d9fcb9..8ba2eff0b9 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ClearNodesDataBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ClearNodesDataBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.nodes; import org.gephi.datalab.spi.nodes.NodesManipulator; @@ -47,11 +48,13 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for ClearNodesData nodes manipulator. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=NodesManipulatorBuilder.class) -public class ClearNodesDataBuilder implements NodesManipulatorBuilder{ +@ServiceProvider(service = NodesManipulatorBuilder.class) +public class ClearNodesDataBuilder implements NodesManipulatorBuilder { + @Override public NodesManipulator getNodesManipulator() { return new ClearNodesData(); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/CopyNodeDataToOtherNodes.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/CopyNodeDataToOtherNodes.java index 7478f90fc8..ba2e4c1c90 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/CopyNodeDataToOtherNodes.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/CopyNodeDataToOtherNodes.java @@ -39,17 +39,19 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.nodes; import java.util.ArrayList; import javax.swing.Icon; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeController; import org.gephi.datalab.api.AttributeColumnsController; import org.gephi.datalab.api.datatables.DataTablesController; import org.gephi.datalab.plugin.manipulators.GeneralColumnsAndRowChooser; import org.gephi.datalab.plugin.manipulators.ui.GeneralChooseColumnsAndRowUI; import org.gephi.datalab.spi.ManipulatorUI; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Element; +import org.gephi.graph.api.GraphController; import org.gephi.graph.api.Node; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; @@ -57,27 +59,30 @@ Development and Distribution License("CDDL") (collectively, the /** * Nodes manipulator that copies the given columns data of one node to the other selected nodes. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class CopyNodeDataToOtherNodes extends BasicNodesManipulator implements GeneralColumnsAndRowChooser { private Node clickedNode; private Node[] nodes; - private AttributeColumn[] columnsToCopyData; + private Column[] columnsToCopyData; + @Override public void setup(Node[] nodes, Node clickedNode) { this.clickedNode = clickedNode; this.nodes = nodes; AttributeColumnsController ac = Lookup.getDefault().lookup(AttributeColumnsController.class); - ArrayList columnsToCopyDataList = new ArrayList(); - for (AttributeColumn column : Lookup.getDefault().lookup(AttributeController.class).getModel().getNodeTable().getColumns()) { + ArrayList columnsToCopyDataList = new ArrayList<>(); + for (Column column : Lookup.getDefault().lookup(GraphController.class).getGraphModel().getNodeTable()) { if (ac.canChangeColumnData(column)) { columnsToCopyDataList.add(column); } } - columnsToCopyData = columnsToCopyDataList.toArray(new AttributeColumn[0]); + columnsToCopyData = columnsToCopyDataList.toArray(new Column[0]); } + @Override public void execute() { if (columnsToCopyData.length >= 0) { AttributeColumnsController ac = Lookup.getDefault().lookup(AttributeColumnsController.class); @@ -86,51 +91,65 @@ public void execute() { } } + @Override public String getName() { return NbBundle.getMessage(CopyNodeDataToOtherNodes.class, "CopyNodeDataToOtherNodes.name"); } + @Override public String getDescription() { return NbBundle.getMessage(CopyNodeDataToOtherNodes.class, "CopyNodeDataToOtherNodes.description"); } + @Override public boolean canExecute() { return nodes.length > 1;//At least 2 nodes to copy data from one to the other. } + @Override public ManipulatorUI getUI() { - return new GeneralChooseColumnsAndRowUI(NbBundle.getMessage(CopyNodeDataToOtherNodes.class, "CopyNodeDataToOtherNodes.ui.rowDescription"),NbBundle.getMessage(CopyNodeDataToOtherNodes.class, "CopyNodeDataToOtherNodes.ui.columnsDescription")); + return new GeneralChooseColumnsAndRowUI( + NbBundle.getMessage(CopyNodeDataToOtherNodes.class, "CopyNodeDataToOtherNodes.ui.rowDescription"), + NbBundle.getMessage(CopyNodeDataToOtherNodes.class, "CopyNodeDataToOtherNodes.ui.columnsDescription")); } + @Override public int getType() { return 200; } + @Override public int getPosition() { return 200; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/broom--arrow.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/broom--arrow.svg", false); } - public AttributeColumn[] getColumns() { + @Override + public Column[] getColumns() { return columnsToCopyData; } - public void setColumns(AttributeColumn[] columnsToClearData) { + @Override + public void setColumns(Column[] columnsToClearData) { this.columnsToCopyData = columnsToClearData; } - public Object[] getRows() { + @Override + public Element[] getRows() { return nodes; } - public Object getRow() { + @Override + public Element getRow() { return clickedNode; } - public void setRow(Object row) { - clickedNode=(Node) row; + @Override + public void setRow(Element row) { + clickedNode = (Node) row; } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/CopyNodeDataToOtherNodesBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/CopyNodeDataToOtherNodesBuilder.java index fc49fef17d..7ec67c9433 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/CopyNodeDataToOtherNodesBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/CopyNodeDataToOtherNodesBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.nodes; import org.gephi.datalab.spi.nodes.NodesManipulator; @@ -47,11 +48,13 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for CopyNodeDataToOtherNodes nodes manipulator. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=NodesManipulatorBuilder.class) -public class CopyNodeDataToOtherNodesBuilder implements NodesManipulatorBuilder{ +@ServiceProvider(service = NodesManipulatorBuilder.class) +public class CopyNodeDataToOtherNodesBuilder implements NodesManipulatorBuilder { + @Override public NodesManipulator getNodesManipulator() { return new CopyNodeDataToOtherNodes(); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/CopyNodes.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/CopyNodes.java index 30c4d1962d..94e7041fbe 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/CopyNodes.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/CopyNodes.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.nodes; import javax.swing.Icon; @@ -52,17 +53,20 @@ Development and Distribution License("CDDL") (collectively, the /** * Nodes manipulator that copies one or more nodes one or more times. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class CopyNodes extends BasicNodesManipulator { private Node[] nodes; private int copies = 1; + @Override public void setup(Node[] nodes, Node clickedNode) { this.nodes = nodes; } + @Override public void execute() { GraphElementsController gec = Lookup.getDefault().lookup(GraphElementsController.class); for (int i = 0; i < copies; i++) { @@ -70,6 +74,7 @@ public void execute() { } } + @Override public String getName() { if (nodes.length > 1) { return NbBundle.getMessage(CopyNodes.class, "CopyNodes.name.multiple"); @@ -78,28 +83,34 @@ public String getName() { } } + @Override public String getDescription() { return ""; } + @Override public boolean canExecute() { return true; } + @Override public ManipulatorUI getUI() { return new CopyNodesUI(); } + @Override public int getType() { return 500; } + @Override public int getPosition() { return 200; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/duplicate.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/duplicate.svg", false); } public int getCopies() { diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/CopyNodesBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/CopyNodesBuilder.java index 8bb817f70a..232aaf6bb8 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/CopyNodesBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/CopyNodesBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.nodes; import org.gephi.datalab.spi.nodes.NodesManipulator; @@ -47,11 +48,13 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for CopyNodes nodes manipulator. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=NodesManipulatorBuilder.class) -public class CopyNodesBuilder implements NodesManipulatorBuilder{ +@ServiceProvider(service = NodesManipulatorBuilder.class) +public class CopyNodesBuilder implements NodesManipulatorBuilder { + @Override public NodesManipulator getNodesManipulator() { return new CopyNodes(); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/DeleteNodes.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/DeleteNodes.java index acdc23fc3c..6770e58db4 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/DeleteNodes.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/DeleteNodes.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.nodes; import javax.swing.Icon; @@ -52,23 +53,29 @@ Development and Distribution License("CDDL") (collectively, the /** * Nodes manipulator that deletes one or more nodes. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class DeleteNodes extends BasicNodesManipulator { private Node[] nodes; + @Override public void setup(Node[] nodes, Node clickedNode) { this.nodes = nodes; } + @Override public void execute() { - if (JOptionPane.showConfirmDialog(null, NbBundle.getMessage(DeleteNodes.class, "DeleteNodes.confirmation.message"), getName(), JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) { + if (JOptionPane + .showConfirmDialog(null, NbBundle.getMessage(DeleteNodes.class, "DeleteNodes.confirmation.message"), + getName(), JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) { GraphElementsController gec = Lookup.getDefault().lookup(GraphElementsController.class); gec.deleteNodes(nodes); } } + @Override public String getName() { if (nodes.length > 1) { return NbBundle.getMessage(DeleteNodes.class, "DeleteNodes.name.multiple"); @@ -77,27 +84,33 @@ public String getName() { } } + @Override public String getDescription() { return ""; } + @Override public boolean canExecute() { return true; } + @Override public ManipulatorUI getUI() { return null; } + @Override public int getType() { return 100; } + @Override public int getPosition() { return 300; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/cross.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/cross.svg", false); } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/DeleteNodesBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/DeleteNodesBuilder.java index 87bc3f1941..e587ebca32 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/DeleteNodesBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/DeleteNodesBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.nodes; import org.gephi.datalab.spi.nodes.NodesManipulator; @@ -47,11 +48,13 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for DeleteNodes nodes manipulator. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=NodesManipulatorBuilder.class) -public class DeleteNodesBuilder implements NodesManipulatorBuilder{ +@ServiceProvider(service = NodesManipulatorBuilder.class) +public class DeleteNodesBuilder implements NodesManipulatorBuilder { + @Override public NodesManipulator getNodesManipulator() { return new DeleteNodes(); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/Free.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/Free.java index 66a08216b6..dc29d699a0 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/Free.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/Free.java @@ -39,11 +39,12 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.nodes; import javax.swing.Icon; -import org.gephi.datalab.api.datatables.DataTablesController; import org.gephi.datalab.api.GraphElementsController; +import org.gephi.datalab.api.datatables.DataTablesController; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.graph.api.Node; import org.openide.util.ImageUtilities; @@ -52,24 +53,28 @@ Development and Distribution License("CDDL") (collectively, the /** * Nodes manipulator that frees (not fixed position) one or more nodes. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class Free extends BasicNodesManipulator { private Node[] nodes; private Node clickedNode; + @Override public void setup(Node[] nodes, Node clickedNode) { this.nodes = nodes; this.clickedNode = clickedNode; } + @Override public void execute() { GraphElementsController gec = Lookup.getDefault().lookup(GraphElementsController.class); gec.setNodesFixed(nodes, false); Lookup.getDefault().lookup(DataTablesController.class).refreshCurrentTable(); } + @Override public String getName() { if (nodes.length > 1) { return NbBundle.getMessage(Settle.class, "Free.name.multiple"); @@ -78,28 +83,34 @@ public String getName() { } } + @Override public String getDescription() { return ""; } + @Override public boolean canExecute() { GraphElementsController gec = Lookup.getDefault().lookup(GraphElementsController.class); return gec.isNodeFixed(clickedNode); } + @Override public ManipulatorUI getUI() { return null; } + @Override public int getType() { return 400; } + @Override public int getPosition() { return 100; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/free.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/free.svg", false); } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/FreeBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/FreeBuilder.java index 1ac3629bf0..c9936f8b15 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/FreeBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/FreeBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.nodes; import org.gephi.datalab.spi.nodes.NodesManipulator; @@ -47,11 +48,13 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for Free nodes manipulator. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=NodesManipulatorBuilder.class) -public class FreeBuilder implements NodesManipulatorBuilder{ +@ServiceProvider(service = NodesManipulatorBuilder.class) +public class FreeBuilder implements NodesManipulatorBuilder { + @Override public NodesManipulator getNodesManipulator() { return new Free(); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/Group.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/Group.java deleted file mode 100644 index 0c9ea49bd4..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/Group.java +++ /dev/null @@ -1,96 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Eduardo Ramos -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.datalab.plugin.manipulators.nodes; - -import javax.swing.Icon; -import org.gephi.datalab.api.GraphElementsController; -import org.gephi.datalab.spi.ManipulatorUI; -import org.gephi.graph.api.Node; -import org.openide.util.ImageUtilities; -import org.openide.util.Lookup; -import org.openide.util.NbBundle; - -/** - * Nodes manipulator that groups one or more nodes into a new group node hierarchically. - * @author Eduardo Ramos - */ -public class Group extends BasicNodesManipulator { - private Node[] nodes; - - public void setup(Node[] nodes, Node clickedNode) { - this.nodes=nodes; - } - - public void execute() { - GraphElementsController gec = Lookup.getDefault().lookup(GraphElementsController.class); - gec.groupNodes(nodes); - } - - public String getName() { - return NbBundle.getMessage(Group.class, "Group.name"); - } - - public String getDescription() { - return ""; - } - - public boolean canExecute() { - GraphElementsController gec = Lookup.getDefault().lookup(GraphElementsController.class); - return gec.canGroupNodes(nodes); - } - - public ManipulatorUI getUI() { - return null; - } - - public int getType() { - return 300; - } - - public int getPosition() { - return 0; - } - - public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/group.png", true); - } -} diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/GroupBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/GroupBuilder.java deleted file mode 100644 index 536784f053..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/GroupBuilder.java +++ /dev/null @@ -1,58 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Eduardo Ramos -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.datalab.plugin.manipulators.nodes; - -import org.gephi.datalab.spi.nodes.NodesManipulator; -import org.gephi.datalab.spi.nodes.NodesManipulatorBuilder; -import org.openide.util.lookup.ServiceProvider; - -/** - * Builder for Group nodes manipulator. - * @author Eduardo Ramos - */ -@ServiceProvider(service=NodesManipulatorBuilder.class) -public class GroupBuilder implements NodesManipulatorBuilder{ - - public NodesManipulator getNodesManipulator() { - return new Group(); - } -} diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/LinkNodes.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/LinkNodes.java index 0fbb1daa43..b04a314aac 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/LinkNodes.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/LinkNodes.java @@ -1,139 +1,153 @@ -/* - Copyright 2008-2010 Gephi - Authors : Eduardo Ramos - Website : http://www.gephi.org - - This file is part of Gephi. - - DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - - Copyright 2011 Gephi Consortium. All rights reserved. - - The contents of this file are subject to the terms of either the GNU - General Public License Version 3 only ("GPL") or the Common - Development and Distribution License("CDDL") (collectively, the - "License"). You may not use this file except in compliance with the - License. You can obtain a copy of the License at - http://gephi.org/about/legal/license-notice/ - or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the - specific language governing permissions and limitations under the - License. When distributing the software, include this License Header - Notice in each file and include the License files at - /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the - License Header, with the fields enclosed by brackets [] replaced by - your own identifying information: - "Portions Copyrighted [year] [name of copyright owner]" - - If you wish your version of this file to be governed by only the CDDL - or only the GPL Version 3, indicate your decision by adding - "[Contributor] elects to include this software in this distribution - under the [CDDL or GPL Version 3] license." If you do not indicate a - single choice of license, a recipient has the option to distribute - your version of this file under either the CDDL, the GPL Version 3 or - to extend the choice of license to its licensees as provided above. - However, if you add GPL Version 3 code and therefore, elected the GPL - Version 3 license, then the option applies only if the new code is - made subject to such option by the copyright holder. - - Contributor(s): - - Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.datalab.plugin.manipulators.nodes; - -import javax.swing.Icon; -import org.gephi.datalab.api.DataLaboratoryHelper; -import org.gephi.datalab.api.GraphElementsController; -import org.gephi.datalab.plugin.manipulators.general.AddEdgeToGraph; -import org.gephi.datalab.plugin.manipulators.nodes.ui.LinkNodesUI; -import org.gephi.datalab.spi.ManipulatorUI; -import org.gephi.graph.api.GraphController; -import org.gephi.graph.api.GraphModel; -import org.gephi.graph.api.Node; -import org.openide.util.ImageUtilities; -import org.openide.util.Lookup; -import org.openide.util.NbBundle; - -/** - * Nodes manipulator that links at least 2 different nodes creating edges. Asks the user to select a source node and whether to create directed or undirected edges. It will create edges between the - * source node and all of the other nodes. - * - * @author Eduardo Ramos - */ -public class LinkNodes extends BasicNodesManipulator { - - private Node[] nodes; - private Node sourceNode; - private static boolean directed; - private static GraphModel graphModel; - - public void setup(Node[] nodes, Node clickedNode) { - this.nodes = nodes; - this.sourceNode = clickedNode;//Choose clicked node as source by default (but the user can select it or other one in the UI) - - GraphModel currentGraphModel = Lookup.getDefault().lookup(GraphController.class).getModel(); - if (graphModel != currentGraphModel) {//If graph model has changed since last execution, change default mode for edges to create in UI, else keep this parameter across calls - directed = currentGraphModel.isDirected() || currentGraphModel.isMixed();//Get graph directed state. Set to true if graph is directed or mixed - graphModel = currentGraphModel; - } - } - - public void execute() { - if (nodes.length > 1) { - GraphElementsController gec = Lookup.getDefault().lookup(GraphElementsController.class); - gec.createEdges(sourceNode, nodes, directed); - }else{ - AddEdgeToGraph manipulator = new AddEdgeToGraph(); - manipulator.setSource(sourceNode); - DataLaboratoryHelper.getDefault().executeManipulator(manipulator); - } - } - - public String getName() { - return NbBundle.getMessage(LinkNodes.class, "LinkNodes.name"); - } - - public String getDescription() { - return NbBundle.getMessage(LinkNodes.class, "LinkNodes.description"); - } - - public boolean canExecute() { - return true; - } - - public ManipulatorUI getUI() { - return nodes.length > 1 ? new LinkNodesUI() : null;//Use link nodes UI if more than one node selected, otherwise add edge to graph action will be called in execute. - } - - public int getType() { - return 500; - } - - public int getPosition() { - return 100; - } - - public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/edge.png", true); - } - - public Node[] getNodes() { - return nodes; - } - - public Node getSourceNode() { - return sourceNode; - } - - public void setSourceNode(Node sourceNode) { - this.sourceNode = sourceNode; - } - - public boolean isDirected() { - return directed; - } - - public void setDirected(boolean directed) { - LinkNodes.directed = directed; - } -} +/* + Copyright 2008-2010 Gephi + Authors : Eduardo Ramos + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2011 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2011 Gephi Consortium. + */ + +package org.gephi.datalab.plugin.manipulators.nodes; + +import javax.swing.Icon; +import org.gephi.datalab.api.DataLaboratoryHelper; +import org.gephi.datalab.api.GraphElementsController; +import org.gephi.datalab.plugin.manipulators.general.AddEdgeToGraph; +import org.gephi.datalab.plugin.manipulators.nodes.ui.LinkNodesUI; +import org.gephi.datalab.spi.ManipulatorUI; +import org.gephi.graph.api.GraphController; +import org.gephi.graph.api.GraphModel; +import org.gephi.graph.api.Node; +import org.openide.util.ImageUtilities; +import org.openide.util.Lookup; +import org.openide.util.NbBundle; + +/** + * Nodes manipulator that links at least 2 different nodes creating edges. Asks the user to select a source node and whether to create directed or undirected edges. It will create edges between the + * source node and all of the other nodes. + * + * @author Eduardo Ramos + */ +public class LinkNodes extends BasicNodesManipulator { + + private static boolean directed; + private static GraphModel graphModel; + private Node[] nodes; + private Node sourceNode; + + @Override + public void setup(Node[] nodes, Node clickedNode) { + this.nodes = nodes; + this.sourceNode = + clickedNode;//Choose clicked node as source by default (but the user can select it or other one in the UI) + + GraphModel currentGraphModel = Lookup.getDefault().lookup(GraphController.class).getGraphModel(); + if (graphModel != + currentGraphModel) {//If graph model has changed since last execution, change default mode for edges to create in UI, else keep this parameter across calls + directed = currentGraphModel.isDirected() || + currentGraphModel.isMixed();//Get graph directed state. Set to true if graph is directed or mixed + graphModel = currentGraphModel; + } + } + + @Override + public void execute() { + if (nodes.length > 1) { + GraphElementsController gec = Lookup.getDefault().lookup(GraphElementsController.class); + gec.createEdges(sourceNode, nodes, directed); + } else { + AddEdgeToGraph manipulator = new AddEdgeToGraph(); + manipulator.setSource(sourceNode); + DataLaboratoryHelper.getDefault().executeManipulator(manipulator); + } + } + + @Override + public String getName() { + return NbBundle.getMessage(LinkNodes.class, "LinkNodes.name"); + } + + @Override + public String getDescription() { + return NbBundle.getMessage(LinkNodes.class, "LinkNodes.description"); + } + + @Override + public boolean canExecute() { + return true; + } + + @Override + public ManipulatorUI getUI() { + return nodes.length > 1 ? new LinkNodesUI() : + null;//Use link nodes UI if more than one node selected, otherwise add edge to graph action will be called in execute. + } + + @Override + public int getType() { + return 500; + } + + @Override + public int getPosition() { + return 100; + } + + @Override + public Icon getIcon() { + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/edge.svg", false); + } + + public Node[] getNodes() { + return nodes; + } + + public Node getSourceNode() { + return sourceNode; + } + + public void setSourceNode(Node sourceNode) { + this.sourceNode = sourceNode; + } + + public boolean isDirected() { + return directed; + } + + public void setDirected(boolean directed) { + LinkNodes.directed = directed; + } +} diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/LinkNodesBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/LinkNodesBuilder.java index 92bb5a25e7..eff02a5ba8 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/LinkNodesBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/LinkNodesBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.nodes; import org.gephi.datalab.spi.nodes.NodesManipulator; @@ -47,11 +48,13 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for LinkNodes nodes manipulator. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=NodesManipulatorBuilder.class) -public class LinkNodesBuilder implements NodesManipulatorBuilder{ +@ServiceProvider(service = NodesManipulatorBuilder.class) +public class LinkNodesBuilder implements NodesManipulatorBuilder { + @Override public NodesManipulator getNodesManipulator() { return new LinkNodes(); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/MergeNodes.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/MergeNodes.java index f2add1ef16..3cbca2940c 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/MergeNodes.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/MergeNodes.java @@ -39,17 +39,22 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.nodes; +import java.util.ArrayList; +import java.util.List; import javax.swing.Icon; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeController; import org.gephi.datalab.api.GraphElementsController; import org.gephi.datalab.api.datatables.DataTablesController; import org.gephi.datalab.plugin.manipulators.nodes.ui.MergeNodesUI; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.datalab.spi.rows.merge.AttributeRowsMergeStrategy; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Graph; +import org.gephi.graph.api.GraphController; import org.gephi.graph.api.Node; +import org.gephi.graph.api.Table; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; import org.openide.util.NbBundle; @@ -57,7 +62,6 @@ Development and Distribution License("CDDL") (collectively, the /** *

    Nodes manipulator that merges 2 or more nodes

    - *

    * The behaviour is: *

      *
    • Merged nodes are deleted if desired, and one new node is created
    • @@ -65,59 +69,81 @@ Development and Distribution License("CDDL") (collectively, the *
    • Each column uses an strategy to reduce the rows values to one value
    • *
    • *
    - *

    - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class MergeNodes extends BasicNodesManipulator { public static final String DELETE_MERGED_NODES_SAVED_PREFERENCES = "MergeNodes_DeleteMergedNodes"; private Node[] nodes; private Node selectedNode; - private AttributeColumn[] columns; + private Column[] columns; private AttributeRowsMergeStrategy[] mergeStrategies; private boolean deleteMergedNodes; + @Override public void setup(Node[] nodes, Node clickedNode) { this.nodes = nodes; selectedNode = clickedNode != null ? clickedNode : nodes[0]; - columns = Lookup.getDefault().lookup(AttributeController.class).getModel().getNodeTable().getColumns(); + + Table nodeTable = Lookup.getDefault().lookup(GraphController.class).getGraphModel().getNodeTable(); + List columnsList = new ArrayList<>(); + for (Column column : nodeTable) { + if (!column.isReadOnly()) { + columnsList.add(column); + } + } + + columns = columnsList.toArray(new Column[0]); + mergeStrategies = new AttributeRowsMergeStrategy[columns.length]; - deleteMergedNodes = NbPreferences.forModule(MergeNodes.class).getBoolean(DELETE_MERGED_NODES_SAVED_PREFERENCES, true); + deleteMergedNodes = + NbPreferences.forModule(MergeNodes.class).getBoolean(DELETE_MERGED_NODES_SAVED_PREFERENCES, true); } + @Override public void execute() { + Graph graph = Lookup.getDefault().lookup(GraphController.class).getGraphModel().getGraph(); + GraphElementsController gec = Lookup.getDefault().lookup(GraphElementsController.class); - Node newNode=gec.mergeNodes(nodes, selectedNode, mergeStrategies, deleteMergedNodes); - Lookup.getDefault().lookup(DataTablesController.class).setNodeTableSelection(new Node[]{newNode}); + Node newNode = gec.mergeNodes(graph, nodes, selectedNode, columns, mergeStrategies, deleteMergedNodes); + Lookup.getDefault().lookup(DataTablesController.class).setNodeTableSelection(new Node[] {newNode}); NbPreferences.forModule(MergeNodes.class).putBoolean(DELETE_MERGED_NODES_SAVED_PREFERENCES, deleteMergedNodes); } + @Override public String getName() { return NbBundle.getMessage(MergeNodes.class, "MergeNodes.name"); } + @Override public String getDescription() { return NbBundle.getMessage(MergeNodes.class, "MergeNodes.description"); } + @Override public boolean canExecute() { return nodes.length > 1; } + @Override public ManipulatorUI getUI() { return new MergeNodesUI(); } + @Override public int getType() { return 500; } + @Override public int getPosition() { return 0; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/merge.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/merge.svg", false); } public boolean isDeleteMergedNodes() { @@ -140,7 +166,7 @@ public void setSelectedNode(Node selectedNode) { this.selectedNode = selectedNode; } - public AttributeColumn[] getColumns() { + public Column[] getColumns() { return columns; } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/MergeNodesBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/MergeNodesBuilder.java index da3d73b2cb..ba9df9ec89 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/MergeNodesBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/MergeNodesBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.nodes; import org.gephi.datalab.spi.nodes.NodesManipulator; @@ -47,11 +48,13 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for MergeNodes nodes manipulator. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=NodesManipulatorBuilder.class) -public class MergeNodesBuilder implements NodesManipulatorBuilder{ +@ServiceProvider(service = NodesManipulatorBuilder.class) +public class MergeNodesBuilder implements NodesManipulatorBuilder { + @Override public NodesManipulator getNodesManipulator() { return new MergeNodes(); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/MoveNodeToGroup.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/MoveNodeToGroup.java deleted file mode 100644 index 7ba48fd490..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/MoveNodeToGroup.java +++ /dev/null @@ -1,130 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Eduardo Ramos -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.datalab.plugin.manipulators.nodes; - -import javax.swing.Icon; -import org.gephi.datalab.api.GraphElementsController; -import org.gephi.datalab.plugin.manipulators.nodes.ui.MoveNodeToGroupUI; -import org.gephi.datalab.spi.ManipulatorUI; -import org.gephi.graph.api.Node; -import org.openide.util.Lookup; -import org.openide.util.NbBundle; - -/** - * Nodes manipulator that moves one or more nodes to a group. It shows an UI to select 1 of the available groups. - * @author Eduardo Ramos - */ -public class MoveNodeToGroup extends BasicNodesManipulator { - - private Node[] nodes; - private Node[] availableGroupsToMoveNodes; - private Node group=null; - - public void setup(Node[] nodes, Node clickedNode) { - this.nodes = nodes; - } - - public void execute() { - if (group != null) { - GraphElementsController gec = Lookup.getDefault().lookup(GraphElementsController.class); - gec.moveNodesToGroup(nodes, group); - } - } - - public String getName() { - if (nodes.length > 1) { - return NbBundle.getMessage(MoveNodeToGroup.class, "MoveNodeToGroup.name.multiple"); - } else { - return NbBundle.getMessage(MoveNodeToGroup.class, "MoveNodeToGroup.name.single"); - } - } - - public String getDescription() { - return ""; - } - - /** - * Can group nodes so it can be all moved to a group (at least 1 available) - */ - public boolean canExecute() { - GraphElementsController gec = Lookup.getDefault().lookup(GraphElementsController.class); - boolean canGroup = gec.canGroupNodes(nodes); - if (canGroup) { - availableGroupsToMoveNodes = gec.getAvailableGroupsToMoveNodes(nodes); - return availableGroupsToMoveNodes != null && availableGroupsToMoveNodes.length > 0; - } else { - return false; - } - } - - public ManipulatorUI getUI() { - return new MoveNodeToGroupUI(); - } - - public int getType() { - return 300; - } - - public int getPosition() { - return 300; - } - - public Icon getIcon() { - return null; - } - - public Node[] getAvailableGroupsToMoveNodes() { - return availableGroupsToMoveNodes; - } - - public void setAvailableGroupsToMoveNodes(Node[] availableGroupsToMoveNodes) { - this.availableGroupsToMoveNodes = availableGroupsToMoveNodes; - } - - public Node getGroup() { - return group; - } - - public void setGroup(Node group) { - this.group = group; - } -} diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/MoveNodeToGroupBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/MoveNodeToGroupBuilder.java deleted file mode 100644 index 715160b62c..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/MoveNodeToGroupBuilder.java +++ /dev/null @@ -1,58 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Eduardo Ramos -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.datalab.plugin.manipulators.nodes; - -import org.gephi.datalab.spi.nodes.NodesManipulator; -import org.gephi.datalab.spi.nodes.NodesManipulatorBuilder; -import org.openide.util.lookup.ServiceProvider; - -/** - * Builder for RemoveNodeFromGroup nodes manipulator. - * @author Eduardo Ramos - */ -@ServiceProvider(service=NodesManipulatorBuilder.class) -public class MoveNodeToGroupBuilder implements NodesManipulatorBuilder{ - - public NodesManipulator getNodesManipulator() { - return new MoveNodeToGroup(); - } -} diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/OpenInEditNodeWindow.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/OpenInEditNodeWindow.java index ffb4222d4f..b2c92ca409 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/OpenInEditNodeWindow.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/OpenInEditNodeWindow.java @@ -39,34 +39,39 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.nodes; import javax.swing.Icon; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.graph.api.Node; -import org.gephi.tools.api.EditWindowController; +import org.gephi.desktop.attributes.api.AttributesUIController; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; import org.openide.util.NbBundle; /** * Opens the selected node(s) one or various in Edit window. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class OpenInEditNodeWindow extends BasicNodesManipulator { private Node[] nodes; + @Override public void setup(Node[] nodes, Node clickedNode) { this.nodes = nodes; } + @Override public void execute() { - EditWindowController edc = Lookup.getDefault().lookup(EditWindowController.class); - edc.openEditWindow(); + AttributesUIController edc = Lookup.getDefault().lookup(AttributesUIController.class); + edc.openWindowAndRequestActive(); edc.editNodes(nodes); } + @Override public String getName() { if (nodes.length > 1) { return NbBundle.getMessage(OpenInEditNodeWindow.class, "OpenInEditNodeWindow.name.multiple"); @@ -75,6 +80,7 @@ public String getName() { } } + @Override public String getDescription() { if (nodes.length > 1) { return NbBundle.getMessage(OpenInEditNodeWindow.class, "OpenInEditNodeWindow.description.multiple"); @@ -83,23 +89,28 @@ public String getDescription() { } } + @Override public boolean canExecute() { return true; } + @Override public ManipulatorUI getUI() { return null; } + @Override public int getType() { return 0; } + @Override public int getPosition() { return 0; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/edit.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/edit.svg", false); } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/OpenInEditNodeWindowBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/OpenInEditNodeWindowBuilder.java index e773015e18..e5a0969ec2 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/OpenInEditNodeWindowBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/OpenInEditNodeWindowBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.nodes; import org.gephi.datalab.spi.nodes.NodesManipulator; @@ -47,11 +48,13 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for ClearNodesData nodes manipulator. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=NodesManipulatorBuilder.class) -public class OpenInEditNodeWindowBuilder implements NodesManipulatorBuilder{ +@ServiceProvider(service = NodesManipulatorBuilder.class) +public class OpenInEditNodeWindowBuilder implements NodesManipulatorBuilder { + @Override public NodesManipulator getNodesManipulator() { return new OpenInEditNodeWindow(); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/RemoveNodeFromGroup.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/RemoveNodeFromGroup.java deleted file mode 100644 index fa80d82bf8..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/RemoveNodeFromGroup.java +++ /dev/null @@ -1,105 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Eduardo Ramos -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.datalab.plugin.manipulators.nodes; - -import javax.swing.Icon; -import org.gephi.datalab.api.GraphElementsController; -import org.gephi.datalab.spi.ManipulatorUI; -import org.gephi.graph.api.Node; -import org.openide.util.Lookup; -import org.openide.util.NbBundle; - -/** - * Nodes manipulator that removes a node from its group if it has one. If the last node of the group is removed, breaks the group. - * @author Eduardo Ramos - */ -public class RemoveNodeFromGroup extends BasicNodesManipulator { - - private Node[] nodes; - - public void setup(Node[] nodes, Node clickedNode) { - this.nodes = nodes; - } - - public void execute() { - GraphElementsController gec = Lookup.getDefault().lookup(GraphElementsController.class); - gec.removeNodesFromGroup(nodes);//At least 1 node is in a group. And we don't have to check now every node because the removeNodesFromGroup method does it for us. - } - - public String getName() { - if(nodes.length>1){ - return NbBundle.getMessage(RemoveNodeFromGroup.class, "RemoveNodeFromGroup.name.multiple"); - }else{ - return NbBundle.getMessage(RemoveNodeFromGroup.class, "RemoveNodeFromGroup.name.single"); - } - } - - public String getDescription() { - return ""; - } - - public boolean canExecute() { - GraphElementsController gec = Lookup.getDefault().lookup(GraphElementsController.class); - for (Node n : nodes) { - if (gec.isNodeInGroup(n)) { - return true;//If any of the nodes can be removed from its group, then allow to execute this action. - } - } - return false; - } - - public ManipulatorUI getUI() { - return null; - } - - public int getType() { - return 300; - } - - public int getPosition() { - return 400; - } - - public Icon getIcon() { - return null; - } -} diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/RemoveNodeFromGroupBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/RemoveNodeFromGroupBuilder.java deleted file mode 100644 index c613c3ac24..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/RemoveNodeFromGroupBuilder.java +++ /dev/null @@ -1,58 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Eduardo Ramos -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.datalab.plugin.manipulators.nodes; - -import org.gephi.datalab.spi.nodes.NodesManipulator; -import org.gephi.datalab.spi.nodes.NodesManipulatorBuilder; -import org.openide.util.lookup.ServiceProvider; - -/** - * Builder for RemoveNodeFromGroup nodes manipulator. - * @author Eduardo Ramos - */ -@ServiceProvider(service=NodesManipulatorBuilder.class) -public class RemoveNodeFromGroupBuilder implements NodesManipulatorBuilder{ - - public NodesManipulator getNodesManipulator() { - return new RemoveNodeFromGroup(); - } -} diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SelectEdgesOnTable.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SelectEdgesOnTable.java index dab4f6e969..8af888ab10 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SelectEdgesOnTable.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SelectEdgesOnTable.java @@ -39,11 +39,12 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.nodes; import javax.swing.Icon; -import org.gephi.datalab.api.datatables.DataTablesController; import org.gephi.datalab.api.GraphElementsController; +import org.gephi.datalab.api.datatables.DataTablesController; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.graph.api.Edge; import org.gephi.graph.api.Node; @@ -53,13 +54,15 @@ Development and Distribution License("CDDL") (collectively, the /** * Nodes manipulator that selects in edges table all edges that have a node. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class SelectEdgesOnTable extends BasicNodesManipulator { private Node node; private Edge[] edges; + @Override public void setup(Node[] nodes, Node clickedNode) { this.node = clickedNode; if (Lookup.getDefault().lookup(GraphElementsController.class).isNodeInGraph(node)) { @@ -67,37 +70,46 @@ public void setup(Node[] nodes, Node clickedNode) { } } + @Override public void execute() { DataTablesController dtc = Lookup.getDefault().lookup(DataTablesController.class); dtc.setEdgeTableSelection(edges); dtc.selectEdgesTable(); } + @Override public String getName() { return NbBundle.getMessage(SelectEdgesOnTable.class, "SelectEdgesOnTable.name"); } + @Override public String getDescription() { return ""; } + @Override public boolean canExecute() { - return edges!=null;//Do not enable if the node has no edges. + return edges != null;//Do not enable if the node has no edges. } + @Override public ManipulatorUI getUI() { return null; } + @Override public int getType() { return 100; } + @Override public int getPosition() { return 200; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/table-select-row.png", true); + return ImageUtilities + .loadImageIcon("DataLaboratoryPlugin/table-select-row.svg", false); } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SelectEdgesOnTableBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SelectEdgesOnTableBuilder.java index c75245475c..0b9b431bb2 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SelectEdgesOnTableBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SelectEdgesOnTableBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.nodes; @@ -48,11 +49,13 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for SelectEdgesOnTable nodes manipulator. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=NodesManipulatorBuilder.class) -public class SelectEdgesOnTableBuilder implements NodesManipulatorBuilder{ +@ServiceProvider(service = NodesManipulatorBuilder.class) +public class SelectEdgesOnTableBuilder implements NodesManipulatorBuilder { + @Override public NodesManipulator getNodesManipulator() { return new SelectEdgesOnTable(); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SelectNeighboursOnTable.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SelectNeighboursOnTable.java index bda243bf46..07d7aa5e89 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SelectNeighboursOnTable.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SelectNeighboursOnTable.java @@ -39,11 +39,12 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.nodes; import javax.swing.Icon; -import org.gephi.datalab.api.datatables.DataTablesController; import org.gephi.datalab.api.GraphElementsController; +import org.gephi.datalab.api.datatables.DataTablesController; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.graph.api.Node; import org.openide.util.ImageUtilities; @@ -52,12 +53,14 @@ Development and Distribution License("CDDL") (collectively, the /** * Nodes manipulator that selects in nodes table all neighbours of a node. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -public class SelectNeighboursOnTable extends BasicNodesManipulator{ +public class SelectNeighboursOnTable extends BasicNodesManipulator { private Node node; private Node[] neighbours; + @Override public void setup(Node[] nodes, Node clickedNode) { this.node = clickedNode; if (Lookup.getDefault().lookup(GraphElementsController.class).isNodeInGraph(node)) { @@ -65,35 +68,44 @@ public void setup(Node[] nodes, Node clickedNode) { } } + @Override public void execute() { Lookup.getDefault().lookup(DataTablesController.class).setNodeTableSelection(neighbours); } + @Override public String getName() { return NbBundle.getMessage(SelectNeighboursOnTable.class, "SelectNeighboursOnTable.name"); } + @Override public String getDescription() { return ""; } + @Override public boolean canExecute() { return neighbours != null;//Do not enable if the node has no neighbours. } + @Override public ManipulatorUI getUI() { return null; } + @Override public int getType() { return 100; } + @Override public int getPosition() { return 100; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/table-select-row.png", true); + return ImageUtilities + .loadImageIcon("DataLaboratoryPlugin/table-select-row.svg", false); } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SelectNeighboursOnTableBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SelectNeighboursOnTableBuilder.java index d325308f68..5f510b9a9f 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SelectNeighboursOnTableBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SelectNeighboursOnTableBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.nodes; import org.gephi.datalab.spi.nodes.NodesManipulator; @@ -47,11 +48,13 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for SelectNeighboursOnTable nodes manipulator. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=NodesManipulatorBuilder.class) -public class SelectNeighboursOnTableBuilder implements NodesManipulatorBuilder{ +@ServiceProvider(service = NodesManipulatorBuilder.class) +public class SelectNeighboursOnTableBuilder implements NodesManipulatorBuilder { + @Override public NodesManipulator getNodesManipulator() { return new SelectNeighboursOnTable(); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SelectOnGraph.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SelectOnGraph.java index ecf468ddf7..2c7c2642f5 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SelectOnGraph.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SelectOnGraph.java @@ -39,55 +39,75 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.nodes; import javax.swing.Icon; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.graph.api.Node; -import org.gephi.visualization.VizController; +import org.gephi.visualization.api.VisualizationController; import org.openide.util.ImageUtilities; +import org.openide.util.Lookup; import org.openide.util.NbBundle; /** - * Nodes manipulator that centers the graph view to show a node. - * @author Eduardo Ramos + * Nodes manipulator that centers the graph view to show a node and selects one or more nodes. + * + * @author Eduardo Ramos */ public class SelectOnGraph extends BasicNodesManipulator { - private Node node; + private Node[] nodes; + private Node clickedNode; + + @Override public void setup(Node[] nodes, Node clickedNode) { - this.node=clickedNode; + this.nodes = nodes; + this.clickedNode = clickedNode; } + @Override public void execute() { - VizController.getInstance().getSelectionManager().centerOnNode(node); + VisualizationController vc = Lookup.getDefault().lookup(VisualizationController.class); + if (vc != null) { + vc.selectNodes(nodes); + vc.centerOnNode(clickedNode); + } } + @Override public String getName() { return NbBundle.getMessage(SelectOnGraph.class, "SelectOnGraph.name"); } + @Override public String getDescription() { return ""; } + @Override public boolean canExecute() { return true; } + @Override public ManipulatorUI getUI() { return null; } + @Override public int getType() { return 100; } + @Override public int getPosition() { return 0; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/magnifier--arrow.png", true); + return ImageUtilities + .loadImageIcon("DataLaboratoryPlugin/magnifier--arrow.svg", false); } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SelectOnGraphBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SelectOnGraphBuilder.java index 8732f918a3..2025f5cb04 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SelectOnGraphBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SelectOnGraphBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.nodes; import org.gephi.datalab.spi.nodes.NodesManipulator; @@ -47,11 +48,13 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for SelectOnGraph nodes manipulator. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=NodesManipulatorBuilder.class) -public class SelectOnGraphBuilder implements NodesManipulatorBuilder{ +@ServiceProvider(service = NodesManipulatorBuilder.class) +public class SelectOnGraphBuilder implements NodesManipulatorBuilder { + @Override public NodesManipulator getNodesManipulator() { return new SelectOnGraph(); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SetNodesSize.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SetNodesSize.java index c06335f497..ffad1691e7 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SetNodesSize.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SetNodesSize.java @@ -1,44 +1,45 @@ /* -Copyright 2008-2010 Gephi -Authors : Eduardo Ramos -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. + Copyright 2008-2010 Gephi + Authors : Eduardo Ramos + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2011 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.nodes; import javax.swing.Icon; @@ -50,24 +51,28 @@ Development and Distribution License("CDDL") (collectively, the /** * Nodes manipulator that sets a given size for all the selected nodes. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class SetNodesSize extends BasicNodesManipulator { private Node[] nodes; private float size = 1.0f; + @Override public void setup(Node[] nodes, Node clickedNode) { this.nodes = nodes; - size=clickedNode.getNodeData().getSize();//Show size of the clicked node in UI + size = clickedNode.size();//Show size of the clicked node in UI } + @Override public void execute() { - for(Node node:nodes){ - node.getNodeData().setSize(size); + for (Node node : nodes) { + node.setSize(size); } } + @Override public String getName() { if (nodes.length > 1) { return NbBundle.getMessage(SetNodesSize.class, "SetNodesSize.name.multiple"); @@ -76,28 +81,34 @@ public String getName() { } } + @Override public String getDescription() { return ""; } + @Override public boolean canExecute() { return true; } + @Override public ManipulatorUI getUI() { return new SetNodesSizeUI(); } + @Override public int getType() { return 400; } + @Override public int getPosition() { return 2112;//We are the priests of the temples of syrinx! } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/size.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/size.svg", false); } public float getSize() { diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SetNodesSizeBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SetNodesSizeBuilder.java index 350e328753..4dc0ab23fe 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SetNodesSizeBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SetNodesSizeBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.nodes; import org.gephi.datalab.spi.nodes.NodesManipulator; @@ -47,11 +48,13 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for SetNodesSize nodes manipulator. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=NodesManipulatorBuilder.class) -public class SetNodesSizeBuilder implements NodesManipulatorBuilder{ +@ServiceProvider(service = NodesManipulatorBuilder.class) +public class SetNodesSizeBuilder implements NodesManipulatorBuilder { + @Override public NodesManipulator getNodesManipulator() { return new SetNodesSize(); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/Settle.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/Settle.java index ea354fdc86..35fe20874c 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/Settle.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/Settle.java @@ -39,11 +39,12 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.nodes; import javax.swing.Icon; -import org.gephi.datalab.api.datatables.DataTablesController; import org.gephi.datalab.api.GraphElementsController; +import org.gephi.datalab.api.datatables.DataTablesController; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.graph.api.Node; import org.openide.util.ImageUtilities; @@ -52,24 +53,28 @@ Development and Distribution License("CDDL") (collectively, the /** * Nodes manipulator that settles (fixed position) one or more nodes. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class Settle extends BasicNodesManipulator { private Node[] nodes; private Node clickedNode; + @Override public void setup(Node[] nodes, Node clickedNode) { this.nodes = nodes; - this.clickedNode=clickedNode; + this.clickedNode = clickedNode; } + @Override public void execute() { GraphElementsController gec = Lookup.getDefault().lookup(GraphElementsController.class); gec.setNodesFixed(nodes, true); Lookup.getDefault().lookup(DataTablesController.class).refreshCurrentTable(); } + @Override public String getName() { if (nodes.length > 1) { return NbBundle.getMessage(Settle.class, "Settle.name.multiple"); @@ -78,28 +83,34 @@ public String getName() { } } + @Override public String getDescription() { return ""; } + @Override public boolean canExecute() { GraphElementsController gec = Lookup.getDefault().lookup(GraphElementsController.class); return !gec.isNodeFixed(clickedNode); } + @Override public ManipulatorUI getUI() { return null; } + @Override public int getType() { return 400; } + @Override public int getPosition() { return 0; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/settle.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/settle.svg", false); } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SettleBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SettleBuilder.java index 8096262f83..d9719aa22d 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SettleBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/SettleBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.nodes; import org.gephi.datalab.spi.nodes.NodesManipulator; @@ -47,11 +48,13 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for Settle nodes manipulator. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=NodesManipulatorBuilder.class) -public class SettleBuilder implements NodesManipulatorBuilder{ +@ServiceProvider(service = NodesManipulatorBuilder.class) +public class SettleBuilder implements NodesManipulatorBuilder { + @Override public NodesManipulator getNodesManipulator() { return new Settle(); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/Ungroup.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/Ungroup.java deleted file mode 100644 index dc47bc8831..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/Ungroup.java +++ /dev/null @@ -1,106 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Eduardo Ramos -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.datalab.plugin.manipulators.nodes; - -import javax.swing.Icon; -import org.gephi.datalab.api.GraphElementsController; -import org.gephi.datalab.spi.ManipulatorUI; -import org.gephi.graph.api.Node; -import org.openide.util.ImageUtilities; -import org.openide.util.Lookup; -import org.openide.util.NbBundle; - -/** - * Nodes manipulator that breaks one or more selected groups. - * @author Eduardo Ramos - */ -public class Ungroup extends BasicNodesManipulator { - - private Node[] nodes; - - public void setup(Node[] nodes, Node clickedNode) { - this.nodes = nodes; - } - - public void execute() { - GraphElementsController gec = Lookup.getDefault().lookup(GraphElementsController.class); - gec.ungroupNodes(nodes);//At least 1 node is a group. And we don't have to check now every node because the ungroupNodes method does it for us. - } - - public String getName() { - if (nodes.length > 1) { - return NbBundle.getMessage(Ungroup.class, "Ungroup.name.multiple"); - } else { - return NbBundle.getMessage(Ungroup.class, "Ungroup.name.single"); - } - } - - public String getDescription() { - return ""; - } - - public boolean canExecute() { - GraphElementsController gec = Lookup.getDefault().lookup(GraphElementsController.class); - for (Node n : nodes) { - if (gec.canUngroupNode(n)) { - return true;//If any of the nodes can be ungrouped, then allow to execute this action. - } - } - return false; - } - - public ManipulatorUI getUI() { - return null; - } - - public int getType() { - return 300; - } - - public int getPosition() { - return 100; - } - - public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/ungroup.png", true); - } -} diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/UngroupBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/UngroupBuilder.java deleted file mode 100644 index 1fd2c2b963..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/UngroupBuilder.java +++ /dev/null @@ -1,59 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Eduardo Ramos -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.datalab.plugin.manipulators.nodes; - -import org.gephi.datalab.spi.nodes.NodesManipulator; -import org.gephi.datalab.spi.nodes.NodesManipulatorBuilder; -import org.openide.util.lookup.ServiceProvider; - -/** - * Builder for Ungroup nodes manipulator. - * @author Eduardo Ramos - */ -@ServiceProvider(service=NodesManipulatorBuilder.class) -public class UngroupBuilder implements NodesManipulatorBuilder{ - - public NodesManipulator getNodesManipulator() { - return new Ungroup(); - } - -} diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/UngroupRecursively.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/UngroupRecursively.java deleted file mode 100644 index 80bfaac6dd..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/UngroupRecursively.java +++ /dev/null @@ -1,106 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Eduardo Ramos -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.datalab.plugin.manipulators.nodes; - -import javax.swing.Icon; -import org.gephi.datalab.api.GraphElementsController; -import org.gephi.datalab.spi.ManipulatorUI; -import org.gephi.graph.api.Node; -import org.openide.util.ImageUtilities; -import org.openide.util.Lookup; -import org.openide.util.NbBundle; - -/** - * Nodes manipulator that breaks one or more selected groups recursively, breaking all groups formed by descendant nodes of the groups. - * @author Eduardo Ramos - */ -public class UngroupRecursively extends BasicNodesManipulator{ - - private Node[] nodes; - - public void setup(Node[] nodes, Node clickedNode) { - this.nodes = nodes; - } - - public void execute() { - GraphElementsController gec = Lookup.getDefault().lookup(GraphElementsController.class); - gec.ungroupNodesRecursively(nodes);//At least 1 node is a group. And we don't have to check now every node because the ungroupNodesRecursively method does it for us. - } - - public String getName() { - if (nodes.length > 1) { - return NbBundle.getMessage(Ungroup.class, "UngroupRecursively.name.multiple"); - } else { - return NbBundle.getMessage(Ungroup.class, "UngroupRecursively.name.single"); - } - } - - public String getDescription() { - return NbBundle.getMessage(Ungroup.class, "UngroupRecursively.description"); - } - - public boolean canExecute() { - GraphElementsController gec = Lookup.getDefault().lookup(GraphElementsController.class); - for (Node n : nodes) { - if (gec.canUngroupNode(n)) { - return true;//If any of the nodes can be ungrouped, then allow to execute this action. - } - } - return false; - } - - public ManipulatorUI getUI() { - return null; - } - - public int getType() { - return 300; - } - - public int getPosition() { - return 200; - } - - public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/ungroup.png", true); - } -} diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/UngroupRecursivelyBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/UngroupRecursivelyBuilder.java deleted file mode 100644 index e81ca9c47d..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/UngroupRecursivelyBuilder.java +++ /dev/null @@ -1,59 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Eduardo Ramos -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.datalab.plugin.manipulators.nodes; - -import org.gephi.datalab.spi.nodes.NodesManipulator; -import org.gephi.datalab.spi.nodes.NodesManipulatorBuilder; -import org.openide.util.lookup.ServiceProvider; - -/** - * Builder for UngroupRecursively nodes manipulator. - * @author Eduardo Ramos - */ -@ServiceProvider(service=NodesManipulatorBuilder.class) -public class UngroupRecursivelyBuilder implements NodesManipulatorBuilder{ - - public NodesManipulator getNodesManipulator() { - return new UngroupRecursively(); - } - -} diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ui/CopyNodesUI.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ui/CopyNodesUI.java index 3b5d65a50d..15fc5fc557 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ui/CopyNodesUI.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ui/CopyNodesUI.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.nodes.ui; import javax.swing.JFormattedTextField; @@ -52,13 +53,20 @@ Development and Distribution License("CDDL") (collectively, the /** * UI for CopyNodes nodes manipulator. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class CopyNodesUI extends javax.swing.JPanel implements ManipulatorUI { private CopyNodes manipulator; + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JSpinner copiesSpinner; + private javax.swing.JLabel descriptionLabel; + // End of variables declaration//GEN-END:variables - /** Creates new form CopyNodesUI */ + /** + * Creates new form CopyNodesUI + */ public CopyNodesUI() { initComponents(); copiesSpinner.setModel(new SpinnerNumberModel(1, 1, 100, 1));//Min: 1, Max:500 @@ -66,28 +74,34 @@ public CopyNodesUI() { spinnerText.setEditable(false);//Not editable with keyboard } + @Override public void setup(Manipulator m, DialogControls dialogControls) { this.manipulator = (CopyNodes) m; copiesSpinner.setValue(manipulator.getCopies()); } + @Override public void unSetup() { manipulator.setCopies((Integer) copiesSpinner.getValue()); } + @Override public String getDisplayName() { return manipulator.getName(); } + @Override public JPanel getSettingsPanel() { return this; } + @Override public boolean isModal() { return true; } - /** This method is called from within the constructor to + /** + * This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. @@ -100,31 +114,32 @@ private void initComponents() { copiesSpinner = new javax.swing.JSpinner(); descriptionLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - descriptionLabel.setText(org.openide.util.NbBundle.getMessage(CopyNodesUI.class, "CopyNodesUI.descriptionLabel.text")); // NOI18N + descriptionLabel.setText( + org.openide.util.NbBundle.getMessage(CopyNodesUI.class, "CopyNodesUI.descriptionLabel.text")); // NOI18N javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addComponent(descriptionLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 160, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(copiesSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, 58, javax.swing.GroupLayout.PREFERRED_SIZE) - .addContainerGap()) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(descriptionLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 160, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, + javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(copiesSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, 58, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(descriptionLabel) - .addComponent(copiesSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(descriptionLabel) + .addComponent(copiesSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); }// //GEN-END:initComponents - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JSpinner copiesSpinner; - private javax.swing.JLabel descriptionLabel; - // End of variables declaration//GEN-END:variables } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ui/LinkNodesUI.form b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ui/LinkNodesUI.form index 15c9303d11..8661ec4668 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ui/LinkNodesUI.form +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ui/LinkNodesUI.form @@ -1,4 +1,4 @@ - + @@ -23,7 +23,7 @@ - + diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ui/LinkNodesUI.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ui/LinkNodesUI.java index d9acb2f89c..01898a7904 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ui/LinkNodesUI.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ui/LinkNodesUI.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.nodes.ui; import javax.swing.JPanel; @@ -50,55 +51,73 @@ Development and Distribution License("CDDL") (collectively, the /** * UI for LinkNodes nodes manipulator. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class LinkNodesUI extends javax.swing.JPanel implements ManipulatorUI { private LinkNodes manipulator; private Node[] nodes; + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JLabel descriptionLabel; + private javax.swing.JRadioButton directedEdge; + private javax.swing.ButtonGroup edgeTypeButtonGroup; + private javax.swing.JLabel edgeTypeLabel; + private javax.swing.JComboBox sourceNodeComboBox; + private javax.swing.JLabel sourceNodeLabel; + private javax.swing.JRadioButton undirectedEdge; + // End of variables declaration//GEN-END:variables - /** Creates new form LinkNodesUI */ + /** + * Creates new form LinkNodesUI + */ public LinkNodesUI() { initComponents(); } + @Override public void setup(Manipulator m, DialogControls dialogControls) { manipulator = (LinkNodes) m; nodes = manipulator.getNodes(); - if(manipulator.isDirected()){ + if (manipulator.isDirected()) { directedEdge.setSelected(true); - }else{ + } else { undirectedEdge.setSelected(true); } Node sourceNode = manipulator.getSourceNode(); //Prepare combo box with nodes data: for (int i = 0; i < nodes.length; i++) { - sourceNodeComboBox.addItem(nodes[i].getId() + " - " + nodes[i].getNodeData().getLabel()); + sourceNodeComboBox.addItem(nodes[i].getId() + " - " + nodes[i].getLabel()); if (nodes[i] == sourceNode) { sourceNodeComboBox.setSelectedIndex(i); } } } + @Override public void unSetup() { manipulator.setSourceNode(nodes[sourceNodeComboBox.getSelectedIndex()]); manipulator.setDirected(directedEdge.isSelected()); } + @Override public String getDisplayName() { return manipulator.getName(); } + @Override public JPanel getSettingsPanel() { return this; } + @Override public boolean isModal() { return true; } - /** This method is called from within the constructor to + /** + * This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. @@ -115,63 +134,63 @@ private void initComponents() { sourceNodeLabel = new javax.swing.JLabel(); edgeTypeLabel = new javax.swing.JLabel(); - descriptionLabel.setText(org.openide.util.NbBundle.getMessage(LinkNodesUI.class, "LinkNodesUI.descriptionLabel.text")); // NOI18N + descriptionLabel.setText( + org.openide.util.NbBundle.getMessage(LinkNodesUI.class, "LinkNodesUI.descriptionLabel.text")); // NOI18N edgeTypeButtonGroup.add(directedEdge); - directedEdge.setText(org.openide.util.NbBundle.getMessage(LinkNodesUI.class, "LinkNodesUI.directedEdge.text")); // NOI18N + directedEdge.setText( + org.openide.util.NbBundle.getMessage(LinkNodesUI.class, "LinkNodesUI.directedEdge.text")); // NOI18N edgeTypeButtonGroup.add(undirectedEdge); - undirectedEdge.setText(org.openide.util.NbBundle.getMessage(LinkNodesUI.class, "LinkNodesUI.undirectedEdge.text")); // NOI18N + undirectedEdge.setText( + org.openide.util.NbBundle.getMessage(LinkNodesUI.class, "LinkNodesUI.undirectedEdge.text")); // NOI18N - sourceNodeLabel.setText(org.openide.util.NbBundle.getMessage(LinkNodesUI.class, "LinkNodesUI.sourceNodeLabel.text")); // NOI18N + sourceNodeLabel.setText( + org.openide.util.NbBundle.getMessage(LinkNodesUI.class, "LinkNodesUI.sourceNodeLabel.text")); // NOI18N - edgeTypeLabel.setText(org.openide.util.NbBundle.getMessage(LinkNodesUI.class, "LinkNodesUI.edgeTypeLabel.text")); // NOI18N + edgeTypeLabel.setText( + org.openide.util.NbBundle.getMessage(LinkNodesUI.class, "LinkNodesUI.edgeTypeLabel.text")); // NOI18N javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(descriptionLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 242, Short.MAX_VALUE) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(sourceNodeLabel) - .addComponent(edgeTypeLabel)) - .addGap(18, 18, 18) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addComponent(directedEdge) - .addGap(18, 18, 18) - .addComponent(undirectedEdge)) - .addComponent(sourceNodeComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 160, javax.swing.GroupLayout.PREFERRED_SIZE)))) - .addContainerGap()) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(descriptionLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 242, Short.MAX_VALUE) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(sourceNodeLabel) + .addComponent(edgeTypeLabel)) + .addGap(18, 18, 18) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addComponent(directedEdge) + .addGap(18, 18, 18) + .addComponent(undirectedEdge)) + .addComponent(sourceNodeComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 160, + javax.swing.GroupLayout.PREFERRED_SIZE)))) + .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addComponent(descriptionLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 51, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(5, 5, 5) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(sourceNodeLabel) - .addComponent(sourceNodeComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(18, 18, 18) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(directedEdge, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(undirectedEdge) - .addComponent(edgeTypeLabel)) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(descriptionLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 51, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(5, 5, 5) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(sourceNodeLabel) + .addComponent(sourceNodeComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(18, 18, 18) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(directedEdge, javax.swing.GroupLayout.PREFERRED_SIZE, 23, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(undirectedEdge) + .addComponent(edgeTypeLabel)) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); }// //GEN-END:initComponents - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JLabel descriptionLabel; - private javax.swing.JRadioButton directedEdge; - private javax.swing.ButtonGroup edgeTypeButtonGroup; - private javax.swing.JLabel edgeTypeLabel; - private javax.swing.JComboBox sourceNodeComboBox; - private javax.swing.JLabel sourceNodeLabel; - private javax.swing.JRadioButton undirectedEdge; - // End of variables declaration//GEN-END:variables } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ui/MergeNodesUI.form b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ui/MergeNodesUI.form index b88cb20c46..e3ecb1febe 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ui/MergeNodesUI.form +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ui/MergeNodesUI.form @@ -1,4 +1,4 @@ - + diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ui/MergeNodesUI.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ui/MergeNodesUI.java index 4e1a65201b..827354815f 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ui/MergeNodesUI.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ui/MergeNodesUI.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.nodes.ui; import java.awt.event.ActionEvent; @@ -54,14 +55,13 @@ Development and Distribution License("CDDL") (collectively, the import javax.swing.JLabel; import javax.swing.JPanel; import net.miginfocom.swing.MigLayout; -import org.gephi.data.attributes.api.AttributeColumn; import org.gephi.datalab.api.DataLaboratoryHelper; import org.gephi.datalab.plugin.manipulators.nodes.MergeNodes; import org.gephi.datalab.spi.DialogControls; import org.gephi.datalab.spi.Manipulator; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.datalab.spi.rows.merge.AttributeRowsMergeStrategy; -import org.gephi.graph.api.Attributes; +import org.gephi.graph.api.Column; import org.gephi.graph.api.Node; import org.gephi.ui.components.richtooltip.RichTooltip; import org.openide.util.ImageUtilities; @@ -69,44 +69,56 @@ Development and Distribution License("CDDL") (collectively, the public final class MergeNodesUI extends JPanel implements ManipulatorUI { - private static final ImageIcon CONFIG_BUTTONS_ICON = ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/gear.png", true); - private static final ImageIcon INFO_LABELS_ICON = ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/information.png", true); + private static final ImageIcon CONFIG_BUTTONS_ICON = + ImageUtilities.loadImageIcon("DataLaboratoryPlugin/gear.svg", false); + private static final ImageIcon INFO_LABELS_ICON = + ImageUtilities.loadImageIcon("DataLaboratoryPlugin/information.png", false); private MergeNodes manipulator; private JCheckBox deleteMergedNodesCheckBox; private JComboBox nodesComboBox; private Node[] nodes; - private Attributes[] rows; private StrategyComboBox[] strategiesComboBoxes; private StrategyConfigurationButton[] strategiesConfigurationButtons; + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JScrollPane scroll; + // End of variables declaration//GEN-END:variables - /** Creates new form MergeNodesUI */ + /** + * Creates new form MergeNodesUI + */ public MergeNodesUI() { initComponents(); } + @Override public void setup(Manipulator m, DialogControls dialogControls) { manipulator = (MergeNodes) m; loadSettings(); } + @Override public void unSetup() { manipulator.setDeleteMergedNodes(deleteMergedNodesCheckBox.isSelected()); manipulator.setSelectedNode(nodes[nodesComboBox.getSelectedIndex()]); AttributeRowsMergeStrategy[] chosenStrategies = new AttributeRowsMergeStrategy[strategiesComboBoxes.length]; for (int i = 0; i < strategiesComboBoxes.length; i++) { - chosenStrategies[i] = strategiesComboBoxes[i].getSelectedItem() != null ? ((StrategyWrapper) strategiesComboBoxes[i].getSelectedItem()).getStrategy() : null; + chosenStrategies[i] = strategiesComboBoxes[i].getSelectedItem() != null ? + ((StrategyWrapper) strategiesComboBoxes[i].getSelectedItem()).getStrategy() : null; } manipulator.setMergeStrategies(chosenStrategies); } + @Override public String getDisplayName() { return manipulator.getName(); } + @Override public JPanel getSettingsPanel() { return this; } + @Override public boolean isModal() { return true; } @@ -122,12 +134,7 @@ public void loadSettings() { } private void loadColumnsStrategies(JPanel settingsPanel) { - AttributeColumn[] columns = manipulator.getColumns(); - //Prepare node rows: - rows = new Attributes[nodes.length]; - for (int i = 0; i < nodes.length; i++) { - rows[i] = nodes[i].getAttributes(); - } + Column[] columns = manipulator.getColumns(); strategiesConfigurationButtons = new StrategyConfigurationButton[columns.length]; strategiesComboBoxes = new StrategyComboBox[columns.length]; @@ -139,7 +146,7 @@ private void loadColumnsStrategies(JPanel settingsPanel) { strategiesConfigurationButtons[i] = new StrategyConfigurationButton(i); //Strategy selection: - StrategyComboBox strategyComboBox = new StrategyComboBox(strategiesConfigurationButtons[i],infoLabel); + StrategyComboBox strategyComboBox = new StrategyComboBox(strategiesConfigurationButtons[i], infoLabel); strategiesComboBoxes[i] = strategyComboBox; for (AttributeRowsMergeStrategy strategy : getColumnAvailableStrategies(columns[i])) { strategyComboBox.addItem(new StrategyWrapper(strategy)); @@ -155,10 +162,11 @@ private void loadColumnsStrategies(JPanel settingsPanel) { } } - private List getColumnAvailableStrategies(AttributeColumn column) { - ArrayList availableStrategies = new ArrayList(); - for (AttributeRowsMergeStrategy strategy : DataLaboratoryHelper.getDefault().getAttributeRowsMergeStrategies()) { - strategy.setup(rows, manipulator.getSelectedNode().getAttributes(), column); + private List getColumnAvailableStrategies(Column column) { + ArrayList availableStrategies = new ArrayList<>(); + for (AttributeRowsMergeStrategy strategy : DataLaboratoryHelper.getDefault() + .getAttributeRowsMergeStrategies()) { + strategy.setup(nodes, manipulator.getSelectedNode(), column); if (strategy.canExecute()) { availableStrategies.add(strategy); } @@ -173,7 +181,8 @@ private void loadDescription(JPanel settingsPanel) { } private void loadDeleteMergedNodesCheckBox(JPanel settingsPanel) { - deleteMergedNodesCheckBox = new JCheckBox(getMessage("MergeNodesUI.deleteMergedNodesText"), manipulator.isDeleteMergedNodes()); + deleteMergedNodesCheckBox = + new JCheckBox(getMessage("MergeNodesUI.deleteMergedNodesText"), manipulator.isDeleteMergedNodes()); settingsPanel.add(deleteMergedNodesCheckBox, "wrap 25px"); } @@ -188,7 +197,7 @@ private void loadSelectedRow(JPanel settingsPanel) { Node selectedNode = manipulator.getSelectedNode(); for (int i = 0; i < nodes.length; i++) { - nodesComboBox.addItem(nodes[i].getId() + " - " + nodes[i].getNodeData().getLabel()); + nodesComboBox.addItem(nodes[i].getId() + " - " + nodes[i].getLabel()); if (nodes[i] == selectedNode) { nodesComboBox.setSelectedIndex(i); } @@ -210,9 +219,32 @@ private AttributeRowsMergeStrategy getStrategy(int strategyIndex) { return null; } + /** + * This method is called from within the constructor to + * initialize the form. + * WARNING: Do NOT modify this code. The content of this method is + * always regenerated by the Form Editor. + */ + // //GEN-BEGIN:initComponents + private void initComponents() { + + scroll = new javax.swing.JScrollPane(); + + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); + this.setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(scroll, javax.swing.GroupLayout.DEFAULT_SIZE, 594, Short.MAX_VALUE) + ); + layout.setVerticalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(scroll, javax.swing.GroupLayout.DEFAULT_SIZE, 320, Short.MAX_VALUE) + ); + }// //GEN-END:initComponents + class StrategyConfigurationButton extends JButton implements ActionListener { - private int strategyIndex; + private final int strategyIndex; public StrategyConfigurationButton(int strategyIndex) { this.strategyIndex = strategyIndex; @@ -226,21 +258,22 @@ public void refreshEnabledState() { setEnabled(strategy != null && strategy.getUI() != null);//Has strategy and the strategy has UI } + @Override public void actionPerformed(ActionEvent e) { DataLaboratoryHelper.getDefault().showAttributeRowsMergeStrategyUIDialog(getStrategy(strategyIndex)); } } class StrategyComboBox extends JComboBox implements ActionListener { - private StrategyConfigurationButton button; - private StrategyInfoLabel infoLabel; + private final StrategyConfigurationButton button; + private final StrategyInfoLabel infoLabel; public StrategyComboBox(StrategyConfigurationButton button, StrategyInfoLabel infoLabel) { this.button = button; this.infoLabel = infoLabel; this.addActionListener(this); } - + public void refresh() { button.refreshEnabledState(); infoLabel.refreshEnabledState(); @@ -254,7 +287,7 @@ public void actionPerformed(ActionEvent e) { class StrategyInfoLabel extends JLabel { - private int strategyIndex; + private final int strategyIndex; public StrategyInfoLabel(int strategyIndex) { this.strategyIndex = strategyIndex; @@ -308,7 +341,7 @@ private RichTooltip buildTooltip(AttributeRowsMergeStrategy strategy) { class StrategyWrapper { - private AttributeRowsMergeStrategy strategy; + private final AttributeRowsMergeStrategy strategy; public StrategyWrapper(AttributeRowsMergeStrategy strategy) { this.strategy = strategy; @@ -323,29 +356,4 @@ public AttributeRowsMergeStrategy getStrategy() { return strategy; } } - - /** This method is called from within the constructor to - * initialize the form. - * WARNING: Do NOT modify this code. The content of this method is - * always regenerated by the Form Editor. - */ - // //GEN-BEGIN:initComponents - private void initComponents() { - - scroll = new javax.swing.JScrollPane(); - - javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); - this.setLayout(layout); - layout.setHorizontalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(scroll, javax.swing.GroupLayout.DEFAULT_SIZE, 594, Short.MAX_VALUE) - ); - layout.setVerticalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(scroll, javax.swing.GroupLayout.DEFAULT_SIZE, 320, Short.MAX_VALUE) - ); - }// //GEN-END:initComponents - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JScrollPane scroll; - // End of variables declaration//GEN-END:variables } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ui/MoveNodeToGroupUI.form b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ui/MoveNodeToGroupUI.form deleted file mode 100644 index f75a33b225..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ui/MoveNodeToGroupUI.form +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ui/MoveNodeToGroupUI.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ui/MoveNodeToGroupUI.java deleted file mode 100644 index b64fc86f65..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ui/MoveNodeToGroupUI.java +++ /dev/null @@ -1,130 +0,0 @@ -/* -Copyright 2008-2010 Gephi -Authors : Eduardo Ramos -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. - */ -package org.gephi.datalab.plugin.manipulators.nodes.ui; - -import javax.swing.JPanel; -import org.gephi.datalab.plugin.manipulators.nodes.MoveNodeToGroup; -import org.gephi.datalab.spi.DialogControls; -import org.gephi.datalab.spi.Manipulator; -import org.gephi.datalab.spi.ManipulatorUI; -import org.gephi.graph.api.Node; - -/** - * UI for MoveNodeToGroup NodesManipulator - * @author Eduardo Ramos - */ -public class MoveNodeToGroupUI extends javax.swing.JPanel implements ManipulatorUI{ - private MoveNodeToGroup manipulator; - private Node[] availableGroups; - - /** Creates new form MoveNodeToGroupUI */ - public MoveNodeToGroupUI() { - initComponents(); - } - - public void setup(Manipulator m, DialogControls dialogControls) { - manipulator=(MoveNodeToGroup) m; - availableGroups=manipulator.getAvailableGroupsToMoveNodes(); - - for(Node n:availableGroups){ - availableGroupsComboBox.addItem(n.getNodeData().getId()+" - "+n.getNodeData().getLabel()); - } - } - - public void unSetup() { - manipulator.setGroup(availableGroups[availableGroupsComboBox.getSelectedIndex()]); - } - - public String getDisplayName() { - return manipulator.getName(); - } - - public JPanel getSettingsPanel() { - return this; - } - - public boolean isModal() { - return true; - } - - /** This method is called from within the constructor to - * initialize the form. - * WARNING: Do NOT modify this code. The content of this method is - * always regenerated by the Form Editor. - */ - @SuppressWarnings("unchecked") - // //GEN-BEGIN:initComponents - private void initComponents() { - - descriptionLabel = new javax.swing.JLabel(); - availableGroupsComboBox = new javax.swing.JComboBox(); - - descriptionLabel.setText(org.openide.util.NbBundle.getMessage(MoveNodeToGroupUI.class, "MoveNodeToGroupUI.descriptionLabel.text")); // NOI18N - - javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); - this.setLayout(layout); - layout.setHorizontalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) - .addComponent(availableGroupsComboBox, javax.swing.GroupLayout.Alignment.LEADING, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(descriptionLabel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - ); - layout.setVerticalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addComponent(descriptionLabel) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(availableGroupsComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - ); - }// //GEN-END:initComponents - - - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JComboBox availableGroupsComboBox; - private javax.swing.JLabel descriptionLabel; - // End of variables declaration//GEN-END:variables -} diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ui/SetNodesSizeUI.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ui/SetNodesSizeUI.java index bae899094f..1c87944ff4 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ui/SetNodesSizeUI.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/nodes/ui/SetNodesSizeUI.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.nodes.ui; import javax.swing.JPanel; @@ -52,39 +53,93 @@ Development and Distribution License("CDDL") (collectively, the /** * UI for SetNodesSize nodes manipulator. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class SetNodesSizeUI extends javax.swing.JPanel implements ManipulatorUI { private SetNodesSize manipulator; + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JLabel sizeLabel; + private javax.swing.JTextField sizeText; + // End of variables declaration//GEN-END:variables - /** Creates new form SetNodesSizeUI */ + /** + * Creates new form SetNodesSizeUI + */ public SetNodesSizeUI() { initComponents(); sizeText.setDocument(new FloatJTextFieldFilter()); } + @Override public void setup(Manipulator m, DialogControls dialogControls) { this.manipulator = (SetNodesSize) m; sizeText.setText(String.valueOf(manipulator.getSize())); } + @Override public void unSetup() { manipulator.setSize(Float.parseFloat(sizeText.getText())); } + @Override public String getDisplayName() { return manipulator.getName(); } + @Override public JPanel getSettingsPanel() { return this; } + @Override public boolean isModal() { return true; } + /** + * This method is called from within the constructor to + * initialize the form. + * WARNING: Do NOT modify this code. The content of this method is + * always regenerated by the Form Editor. + */ + @SuppressWarnings("unchecked") + // //GEN-BEGIN:initComponents + private void initComponents() { + + sizeLabel = new javax.swing.JLabel(); + sizeText = new javax.swing.JTextField(); + + sizeLabel.setText( + org.openide.util.NbBundle.getMessage(SetNodesSizeUI.class, "SetNodesSizeUI.sizeLabel.text")); // NOI18N + + sizeText.setText( + org.openide.util.NbBundle.getMessage(SetNodesSizeUI.class, "SetNodesSizeUI.sizeText.text")); // NOI18N + + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); + this.setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(sizeLabel) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(sizeText, javax.swing.GroupLayout.DEFAULT_SIZE, 47, Short.MAX_VALUE) + .addContainerGap()) + ); + layout.setVerticalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(sizeLabel) + .addComponent(sizeText, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + ); + }// //GEN-END:initComponents + /** * Filter for only allowing float numbers in a JTextField. */ @@ -95,13 +150,13 @@ class FloatJTextFieldFilter extends PlainDocument { @Override public void insertString(int offs, String str, AttributeSet a) throws BadLocationException { for (int i = 0; i < str.length(); i++) { - if (POSITIVE_FLOAT_ACCEPTED_CHARS.indexOf(String.valueOf(str.charAt(i))) == -1) { + if (!POSITIVE_FLOAT_ACCEPTED_CHARS.contains(String.valueOf(str.charAt(i)))) { return; } } - if (str.indexOf(".") != -1) { - if (getText(0, getLength()).indexOf(".") != -1) { + if (str.contains(".")) { + if (getText(0, getLength()).contains(".")) { return; } } @@ -118,46 +173,4 @@ public void remove(int offs, int len) throws BadLocationException { } } } - - /** This method is called from within the constructor to - * initialize the form. - * WARNING: Do NOT modify this code. The content of this method is - * always regenerated by the Form Editor. - */ - @SuppressWarnings("unchecked") - // //GEN-BEGIN:initComponents - private void initComponents() { - - sizeLabel = new javax.swing.JLabel(); - sizeText = new javax.swing.JTextField(); - - sizeLabel.setText(org.openide.util.NbBundle.getMessage(SetNodesSizeUI.class, "SetNodesSizeUI.sizeLabel.text")); // NOI18N - - sizeText.setText(org.openide.util.NbBundle.getMessage(SetNodesSizeUI.class, "SetNodesSizeUI.sizeText.text")); // NOI18N - - javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); - this.setLayout(layout); - layout.setHorizontalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addComponent(sizeLabel) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(sizeText, javax.swing.GroupLayout.DEFAULT_SIZE, 47, Short.MAX_VALUE) - .addContainerGap()) - ); - layout.setVerticalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(sizeLabel) - .addComponent(sizeText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - ); - }// //GEN-END:initComponents - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JLabel sizeLabel; - private javax.swing.JTextField sizeText; - // End of variables declaration//GEN-END:variables } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/AverageNumber.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/AverageNumber.java index bc169a3dd3..adf4d88953 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/AverageNumber.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/AverageNumber.java @@ -39,16 +39,17 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.rows.merge; import java.math.BigDecimal; import javax.swing.Icon; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeUtils; import org.gephi.datalab.api.AttributeColumnsController; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.datalab.spi.rows.merge.AttributeRowsMergeStrategy; -import org.gephi.graph.api.Attributes; +import org.gephi.graph.api.AttributeUtils; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Element; import org.gephi.utils.StatisticsUtils; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; @@ -57,52 +58,64 @@ Development and Distribution License("CDDL") (collectively, the /** * AttributeRowsMergeStrategy for any number or number list column that * calculates the average of all the values. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class AverageNumber implements AttributeRowsMergeStrategy { - private Attributes[] rows; - private AttributeColumn column; + private Element[] rows; + private Column column; private BigDecimal result; - public void setup(Attributes[] rows, Attributes selectedRow, AttributeColumn column) { + @Override + public void setup(Element[] rows, Element selectedRow, Column column) { this.rows = rows; this.column = column; } + @Override public Object getReducedValue() { return result; } + @Override public void execute() { - result = StatisticsUtils.average(Lookup.getDefault().lookup(AttributeColumnsController.class).getRowsColumnNumbers(rows, column)); + result = StatisticsUtils + .average(Lookup.getDefault().lookup(AttributeColumnsController.class).getRowsColumnNumbers(rows, column)); } + @Override public String getName() { return NbBundle.getMessage(AverageNumber.class, "AverageNumber.name"); } + @Override public String getDescription() { return NbBundle.getMessage(AverageNumber.class, "AverageNumber.description"); } + @Override public boolean canExecute() { - return AttributeUtils.getDefault().isNumberOrNumberListColumn(column); + return AttributeUtils.isNumberType(column.getTypeClass()); } + @Override public ManipulatorUI getUI() { return null; } + @Override public int getType() { return 100; } + @Override public int getPosition() { return 0; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/balance.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/balance.svg", false); } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/AverageNumberBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/AverageNumberBuilder.java index 756a5c863c..6a4e7c7a46 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/AverageNumberBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/AverageNumberBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.rows.merge; import org.gephi.datalab.spi.rows.merge.AttributeRowsMergeStrategy; @@ -47,13 +48,15 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for AverageNumber AttributeColumnsMergeStrategy. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=AttributeRowsMergeStrategyBuilder.class) +@ServiceProvider(service = AttributeRowsMergeStrategyBuilder.class) public class AverageNumberBuilder implements AttributeRowsMergeStrategyBuilder { + @Override public AttributeRowsMergeStrategy getAttributeRowsMergeStrategy() { return new AverageNumber(); } - + } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/FirstQuartileNumber.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/FirstQuartileNumber.java index 080500c779..2ca2823c7a 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/FirstQuartileNumber.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/FirstQuartileNumber.java @@ -39,16 +39,17 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.rows.merge; import java.math.BigDecimal; import javax.swing.Icon; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeUtils; import org.gephi.datalab.api.AttributeColumnsController; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.datalab.spi.rows.merge.AttributeRowsMergeStrategy; -import org.gephi.graph.api.Attributes; +import org.gephi.graph.api.AttributeUtils; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Element; import org.gephi.utils.StatisticsUtils; import org.openide.util.Lookup; import org.openide.util.NbBundle; @@ -56,51 +57,63 @@ Development and Distribution License("CDDL") (collectively, the /** * AttributeRowsMergeStrategy for any number or number list column that * calculates the first quartile of all the values. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class FirstQuartileNumber implements AttributeRowsMergeStrategy { - private Attributes[] rows; - private AttributeColumn column; + private Element[] rows; + private Column column; private BigDecimal result; - public void setup(Attributes[] rows, Attributes selectedRow, AttributeColumn column) { + @Override + public void setup(Element[] rows, Element selectedRow, Column column) { this.rows = rows; this.column = column; } + @Override public Object getReducedValue() { return result; } + @Override public void execute() { - result = StatisticsUtils.quartile1(Lookup.getDefault().lookup(AttributeColumnsController.class).getRowsColumnNumbers(rows, column)); + result = StatisticsUtils + .quartile1(Lookup.getDefault().lookup(AttributeColumnsController.class).getRowsColumnNumbers(rows, column)); } + @Override public String getName() { return NbBundle.getMessage(FirstQuartileNumber.class, "FirstQuartileNumber.name"); } + @Override public String getDescription() { return NbBundle.getMessage(FirstQuartileNumber.class, "FirstQuartileNumber.description"); } + @Override public boolean canExecute() { - return AttributeUtils.getDefault().isNumberOrNumberListColumn(column); + return AttributeUtils.isNumberType(column.getTypeClass()); } + @Override public ManipulatorUI getUI() { return null; } + @Override public int getType() { return 100; } + @Override public int getPosition() { return 100; } + @Override public Icon getIcon() { return null; } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/FirstQuartileNumberBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/FirstQuartileNumberBuilder.java index 99810acfb8..538a972b2a 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/FirstQuartileNumberBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/FirstQuartileNumberBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.rows.merge; import org.gephi.datalab.spi.rows.merge.AttributeRowsMergeStrategy; @@ -47,13 +48,15 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for FirstQuartileNumber AttributeColumnsMergeStrategy. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=AttributeRowsMergeStrategyBuilder.class) +@ServiceProvider(service = AttributeRowsMergeStrategyBuilder.class) public class FirstQuartileNumberBuilder implements AttributeRowsMergeStrategyBuilder { + @Override public AttributeRowsMergeStrategy getAttributeRowsMergeStrategy() { return new FirstQuartileNumber(); } - + } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/InterQuartileRangeNumber.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/InterQuartileRangeNumber.java index 35bd2efe9c..1ed43d2df4 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/InterQuartileRangeNumber.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/InterQuartileRangeNumber.java @@ -39,16 +39,17 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.rows.merge; import java.math.BigDecimal; import javax.swing.Icon; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeUtils; import org.gephi.datalab.api.AttributeColumnsController; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.datalab.spi.rows.merge.AttributeRowsMergeStrategy; -import org.gephi.graph.api.Attributes; +import org.gephi.graph.api.AttributeUtils; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Element; import org.gephi.utils.StatisticsUtils; import org.openide.util.Lookup; import org.openide.util.NbBundle; @@ -56,26 +57,31 @@ Development and Distribution License("CDDL") (collectively, the /** * AttributeRowsMergeStrategy for any number or number list column that * calculates the inter quartile range of all the values. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class InterQuartileRangeNumber implements AttributeRowsMergeStrategy { - private Attributes[] rows; - private AttributeColumn column; + private Element[] rows; + private Column column; private BigDecimal result; - public void setup(Attributes[] rows, Attributes selectedRow, AttributeColumn column) { + @Override + public void setup(Element[] rows, Element selectedRow, Column column) { this.rows = rows; this.column = column; } + @Override public Object getReducedValue() { return result; } + @Override public void execute() { - BigDecimal Q1, Q3; - Number[] numbers=Lookup.getDefault().lookup(AttributeColumnsController.class).getRowsColumnNumbers(rows, column); + BigDecimal Q1, Q3; + Number[] numbers = + Lookup.getDefault().lookup(AttributeColumnsController.class).getRowsColumnNumbers(rows, column); Q3 = StatisticsUtils.quartile3(numbers); Q1 = StatisticsUtils.quartile1(numbers); if (Q3 != null && Q1 != null) { @@ -85,30 +91,37 @@ public void execute() { } } + @Override public String getName() { return NbBundle.getMessage(FirstQuartileNumber.class, "InterQuartileRangeNumber.name"); } + @Override public String getDescription() { return NbBundle.getMessage(FirstQuartileNumber.class, "InterQuartileRangeNumber.description"); } + @Override public boolean canExecute() { - return AttributeUtils.getDefault().isNumberOrNumberListColumn(column); + return AttributeUtils.isNumberType(column.getTypeClass()); } + @Override public ManipulatorUI getUI() { return null; } + @Override public int getType() { return 100; } + @Override public int getPosition() { return 400; } + @Override public Icon getIcon() { return null; } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/InterQuartileRangeNumberBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/InterQuartileRangeNumberBuilder.java index b63fe87069..72ca6529de 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/InterQuartileRangeNumberBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/InterQuartileRangeNumberBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.rows.merge; import org.gephi.datalab.spi.rows.merge.AttributeRowsMergeStrategy; @@ -47,13 +48,15 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for InterQuartileRangeNumber AttributeColumnsMergeStrategy. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=AttributeRowsMergeStrategyBuilder.class) +@ServiceProvider(service = AttributeRowsMergeStrategyBuilder.class) public class InterQuartileRangeNumberBuilder implements AttributeRowsMergeStrategyBuilder { + @Override public AttributeRowsMergeStrategy getAttributeRowsMergeStrategy() { return new InterQuartileRangeNumber(); } - + } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/JoinWithSeparator.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/JoinWithSeparator.java index a6183c1482..deaf367650 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/JoinWithSeparator.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/JoinWithSeparator.java @@ -1,129 +1,146 @@ /* -Copyright 2008-2011 Gephi -Authors : Eduardo Ramos -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. + Copyright 2008-2011 Gephi + Authors : Eduardo Ramos + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2011 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.rows.merge; +import java.time.ZoneId; import javax.swing.Icon; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeType; import org.gephi.datalab.plugin.manipulators.rows.merge.ui.JoinWithSeparatorUI; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.datalab.spi.rows.merge.AttributeRowsMergeStrategy; -import org.gephi.graph.api.Attributes; +import org.gephi.graph.api.AttributeUtils; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Element; +import org.gephi.graph.api.TimeFormat; import org.openide.util.ImageUtilities; import org.openide.util.NbBundle; import org.openide.util.NbPreferences; /** * AttributeRowsMergeStrategy for any String or list column that joins the row values with a separator. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class JoinWithSeparator implements AttributeRowsMergeStrategy { public static final String SEPARATOR_SAVED_PREFERENCES = "JoinWithSeparator_Separator"; - private static final String DEFAULT_SEPARATOR = ","; - private Attributes[] rows; - private AttributeColumn column; + private static final String DEFAULT_SEPARATOR = ", "; + private Element[] rows; + private Column column; private String separator, result; public JoinWithSeparator() { - separator = NbPreferences.forModule(JoinWithSeparator.class).get(SEPARATOR_SAVED_PREFERENCES, DEFAULT_SEPARATOR); + separator = + NbPreferences.forModule(JoinWithSeparator.class).get(SEPARATOR_SAVED_PREFERENCES, DEFAULT_SEPARATOR); } - public void setup(Attributes[] rows, Attributes selectedRow, AttributeColumn column) { + @Override + public void setup(Element[] rows, Element selectedRow, Column column) { this.rows = rows; this.column = column; } + @Override public Object getReducedValue() { return result; } + @Override public void execute() { NbPreferences.forModule(JoinWithSeparator.class).put(SEPARATOR_SAVED_PREFERENCES, separator); - + Object value; StringBuilder sb; final int rowsCount = rows.length; - final int columnIndex=column.getIndex(); - + + TimeFormat timeFormat = column.getTable().getGraph().getModel().getTimeFormat(); + ZoneId timeZone = column.getTable().getGraph().getModel().getTimeZone(); + sb = new StringBuilder(); for (int i = 0; i < rows.length; i++) { - value = rows[i].getValue(columnIndex); + value = rows[i].getAttribute(column); if (value != null) { - sb.append(value.toString()); + sb.append(AttributeUtils.print(value, timeFormat, timeZone)); if (i < rowsCount - 1) { sb.append(separator); } } } - result=sb.toString(); + result = sb.toString(); } + @Override public String getName() { return NbBundle.getMessage(AverageNumber.class, "JoinWithSeparator.name"); } + @Override public String getDescription() { return NbBundle.getMessage(AverageNumber.class, "JoinWithSeparator.description"); } + @Override public boolean canExecute() { - return column.getType().isListType() || column.getType() == AttributeType.STRING; + return Object[].class.isAssignableFrom(column.getTypeClass()) || column.getTypeClass() == String.class; } + @Override public ManipulatorUI getUI() { return new JoinWithSeparatorUI(); } + @Override public int getType() { return 0; } + @Override public int getPosition() { return 100; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/join.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/join.svg", false); } public String getSeparator() { diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/JoinWithSeparatorBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/JoinWithSeparatorBuilder.java index 4717f288bb..edaeaa3fd2 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/JoinWithSeparatorBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/JoinWithSeparatorBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.rows.merge; import org.gephi.datalab.spi.rows.merge.AttributeRowsMergeStrategy; @@ -47,13 +48,15 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for JoinWithSeparator AttributeColumnsMergeStrategy. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=AttributeRowsMergeStrategyBuilder.class) +@ServiceProvider(service = AttributeRowsMergeStrategyBuilder.class) public class JoinWithSeparatorBuilder implements AttributeRowsMergeStrategyBuilder { + @Override public AttributeRowsMergeStrategy getAttributeRowsMergeStrategy() { return new JoinWithSeparator(); } - + } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/KeepSelectedRowValue.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/KeepSelectedRowValue.java index 41cdfa7b00..315df45f06 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/KeepSelectedRowValue.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/KeepSelectedRowValue.java @@ -39,64 +39,76 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.rows.merge; import javax.swing.Icon; -import org.gephi.data.attributes.api.AttributeColumn; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.datalab.spi.rows.merge.AttributeRowsMergeStrategy; -import org.gephi.graph.api.Attributes; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Element; import org.openide.util.ImageUtilities; import org.openide.util.NbBundle; /** * AttributeRowsMergeStrategy that simply keeps the value of the main row selected. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class KeepSelectedRowValue implements AttributeRowsMergeStrategy { - private Attributes row; - private AttributeColumn column; + private Element row; + private Column column; private Object result; - public void setup(Attributes[] rows, Attributes selectedRow, AttributeColumn column) { + @Override + public void setup(Element[] rows, Element selectedRow, Column column) { this.row = selectedRow; this.column = column; } + @Override public Object getReducedValue() { return result; } + @Override public void execute() { - result = row.getValue(column.getIndex()); + result = row.getAttribute(column); } + @Override public String getName() { return NbBundle.getMessage(AverageNumber.class, "KeepSelectedRowValue.name"); } + @Override public String getDescription() { return NbBundle.getMessage(AverageNumber.class, "KeepSelectedRowValue.description"); } + @Override public boolean canExecute() { return true; } + @Override public ManipulatorUI getUI() { return null; } + @Override public int getType() { return 0; } + @Override public int getPosition() { return 0; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/table-select.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/table-select.svg", false); } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/KeepSelectedRowValueBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/KeepSelectedRowValueBuilder.java index 282b15f512..3294f072a5 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/KeepSelectedRowValueBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/KeepSelectedRowValueBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.rows.merge; import org.gephi.datalab.spi.rows.merge.AttributeRowsMergeStrategy; @@ -47,13 +48,15 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for KeepSelectedRowValue AttributeRowsMergeStrategy. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=AttributeRowsMergeStrategyBuilder.class) +@ServiceProvider(service = AttributeRowsMergeStrategyBuilder.class) public class KeepSelectedRowValueBuilder implements AttributeRowsMergeStrategyBuilder { + @Override public AttributeRowsMergeStrategy getAttributeRowsMergeStrategy() { return new KeepSelectedRowValue(); } - + } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/MaximumNumber.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/MaximumNumber.java index 8ef6c87c50..e858134871 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/MaximumNumber.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/MaximumNumber.java @@ -39,16 +39,17 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.rows.merge; import java.math.BigDecimal; import javax.swing.Icon; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeUtils; import org.gephi.datalab.api.AttributeColumnsController; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.datalab.spi.rows.merge.AttributeRowsMergeStrategy; -import org.gephi.graph.api.Attributes; +import org.gephi.graph.api.AttributeUtils; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Element; import org.gephi.utils.StatisticsUtils; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; @@ -57,52 +58,64 @@ Development and Distribution License("CDDL") (collectively, the /** * AttributeRowsMergeStrategy for any number or number list column that * calculates the maximum of all the values. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class MaximumNumber implements AttributeRowsMergeStrategy { - private Attributes[] rows; - private AttributeColumn column; + private Element[] rows; + private Column column; private BigDecimal result; - public void setup(Attributes[] rows, Attributes selectedRow, AttributeColumn column) { + @Override + public void setup(Element[] rows, Element selectedRow, Column column) { this.rows = rows; this.column = column; } + @Override public Object getReducedValue() { return result; } + @Override public void execute() { - result = StatisticsUtils.maxValue(Lookup.getDefault().lookup(AttributeColumnsController.class).getRowsColumnNumbers(rows, column)); + result = StatisticsUtils + .maxValue(Lookup.getDefault().lookup(AttributeColumnsController.class).getRowsColumnNumbers(rows, column)); } + @Override public String getName() { return NbBundle.getMessage(AverageNumber.class, "MaximumNumber.name"); } + @Override public String getDescription() { return NbBundle.getMessage(AverageNumber.class, "MaximumNumber.description"); } + @Override public boolean canExecute() { - return AttributeUtils.getDefault().isNumberOrNumberListColumn(column); + return AttributeUtils.isNumberType(column.getTypeClass()); } + @Override public ManipulatorUI getUI() { return null; } + @Override public int getType() { return 100; } + @Override public int getPosition() { return 700; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/plus-white.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/plus-white.svg", false); } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/MaximumNumberBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/MaximumNumberBuilder.java index 35ea319b22..d5ca67e78e 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/MaximumNumberBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/MaximumNumberBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.rows.merge; import org.gephi.datalab.spi.rows.merge.AttributeRowsMergeStrategy; @@ -47,13 +48,15 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for MaximumNumber AttributeColumnsMergeStrategy. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=AttributeRowsMergeStrategyBuilder.class) +@ServiceProvider(service = AttributeRowsMergeStrategyBuilder.class) public class MaximumNumberBuilder implements AttributeRowsMergeStrategyBuilder { + @Override public AttributeRowsMergeStrategy getAttributeRowsMergeStrategy() { return new MaximumNumber(); } - + } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/MedianNumber.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/MedianNumber.java index b7805e0cb6..3acefb81ab 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/MedianNumber.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/MedianNumber.java @@ -39,16 +39,17 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.rows.merge; import java.math.BigDecimal; import javax.swing.Icon; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeUtils; import org.gephi.datalab.api.AttributeColumnsController; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.datalab.spi.rows.merge.AttributeRowsMergeStrategy; -import org.gephi.graph.api.Attributes; +import org.gephi.graph.api.AttributeUtils; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Element; import org.gephi.utils.StatisticsUtils; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; @@ -57,52 +58,64 @@ Development and Distribution License("CDDL") (collectively, the /** * AttributeRowsMergeStrategy for any number or number list column that * calculates the median of all the values. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class MedianNumber implements AttributeRowsMergeStrategy { - private Attributes[] rows; - private AttributeColumn column; + private Element[] rows; + private Column column; private BigDecimal result; - public void setup(Attributes[] rows, Attributes selectedRow, AttributeColumn column) { + @Override + public void setup(Element[] rows, Element selectedRow, Column column) { this.rows = rows; this.column = column; } + @Override public Object getReducedValue() { return result; } + @Override public void execute() { - result = StatisticsUtils.median(Lookup.getDefault().lookup(AttributeColumnsController.class).getRowsColumnNumbers(rows, column)); + result = StatisticsUtils + .median(Lookup.getDefault().lookup(AttributeColumnsController.class).getRowsColumnNumbers(rows, column)); } + @Override public String getName() { return NbBundle.getMessage(AverageNumber.class, "MedianNumber.name"); } + @Override public String getDescription() { return NbBundle.getMessage(AverageNumber.class, "MedianNumber.description"); } + @Override public boolean canExecute() { - return AttributeUtils.getDefault().isNumberOrNumberListColumn(column); + return AttributeUtils.isNumberType(column.getTypeClass()); } + @Override public ManipulatorUI getUI() { return null; } + @Override public int getType() { return 100; } + @Override public int getPosition() { return 200; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/ui-slider-050.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/ui-slider-050.svg", false); } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/MedianNumberBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/MedianNumberBuilder.java index 8f496026dc..ac13684446 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/MedianNumberBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/MedianNumberBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.rows.merge; import org.gephi.datalab.spi.rows.merge.AttributeRowsMergeStrategy; @@ -47,13 +48,15 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for AverageNumber AttributeColumnsMergeStrategy. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=AttributeRowsMergeStrategyBuilder.class) +@ServiceProvider(service = AttributeRowsMergeStrategyBuilder.class) public class MedianNumberBuilder implements AttributeRowsMergeStrategyBuilder { + @Override public AttributeRowsMergeStrategy getAttributeRowsMergeStrategy() { return new MedianNumber(); } - + } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/MinimumNumber.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/MinimumNumber.java index ce60314e33..00efcdedb4 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/MinimumNumber.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/MinimumNumber.java @@ -39,16 +39,17 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.rows.merge; import java.math.BigDecimal; import javax.swing.Icon; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeUtils; import org.gephi.datalab.api.AttributeColumnsController; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.datalab.spi.rows.merge.AttributeRowsMergeStrategy; -import org.gephi.graph.api.Attributes; +import org.gephi.graph.api.AttributeUtils; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Element; import org.gephi.utils.StatisticsUtils; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; @@ -57,52 +58,64 @@ Development and Distribution License("CDDL") (collectively, the /** * AttributeRowsMergeStrategy for any number or number list column that * calculates the minimum of all the values. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class MinimumNumber implements AttributeRowsMergeStrategy { - private Attributes[] rows; - private AttributeColumn column; + private Element[] rows; + private Column column; private BigDecimal result; - public void setup(Attributes[] rows, Attributes selectedRow, AttributeColumn column) { + @Override + public void setup(Element[] rows, Element selectedRow, Column column) { this.rows = rows; this.column = column; } + @Override public Object getReducedValue() { return result; } + @Override public void execute() { - result = StatisticsUtils.minValue(Lookup.getDefault().lookup(AttributeColumnsController.class).getRowsColumnNumbers(rows, column)); + result = StatisticsUtils + .minValue(Lookup.getDefault().lookup(AttributeColumnsController.class).getRowsColumnNumbers(rows, column)); } + @Override public String getName() { return NbBundle.getMessage(AverageNumber.class, "MinimumNumber.name"); } + @Override public String getDescription() { return NbBundle.getMessage(AverageNumber.class, "MinimumNumber.description"); } + @Override public boolean canExecute() { - return AttributeUtils.getDefault().isNumberOrNumberListColumn(column); + return AttributeUtils.isNumberType(column.getTypeClass()); } + @Override public ManipulatorUI getUI() { return null; } + @Override public int getType() { return 100; } + @Override public int getPosition() { return 600; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/minus-white.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/minus-white.svg", false); } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/MinimumNumberBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/MinimumNumberBuilder.java index fce3bda44b..8f2f543676 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/MinimumNumberBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/MinimumNumberBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.rows.merge; import org.gephi.datalab.spi.rows.merge.AttributeRowsMergeStrategy; @@ -47,13 +48,15 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for MinimumNumber AttributeColumnsMergeStrategy. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=AttributeRowsMergeStrategyBuilder.class) +@ServiceProvider(service = AttributeRowsMergeStrategyBuilder.class) public class MinimumNumberBuilder implements AttributeRowsMergeStrategyBuilder { + @Override public AttributeRowsMergeStrategy getAttributeRowsMergeStrategy() { return new MinimumNumber(); } - + } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/SetNull.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/SetNull.java index e6aec7711f..df7d33ed94 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/SetNull.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/SetNull.java @@ -39,57 +39,69 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.rows.merge; import javax.swing.Icon; -import org.gephi.data.attributes.api.AttributeColumn; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.datalab.spi.rows.merge.AttributeRowsMergeStrategy; -import org.gephi.graph.api.Attributes; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Element; import org.openide.util.ImageUtilities; import org.openide.util.NbBundle; /** * AttributeRowsMergeStrategy that simply keeps sets null value to the merged row. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class SetNull implements AttributeRowsMergeStrategy { - public void setup(Attributes[] rows, Attributes selectedRow, AttributeColumn column) { + @Override + public void setup(Element[] rows, Element selectedRow, Column column) { } + @Override public Object getReducedValue() { return null; } + @Override public void execute() { } + @Override public String getName() { return NbBundle.getMessage(AverageNumber.class, "SetNull.name"); } + @Override public String getDescription() { return null; } + @Override public boolean canExecute() { return true; } + @Override public ManipulatorUI getUI() { return null; } + @Override public int getType() { return 0; } + @Override public int getPosition() { return 200; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/broom.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/broom.svg", false); } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/SetNullBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/SetNullBuilder.java index aa4c4f3cfa..1305560449 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/SetNullBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/SetNullBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.rows.merge; import org.gephi.datalab.spi.rows.merge.AttributeRowsMergeStrategy; @@ -47,13 +48,15 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for SetNull AttributeRowsMergeStrategy. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=AttributeRowsMergeStrategyBuilder.class) +@ServiceProvider(service = AttributeRowsMergeStrategyBuilder.class) public class SetNullBuilder implements AttributeRowsMergeStrategyBuilder { + @Override public AttributeRowsMergeStrategy getAttributeRowsMergeStrategy() { return new SetNull(); } - + } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/SumNumbers.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/SumNumbers.java index b4f1d13509..496d26f1ca 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/SumNumbers.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/SumNumbers.java @@ -39,16 +39,17 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.rows.merge; import java.math.BigDecimal; import javax.swing.Icon; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeUtils; import org.gephi.datalab.api.AttributeColumnsController; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.datalab.spi.rows.merge.AttributeRowsMergeStrategy; -import org.gephi.graph.api.Attributes; +import org.gephi.graph.api.AttributeUtils; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Element; import org.gephi.utils.StatisticsUtils; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; @@ -57,52 +58,64 @@ Development and Distribution License("CDDL") (collectively, the /** * AttributeRowsMergeStrategy for any number or number list column that * calculates the sum of all the values. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class SumNumbers implements AttributeRowsMergeStrategy { - private Attributes[] rows; - private AttributeColumn column; + private Element[] rows; + private Column column; private BigDecimal result; - public void setup(Attributes[] rows, Attributes selectedRow, AttributeColumn column) { + @Override + public void setup(Element[] rows, Element selectedRow, Column column) { this.rows = rows; this.column = column; } + @Override public Object getReducedValue() { return result; } + @Override public void execute() { - result = StatisticsUtils.sum(Lookup.getDefault().lookup(AttributeColumnsController.class).getRowsColumnNumbers(rows, column)); + result = StatisticsUtils + .sum(Lookup.getDefault().lookup(AttributeColumnsController.class).getRowsColumnNumbers(rows, column)); } + @Override public String getName() { return NbBundle.getMessage(AverageNumber.class, "SumNumbers.name"); } + @Override public String getDescription() { return NbBundle.getMessage(AverageNumber.class, "SumNumbers.description"); } + @Override public boolean canExecute() { - return AttributeUtils.getDefault().isNumberOrNumberListColumn(column); + return AttributeUtils.isNumberType(column.getTypeClass()); } + @Override public ManipulatorUI getUI() { return null; } + @Override public int getType() { return 100; } + @Override public int getPosition() { return 500; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/plus-circle.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/plus-circle.svg", false); } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/SumNumbersBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/SumNumbersBuilder.java index 9ae14e7650..eb514ca2c6 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/SumNumbersBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/SumNumbersBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.rows.merge; import org.gephi.datalab.spi.rows.merge.AttributeRowsMergeStrategy; @@ -47,13 +48,15 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for SumNumbers AttributeColumnsMergeStrategy. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=AttributeRowsMergeStrategyBuilder.class) +@ServiceProvider(service = AttributeRowsMergeStrategyBuilder.class) public class SumNumbersBuilder implements AttributeRowsMergeStrategyBuilder { + @Override public AttributeRowsMergeStrategy getAttributeRowsMergeStrategy() { return new SumNumbers(); } - + } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/ThirdQuartileNumber.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/ThirdQuartileNumber.java index 4f0b3653d7..ae72996c28 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/ThirdQuartileNumber.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/ThirdQuartileNumber.java @@ -39,16 +39,17 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.rows.merge; import java.math.BigDecimal; import javax.swing.Icon; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeUtils; import org.gephi.datalab.api.AttributeColumnsController; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.datalab.spi.rows.merge.AttributeRowsMergeStrategy; -import org.gephi.graph.api.Attributes; +import org.gephi.graph.api.AttributeUtils; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Element; import org.gephi.utils.StatisticsUtils; import org.openide.util.Lookup; import org.openide.util.NbBundle; @@ -56,51 +57,63 @@ Development and Distribution License("CDDL") (collectively, the /** * AttributeRowsMergeStrategy for any number or number list column that * calculates the third quartile of all the values. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class ThirdQuartileNumber implements AttributeRowsMergeStrategy { - private Attributes[] rows; - private AttributeColumn column; + private Element[] rows; + private Column column; private BigDecimal result; - public void setup(Attributes[] rows, Attributes selectedRow, AttributeColumn column) { + @Override + public void setup(Element[] rows, Element selectedRow, Column column) { this.rows = rows; this.column = column; } + @Override public Object getReducedValue() { return result; } + @Override public void execute() { - result = StatisticsUtils.quartile3(Lookup.getDefault().lookup(AttributeColumnsController.class).getRowsColumnNumbers(rows, column)); + result = StatisticsUtils + .quartile3(Lookup.getDefault().lookup(AttributeColumnsController.class).getRowsColumnNumbers(rows, column)); } + @Override public String getName() { return NbBundle.getMessage(FirstQuartileNumber.class, "ThirdQuartileNumber.name"); } + @Override public String getDescription() { return NbBundle.getMessage(FirstQuartileNumber.class, "ThirdQuartileNumber.description"); } + @Override public boolean canExecute() { - return AttributeUtils.getDefault().isNumberOrNumberListColumn(column); + return AttributeUtils.isNumberType(column.getTypeClass()); } + @Override public ManipulatorUI getUI() { return null; } + @Override public int getType() { return 100; } + @Override public int getPosition() { return 300; } + @Override public Icon getIcon() { return null; } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/ThirdQuartileNumberBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/ThirdQuartileNumberBuilder.java index 5786252f1a..ba646cf386 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/ThirdQuartileNumberBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/ThirdQuartileNumberBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.rows.merge; import org.gephi.datalab.spi.rows.merge.AttributeRowsMergeStrategy; @@ -47,13 +48,15 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for ThirdQuartileNumber AttributeColumnsMergeStrategy. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=AttributeRowsMergeStrategyBuilder.class) +@ServiceProvider(service = AttributeRowsMergeStrategyBuilder.class) public class ThirdQuartileNumberBuilder implements AttributeRowsMergeStrategyBuilder { + @Override public AttributeRowsMergeStrategy getAttributeRowsMergeStrategy() { return new ThirdQuartileNumber(); } - + } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/ui/JoinWithSeparatorUI.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/ui/JoinWithSeparatorUI.java index 67040e0ae0..b314bbaf2d 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/ui/JoinWithSeparatorUI.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/rows/merge/ui/JoinWithSeparatorUI.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.rows.merge.ui; import javax.swing.JPanel; @@ -49,37 +50,51 @@ Development and Distribution License("CDDL") (collectively, the /** * UI for JoinWithSeparator AttributeRowsMergeStrategy - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -public class JoinWithSeparatorUI extends javax.swing.JPanel implements ManipulatorUI{ +public class JoinWithSeparatorUI extends javax.swing.JPanel implements ManipulatorUI { JoinWithSeparator manipulator; - /** Creates new form JoinWithSeparatorUI */ + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JLabel separatorLabel; + private javax.swing.JTextField separatorText; + // End of variables declaration//GEN-END:variables + + /** + * Creates new form JoinWithSeparatorUI + */ public JoinWithSeparatorUI() { initComponents(); } - + + @Override public void setup(Manipulator m, DialogControls dialogControls) { - manipulator=(JoinWithSeparator) m; + manipulator = (JoinWithSeparator) m; separatorText.setText(manipulator.getSeparator()); } + @Override public void unSetup() { manipulator.setSeparator(separatorText.getText()); } + @Override public String getDisplayName() { return manipulator.getName(); } + @Override public JPanel getSettingsPanel() { return this; } + @Override public boolean isModal() { return true; } - /** This method is called from within the constructor to + /** + * This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. @@ -91,7 +106,8 @@ private void initComponents() { separatorLabel = new javax.swing.JLabel(); separatorText = new javax.swing.JTextField(); - separatorLabel.setText(org.openide.util.NbBundle.getMessage(JoinWithSeparatorUI.class, "JoinWithSeparatorUI.separatorLabel.text")); // NOI18N + separatorLabel.setText(org.openide.util.NbBundle + .getMessage(JoinWithSeparatorUI.class, "JoinWithSeparatorUI.separatorLabel.text")); // NOI18N separatorText.setText(null); @@ -99,25 +115,24 @@ private void initComponents() { this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addComponent(separatorLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 67, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(separatorText, javax.swing.GroupLayout.PREFERRED_SIZE, 124, javax.swing.GroupLayout.PREFERRED_SIZE) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(separatorLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 67, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(separatorText, javax.swing.GroupLayout.PREFERRED_SIZE, 124, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(separatorLabel) - .addComponent(separatorText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(separatorLabel) + .addComponent(separatorText, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); }// //GEN-END:initComponents - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JLabel separatorLabel; - private javax.swing.JTextField separatorText; - // End of variables declaration//GEN-END:variables } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/ui/GeneralChooseColumnsAndRowUI.form b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/ui/GeneralChooseColumnsAndRowUI.form index 9c78f9c382..e51cdf8215 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/ui/GeneralChooseColumnsAndRowUI.form +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/ui/GeneralChooseColumnsAndRowUI.form @@ -1,4 +1,4 @@ - +
    diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/ui/GeneralChooseColumnsAndRowUI.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/ui/GeneralChooseColumnsAndRowUI.java index 96b49f32f1..c9373a956f 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/ui/GeneralChooseColumnsAndRowUI.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/ui/GeneralChooseColumnsAndRowUI.java @@ -39,72 +39,89 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.ui; import java.util.ArrayList; import javax.swing.JCheckBox; import javax.swing.JPanel; import net.miginfocom.swing.MigLayout; -import org.gephi.data.attributes.api.AttributeColumn; import org.gephi.datalab.plugin.manipulators.GeneralColumnsAndRowChooser; import org.gephi.datalab.spi.DialogControls; import org.gephi.datalab.spi.Manipulator; import org.gephi.datalab.spi.ManipulatorUI; +import org.gephi.graph.api.Column; import org.gephi.graph.api.Edge; +import org.gephi.graph.api.Element; import org.gephi.graph.api.Node; /** * UI for GeneralColumnsChooser (ClearNodesData and ClearEdgesData) - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class GeneralChooseColumnsAndRowUI extends javax.swing.JPanel implements ManipulatorUI { private GeneralColumnsAndRowChooser columnsAndRowChooser; private ColumnCheckBox[] columnsCheckBoxes; - private Object[] rows;//Node or edge + private Element[] rows;//Node or edge + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JLabel columnsDescriptionLabel; + private javax.swing.JPanel contentPanel; + private javax.swing.JScrollPane contentScrollPane; + private javax.swing.JComboBox rowComboBox; + private javax.swing.JLabel rowDescriptionLabel; + // End of variables declaration//GEN-END:variables - /** Creates new form GeneralChooseColumnsUI */ + /** + * Creates new form GeneralChooseColumnsUI + */ public GeneralChooseColumnsAndRowUI(String rowDescription, String columnsDescription) { initComponents(); rowDescriptionLabel.setText(rowDescription); columnsDescriptionLabel.setText(columnsDescription); } + @Override public void setup(Manipulator m, DialogControls dialogControls) { this.columnsAndRowChooser = (GeneralColumnsAndRowChooser) m; refreshColumns(); refreshRows(); } + @Override public void unSetup() { columnsAndRowChooser.setColumns(getChosenColumns()); columnsAndRowChooser.setRow(rows[rowComboBox.getSelectedIndex()]); } + @Override public String getDisplayName() { return columnsAndRowChooser.getName(); } + @Override public JPanel getSettingsPanel() { return this; } + @Override public boolean isModal() { return true; } - public AttributeColumn[] getChosenColumns() { - ArrayList columnsToClearDataList = new ArrayList(); + public Column[] getChosenColumns() { + ArrayList columnsToClearDataList = new ArrayList<>(); for (ColumnCheckBox c : columnsCheckBoxes) { if (c.isSelected()) { columnsToClearDataList.add(c.getColumn()); } } - return columnsToClearDataList.toArray(new AttributeColumn[0]); + return columnsToClearDataList.toArray(new Column[0]); } private void refreshColumns() { - AttributeColumn[] columns = columnsAndRowChooser.getColumns(); + Column[] columns = columnsAndRowChooser.getColumns(); columnsCheckBoxes = new ColumnCheckBox[columns.length]; contentPanel.removeAll(); contentPanel.setLayout(new MigLayout("", "[pref!]")); @@ -125,10 +142,10 @@ private void refreshRows() { for (int i = 0; i < rows.length; i++) { if (rows[i] instanceof Node) { node = (Node) rows[i]; - rowComboBox.addItem(node.getId() + " - " + node.getNodeData().getLabel()); + rowComboBox.addItem(node.getId() + " - " + node.getLabel()); } else { edge = (Edge) rows[i]; - rowComboBox.addItem(edge.getId() + " - " + edge.getEdgeData().getLabel()); + rowComboBox.addItem(edge.getId() + " - " + edge.getLabel()); } if (rows[i] == sourceRow) { rowComboBox.setSelectedIndex(i); @@ -136,34 +153,8 @@ private void refreshRows() { } } - private static class ColumnCheckBox { - - private JCheckBox checkBox; - private AttributeColumn column; - - public ColumnCheckBox(AttributeColumn column, boolean selected) { - checkBox = new JCheckBox(column.getTitle(), selected); - this.column = column; - } - - public void setSelected(boolean selected) { - checkBox.setSelected(selected); - } - - public boolean isSelected() { - return checkBox.isSelected(); - } - - public JCheckBox getCheckBox() { - return checkBox; - } - - public AttributeColumn getColumn() { - return column; - } - } - - /** This method is called from within the constructor to + /** + * This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. @@ -189,36 +180,60 @@ private void initComponents() { this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(columnsDescriptionLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 301, Short.MAX_VALUE) - .addComponent(contentScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 301, Short.MAX_VALUE) - .addGroup(layout.createSequentialGroup() - .addComponent(rowDescriptionLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 149, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(rowComboBox, 0, 142, Short.MAX_VALUE))) - .addContainerGap()) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(columnsDescriptionLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 301, + Short.MAX_VALUE) + .addComponent(contentScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 301, Short.MAX_VALUE) + .addGroup(layout.createSequentialGroup() + .addComponent(rowDescriptionLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 149, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(rowComboBox, 0, 142, Short.MAX_VALUE))) + .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(rowDescriptionLabel) - .addComponent(rowComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(columnsDescriptionLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(contentScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 194, Short.MAX_VALUE) - .addContainerGap()) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(rowDescriptionLabel) + .addComponent(rowComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(columnsDescriptionLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 26, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(contentScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 194, Short.MAX_VALUE) + .addContainerGap()) ); }// //GEN-END:initComponents - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JLabel columnsDescriptionLabel; - private javax.swing.JPanel contentPanel; - private javax.swing.JScrollPane contentScrollPane; - private javax.swing.JComboBox rowComboBox; - private javax.swing.JLabel rowDescriptionLabel; - // End of variables declaration//GEN-END:variables + + private static class ColumnCheckBox { + + private final JCheckBox checkBox; + private final Column column; + + public ColumnCheckBox(Column column, boolean selected) { + checkBox = new JCheckBox(column.getTitle(), selected); + this.column = column; + } + + public boolean isSelected() { + return checkBox.isSelected(); + } + + public void setSelected(boolean selected) { + checkBox.setSelected(selected); + } + + public JCheckBox getCheckBox() { + return checkBox; + } + + public Column getColumn() { + return column; + } + } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/ui/GeneralChooseColumnsUI.form b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/ui/GeneralChooseColumnsUI.form index 4c0754e443..7e35b2c2f6 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/ui/GeneralChooseColumnsUI.form +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/ui/GeneralChooseColumnsUI.form @@ -1,4 +1,4 @@ - + diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/ui/GeneralChooseColumnsUI.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/ui/GeneralChooseColumnsUI.java index ddd8c72fcc..6319cf07e9 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/ui/GeneralChooseColumnsUI.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/ui/GeneralChooseColumnsUI.java @@ -39,70 +39,84 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.ui; import java.util.ArrayList; import javax.swing.JCheckBox; import javax.swing.JPanel; import net.miginfocom.swing.MigLayout; -import org.gephi.data.attributes.api.AttributeColumn; import org.gephi.datalab.plugin.manipulators.GeneralColumnsChooser; import org.gephi.datalab.spi.DialogControls; import org.gephi.datalab.spi.Manipulator; import org.gephi.datalab.spi.ManipulatorUI; +import org.gephi.graph.api.Column; /** * UI for GeneralColumnsChooser (ClearNodesData and ClearEdgesData) - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class GeneralChooseColumnsUI extends javax.swing.JPanel implements ManipulatorUI { private GeneralColumnsChooser columnsChooser; private ColumnCheckBox[] columnsCheckBoxes; + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JPanel contentPanel; + private javax.swing.JScrollPane contentScrollPane; + private javax.swing.JLabel descriptionLabel; + // End of variables declaration//GEN-END:variables - /** Creates new form GeneralChooseColumnsUI */ + /** + * Creates new form GeneralChooseColumnsUI + */ public GeneralChooseColumnsUI(String descriptionText) { initComponents(); descriptionLabel.setText(descriptionText); } + @Override public void setup(Manipulator m, DialogControls dialogControls) { this.columnsChooser = (GeneralColumnsChooser) m; refreshColumns(); } + @Override public void unSetup() { columnsChooser.setColumns(getChosenColumns()); } + @Override public String getDisplayName() { return columnsChooser.getName(); } + @Override public JPanel getSettingsPanel() { return this; } + @Override public boolean isModal() { return true; } - public AttributeColumn[] getChosenColumns(){ - ArrayList columnsToClearDataList=new ArrayList(); - for(ColumnCheckBox c:columnsCheckBoxes){ - if(c.isSelected()){ + public Column[] getChosenColumns() { + ArrayList columnsToClearDataList = new ArrayList<>(); + for (ColumnCheckBox c : columnsCheckBoxes) { + if (c.isSelected()) { columnsToClearDataList.add(c.getColumn()); } } - return columnsToClearDataList.toArray(new AttributeColumn[0]); + return columnsToClearDataList.toArray(new Column[0]); } private void refreshColumns() { - AttributeColumn[] columns=columnsChooser.getColumns(); - columnsCheckBoxes=new ColumnCheckBox[columns.length]; + Column[] columns = columnsChooser.getColumns(); + columnsCheckBoxes = new ColumnCheckBox[columns.length]; contentPanel.removeAll(); contentPanel.setLayout(new MigLayout("", "[pref!]")); - for (int i=0;i< columns.length;i++) { + for (int i = 0; i < columns.length; i++) { columnsCheckBoxes[i] = new ColumnCheckBox(columns[i], true); contentPanel.add(columnsCheckBoxes[i].getCheckBox(), "wrap"); } @@ -110,34 +124,8 @@ private void refreshColumns() { contentPanel.repaint(); } - private static class ColumnCheckBox { - - private JCheckBox checkBox; - private AttributeColumn column; - - public ColumnCheckBox(AttributeColumn column, boolean selected) { - checkBox = new JCheckBox(column.getTitle(), selected); - this.column = column; - } - - public void setSelected(boolean selected) { - checkBox.setSelected(selected); - } - - public boolean isSelected() { - return checkBox.isSelected(); - } - - public JCheckBox getCheckBox() { - return checkBox; - } - - public AttributeColumn getColumn() { - return column; - } - } - - /** This method is called from within the constructor to + /** + * This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. @@ -159,26 +147,51 @@ private void initComponents() { this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(descriptionLabel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 319, Short.MAX_VALUE) - .addComponent(contentScrollPane, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 319, Short.MAX_VALUE)) - .addContainerGap()) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(descriptionLabel, javax.swing.GroupLayout.Alignment.LEADING, + javax.swing.GroupLayout.DEFAULT_SIZE, 319, Short.MAX_VALUE) + .addComponent(contentScrollPane, javax.swing.GroupLayout.Alignment.LEADING, + javax.swing.GroupLayout.DEFAULT_SIZE, 319, Short.MAX_VALUE)) + .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addComponent(descriptionLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(contentScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 220, Short.MAX_VALUE) - .addContainerGap()) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(descriptionLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 26, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(contentScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 220, Short.MAX_VALUE) + .addContainerGap()) ); }// //GEN-END:initComponents - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JPanel contentPanel; - private javax.swing.JScrollPane contentScrollPane; - private javax.swing.JLabel descriptionLabel; - // End of variables declaration//GEN-END:variables + + private static class ColumnCheckBox { + + private final JCheckBox checkBox; + private final Column column; + + public ColumnCheckBox(Column column, boolean selected) { + checkBox = new JCheckBox(column.getTitle(), selected); + this.column = column; + } + + public boolean isSelected() { + return checkBox.isSelected(); + } + + public void setSelected(boolean selected) { + checkBox.setSelected(selected); + } + + public JCheckBox getCheckBox() { + return checkBox; + } + + public Column getColumn() { + return column; + } + } } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/ui/GeneralNumberListStatisticsReportUI.form b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/ui/GeneralNumberListStatisticsReportUI.form index 59b612d55f..4f3df9740f 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/ui/GeneralNumberListStatisticsReportUI.form +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/ui/GeneralNumberListStatisticsReportUI.form @@ -1,4 +1,4 @@ - + diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/ui/GeneralNumberListStatisticsReportUI.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/ui/GeneralNumberListStatisticsReportUI.java index c408dc0bee..dec6a5e26c 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/ui/GeneralNumberListStatisticsReportUI.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/ui/GeneralNumberListStatisticsReportUI.java @@ -39,44 +39,61 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.ui; import java.math.BigDecimal; import javax.swing.JPanel; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeTable; import org.gephi.datalab.spi.DialogControls; import org.gephi.datalab.spi.Manipulator; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.datalab.spi.columns.AttributeColumnsManipulator; import org.gephi.datalab.spi.columns.AttributeColumnsManipulatorUI; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.GraphModel; +import org.gephi.graph.api.Table; import org.gephi.ui.components.JFreeChartDialog; import org.gephi.ui.components.SimpleHTMLReport; import org.gephi.ui.utils.ChartsUtils; import org.gephi.utils.StatisticsUtils; import org.jfree.chart.JFreeChart; +import org.openide.util.ImageUtilities; import org.openide.windows.WindowManager; /** * UI for NumberColumnStatisticsReport AttributeColumnsManipulator. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -public class GeneralNumberListStatisticsReportUI extends javax.swing.JPanel implements AttributeColumnsManipulatorUI, ManipulatorUI { +public class GeneralNumberListStatisticsReportUI extends javax.swing.JPanel + implements AttributeColumnsManipulatorUI, ManipulatorUI { - private Number[] numbers; - private String dataName; - private String dialogTitle; - private BigDecimal[] statistics; + private static final int MIN_HISTOGRAM_DIVISIONS = 1, MAX_HISTOGRAM_DIVISIONS = 50; + private final Number[] numbers; + private final String dataName; + private final String dialogTitle; + private final BigDecimal[] statistics; private JFreeChart boxPlot, scatterPlot, histogram; private JFreeChartDialog boxPlotDialog, scatterPlotDialog, histogramDialog; private SimpleHTMLReport reportDialog; private int histogramDivisions; - private static final int MIN_HISTOGRAM_DIVISIONS = 1, MAX_HISTOGRAM_DIVISIONS = 50; + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JButton configureBoxPlotButton; + private javax.swing.JButton configureHistogramButton; + private javax.swing.JButton configureScatterPlotButton; + private javax.swing.JComboBox divisionsComboBox; + private javax.swing.JLabel divisionsLabel; + private javax.swing.JSeparator jSeparator1; + private javax.swing.JButton showReportButton; + private javax.swing.JCheckBox useLinearRegression; + private javax.swing.JCheckBox useLinesCheckBox; + // End of variables declaration//GEN-END:variables /** * Constructor method to set all necessary information to build statistics, charts and dialog title. - * @param numbers Numbers to build statistics and charts - * @param dataName Name of the numbers data (column title for example) + * + * @param numbers Numbers to build statistics and charts + * @param dataName Name of the numbers data (column title for example) * @param dialogTitle Title of the dialog window */ public GeneralNumberListStatisticsReportUI(Number[] numbers, String dataName, String dialogTitle) { @@ -92,9 +109,12 @@ public GeneralNumberListStatisticsReportUI(Number[] numbers, String dataName, St setChartControlsEnabled(statistics != null);//Disable chart controls if no numbers available } - public void setup(AttributeColumnsManipulator m, AttributeTable table, AttributeColumn column, DialogControls dialogControls) { + @Override + public void setup(AttributeColumnsManipulator m, GraphModel graphModel, Table table, Column column, + DialogControls dialogControls) { } + @Override public void setup(Manipulator m, DialogControls dialogControls) { } @@ -108,6 +128,7 @@ private void setChartControlsEnabled(boolean enabled) { divisionsComboBox.setEnabled(enabled); } + @Override public void unSetup() { if (reportDialog != null) { reportDialog.dispose(); @@ -123,14 +144,17 @@ public void unSetup() { } } + @Override public String getDisplayName() { return dialogTitle; } + @Override public JPanel getSettingsPanel() { return this; } + @Override public boolean isModal() { return false; } @@ -143,7 +167,8 @@ private void prepareBoxPlot() { private void prepareScatterPlot() { if (scatterPlot == null) { - scatterPlot = ChartsUtils.buildScatterPlot(numbers, dataName, useLinesCheckBox.isSelected(), useLinearRegression.isSelected()); + scatterPlot = ChartsUtils + .buildScatterPlot(numbers, dataName, useLinesCheckBox.isSelected(), useLinearRegression.isSelected()); } } @@ -151,7 +176,8 @@ private void prepareHistogram() { histogram = ChartsUtils.buildHistogram(numbers, dataName, histogramDivisions); } - /** This method is called from within the constructor to + /** + * This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. @@ -170,55 +196,71 @@ private void initComponents() { divisionsLabel = new javax.swing.JLabel(); divisionsComboBox = new javax.swing.JComboBox(); - configureBoxPlotButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/gephi/datalab/plugin/manipulators/resources/wooden-box.png"))); // NOI18N - configureBoxPlotButton.setText(org.openide.util.NbBundle.getMessage(GeneralNumberListStatisticsReportUI.class, "GeneralNumberListStatisticsReportUI.configureBoxPlotButton.text")); // NOI18N + configureBoxPlotButton.setIcon( + ImageUtilities.loadImageIcon("DataLaboratoryPlugin/wooden-box.svg", false)); // NOI18N + configureBoxPlotButton.setText(org.openide.util.NbBundle.getMessage(GeneralNumberListStatisticsReportUI.class, + "GeneralNumberListStatisticsReportUI.configureBoxPlotButton.text")); // NOI18N configureBoxPlotButton.addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(java.awt.event.ActionEvent evt) { configureBoxPlotButtonActionPerformed(evt); } }); - configureScatterPlotButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/gephi/datalab/plugin/manipulators/resources/chart-up.png"))); // NOI18N - configureScatterPlotButton.setText(org.openide.util.NbBundle.getMessage(GeneralNumberListStatisticsReportUI.class, "GeneralNumberListStatisticsReportUI.configureScatterPlotButton.text_1")); // NOI18N + configureScatterPlotButton.setIcon(ImageUtilities.loadImageIcon("DataLaboratoryPlugin/chart-up.svg", false)); // NOI18N + configureScatterPlotButton.setText(org.openide.util.NbBundle + .getMessage(GeneralNumberListStatisticsReportUI.class, + "GeneralNumberListStatisticsReportUI.configureScatterPlotButton.text_1")); // NOI18N configureScatterPlotButton.addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(java.awt.event.ActionEvent evt) { configureScatterPlotButtonActionPerformed(evt); } }); - showReportButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/gephi/datalab/plugin/manipulators/resources/application-block.png"))); // NOI18N - showReportButton.setText(org.openide.util.NbBundle.getMessage(GeneralNumberListStatisticsReportUI.class, "GeneralNumberListStatisticsReportUI.showReportButton.text")); // NOI18N + showReportButton.setIcon(ImageUtilities.loadImageIcon("DataLaboratoryPlugin/application-block.svg", false)); // NOI18N + showReportButton.setText(org.openide.util.NbBundle.getMessage(GeneralNumberListStatisticsReportUI.class, + "GeneralNumberListStatisticsReportUI.showReportButton.text")); // NOI18N showReportButton.addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(java.awt.event.ActionEvent evt) { showReportButtonActionPerformed(evt); } }); - useLinesCheckBox.setText(org.openide.util.NbBundle.getMessage(GeneralNumberListStatisticsReportUI.class, "GeneralNumberListStatisticsReportUI.useLinesCheckBox.text")); // NOI18N + useLinesCheckBox.setText(org.openide.util.NbBundle.getMessage(GeneralNumberListStatisticsReportUI.class, + "GeneralNumberListStatisticsReportUI.useLinesCheckBox.text")); // NOI18N useLinesCheckBox.addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(java.awt.event.ActionEvent evt) { useLinesCheckBoxActionPerformed(evt); } }); - useLinearRegression.setText(org.openide.util.NbBundle.getMessage(GeneralNumberListStatisticsReportUI.class, "GeneralNumberListStatisticsReportUI.useLinearRegression.text")); // NOI18N + useLinearRegression.setText(org.openide.util.NbBundle.getMessage(GeneralNumberListStatisticsReportUI.class, + "GeneralNumberListStatisticsReportUI.useLinearRegression.text")); // NOI18N useLinearRegression.addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(java.awt.event.ActionEvent evt) { useLinearRegressionActionPerformed(evt); } }); - configureHistogramButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/gephi/datalab/plugin/manipulators/resources/chart.png"))); // NOI18N - configureHistogramButton.setText(org.openide.util.NbBundle.getMessage(GeneralNumberListStatisticsReportUI.class, "GeneralNumberListStatisticsReportUI.configureHistogramButton.text")); // NOI18N + configureHistogramButton.setIcon(ImageUtilities.loadImageIcon("DataLaboratoryPlugin/chart.svg", false)); // NOI18N + configureHistogramButton.setText(org.openide.util.NbBundle.getMessage(GeneralNumberListStatisticsReportUI.class, + "GeneralNumberListStatisticsReportUI.configureHistogramButton.text")); // NOI18N configureHistogramButton.addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(java.awt.event.ActionEvent evt) { configureHistogramButtonActionPerformed(evt); } }); - divisionsLabel.setText(org.openide.util.NbBundle.getMessage(GeneralNumberListStatisticsReportUI.class, "GeneralNumberListStatisticsReportUI.divisionsLabel.text")); // NOI18N + divisionsLabel.setText(org.openide.util.NbBundle.getMessage(GeneralNumberListStatisticsReportUI.class, + "GeneralNumberListStatisticsReportUI.divisionsLabel.text")); // NOI18N divisionsComboBox.addItemListener(new java.awt.event.ItemListener() { + @Override public void itemStateChanged(java.awt.event.ItemEvent evt) { divisionsComboBoxItemStateChanged(evt); } @@ -228,77 +270,95 @@ public void itemStateChanged(java.awt.event.ItemEvent evt) { this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(showReportButton) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(configureHistogramButton, javax.swing.GroupLayout.DEFAULT_SIZE, 163, Short.MAX_VALUE) - .addComponent(configureScatterPlotButton, javax.swing.GroupLayout.DEFAULT_SIZE, 163, Short.MAX_VALUE) - .addComponent(configureBoxPlotButton, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 163, Short.MAX_VALUE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addComponent(useLinesCheckBox) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(useLinearRegression)) - .addGroup(layout.createSequentialGroup() - .addGap(10, 10, 10) - .addComponent(divisionsLabel) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(divisionsComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))) - .addContainerGap()) - .addComponent(jSeparator1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 393, Short.MAX_VALUE) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(showReportButton) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(configureHistogramButton, javax.swing.GroupLayout.DEFAULT_SIZE, 163, + Short.MAX_VALUE) + .addComponent(configureScatterPlotButton, javax.swing.GroupLayout.DEFAULT_SIZE, 163, + Short.MAX_VALUE) + .addComponent(configureBoxPlotButton, javax.swing.GroupLayout.Alignment.TRAILING, + javax.swing.GroupLayout.DEFAULT_SIZE, 163, Short.MAX_VALUE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addComponent(useLinesCheckBox) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(useLinearRegression)) + .addGroup(layout.createSequentialGroup() + .addGap(10, 10, 10) + .addComponent(divisionsLabel) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(divisionsComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE))))) + .addContainerGap()) + .addComponent(jSeparator1, javax.swing.GroupLayout.Alignment.TRAILING, + javax.swing.GroupLayout.DEFAULT_SIZE, 393, Short.MAX_VALUE) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addComponent(configureBoxPlotButton, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(11, 11, 11) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(configureScatterPlotButton) - .addComponent(useLinesCheckBox) - .addComponent(useLinearRegression)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(configureHistogramButton) - .addComponent(divisionsLabel) - .addComponent(divisionsComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(jSeparator1, javax.swing.GroupLayout.DEFAULT_SIZE, 1, Short.MAX_VALUE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(showReportButton) - .addContainerGap()) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(configureBoxPlotButton, javax.swing.GroupLayout.PREFERRED_SIZE, 25, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(11, 11, 11) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(configureScatterPlotButton) + .addComponent(useLinesCheckBox) + .addComponent(useLinearRegression)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(configureHistogramButton) + .addComponent(divisionsLabel) + .addComponent(divisionsComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(jSeparator1, javax.swing.GroupLayout.DEFAULT_SIZE, 1, Short.MAX_VALUE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(showReportButton) + .addContainerGap()) ); }// //GEN-END:initComponents - private void configureBoxPlotButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_configureBoxPlotButtonActionPerformed + private void configureBoxPlotButtonActionPerformed( + java.awt.event.ActionEvent evt) {//GEN-FIRST:event_configureBoxPlotButtonActionPerformed prepareBoxPlot(); if (boxPlotDialog != null) { boxPlotDialog.setVisible(true); } else { - boxPlotDialog = new JFreeChartDialog(WindowManager.getDefault().getMainWindow(), boxPlot.getTitle().getText(), boxPlot, 300, 500); + boxPlotDialog = + new JFreeChartDialog(WindowManager.getDefault().getMainWindow(), boxPlot.getTitle().getText(), boxPlot, + 300, 500); } }//GEN-LAST:event_configureBoxPlotButtonActionPerformed - private void configureScatterPlotButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_configureScatterPlotButtonActionPerformed + private void configureScatterPlotButtonActionPerformed( + java.awt.event.ActionEvent evt) {//GEN-FIRST:event_configureScatterPlotButtonActionPerformed prepareScatterPlot(); if (scatterPlotDialog != null) { scatterPlotDialog.setVisible(true); } else { - scatterPlotDialog = new JFreeChartDialog(WindowManager.getDefault().getMainWindow(), scatterPlot.getTitle().getText(), scatterPlot, 600, 400); + scatterPlotDialog = + new JFreeChartDialog(WindowManager.getDefault().getMainWindow(), scatterPlot.getTitle().getText(), + scatterPlot, 600, 400); } }//GEN-LAST:event_configureScatterPlotButtonActionPerformed - private void showReportButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_showReportButtonActionPerformed + private void showReportButtonActionPerformed( + java.awt.event.ActionEvent evt) {//GEN-FIRST:event_showReportButtonActionPerformed prepareBoxPlot(); prepareScatterPlot(); if (histogram == null) { prepareHistogram(); } - final String html = ChartsUtils.getStatisticsReportHTML(dataName, statistics, boxPlot, scatterPlot, histogram, boxPlotDialog != null ? boxPlotDialog.getChartSize() : null, scatterPlotDialog != null ? scatterPlotDialog.getChartSize() : null, histogramDialog != null ? histogramDialog.getChartSize() : null); + final String html = ChartsUtils.getStatisticsReportHTML(dataName, statistics, boxPlot, scatterPlot, histogram, + boxPlotDialog != null ? boxPlotDialog.getChartSize() : null, + scatterPlotDialog != null ? scatterPlotDialog.getChartSize() : null, + histogramDialog != null ? histogramDialog.getChartSize() : null); if (reportDialog != null) { reportDialog.dispose(); @@ -306,19 +366,22 @@ private void showReportButtonActionPerformed(java.awt.event.ActionEvent evt) {// reportDialog = new SimpleHTMLReport(WindowManager.getDefault().getMainWindow(), html); }//GEN-LAST:event_showReportButtonActionPerformed - private void useLinesCheckBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_useLinesCheckBoxActionPerformed + private void useLinesCheckBoxActionPerformed( + java.awt.event.ActionEvent evt) {//GEN-FIRST:event_useLinesCheckBoxActionPerformed if (scatterPlot != null) { ChartsUtils.setScatterPlotLinesEnabled(scatterPlot, useLinesCheckBox.isSelected()); } }//GEN-LAST:event_useLinesCheckBoxActionPerformed - private void useLinearRegressionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_useLinearRegressionActionPerformed + private void useLinearRegressionActionPerformed( + java.awt.event.ActionEvent evt) {//GEN-FIRST:event_useLinearRegressionActionPerformed if (scatterPlot != null) { ChartsUtils.setScatterPlotLinearRegressionEnabled(scatterPlot, useLinearRegression.isSelected()); } }//GEN-LAST:event_useLinearRegressionActionPerformed - private void divisionsComboBoxItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_divisionsComboBoxItemStateChanged + private void divisionsComboBoxItemStateChanged( + java.awt.event.ItemEvent evt) {//GEN-FIRST:event_divisionsComboBoxItemStateChanged this.histogramDivisions = divisionsComboBox.getSelectedIndex() + 1; if (histogramDialog != null) { prepareHistogram(); @@ -326,23 +389,15 @@ private void divisionsComboBoxItemStateChanged(java.awt.event.ItemEvent evt) {// } }//GEN-LAST:event_divisionsComboBoxItemStateChanged - private void configureHistogramButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_configureHistogramButtonActionPerformed + private void configureHistogramButtonActionPerformed( + java.awt.event.ActionEvent evt) {//GEN-FIRST:event_configureHistogramButtonActionPerformed prepareHistogram(); if (histogramDialog != null) { histogramDialog.setVisible(true); } else { - histogramDialog = new JFreeChartDialog(WindowManager.getDefault().getMainWindow(), histogram.getTitle().getText(), histogram, 600, 400); + histogramDialog = + new JFreeChartDialog(WindowManager.getDefault().getMainWindow(), histogram.getTitle().getText(), + histogram, 600, 400); } }//GEN-LAST:event_configureHistogramButtonActionPerformed - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JButton configureBoxPlotButton; - private javax.swing.JButton configureHistogramButton; - private javax.swing.JButton configureScatterPlotButton; - private javax.swing.JComboBox divisionsComboBox; - private javax.swing.JLabel divisionsLabel; - private javax.swing.JSeparator jSeparator1; - private javax.swing.JButton showReportButton; - private javax.swing.JCheckBox useLinearRegression; - private javax.swing.JCheckBox useLinesCheckBox; - // End of variables declaration//GEN-END:variables } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/values/ClearAttributeValue.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/values/ClearAttributeValue.java index 9edf5c76c4..1fbefcef04 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/values/ClearAttributeValue.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/values/ClearAttributeValue.java @@ -1,99 +1,110 @@ /* -Copyright 2008-2010 Gephi -Authors : Eduardo Ramos -Website : http://www.gephi.org - -This file is part of Gephi. - -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - -Copyright 2011 Gephi Consortium. All rights reserved. - -The contents of this file are subject to the terms of either the GNU -General Public License Version 3 only ("GPL") or the Common -Development and Distribution License("CDDL") (collectively, the -"License"). You may not use this file except in compliance with the -License. You can obtain a copy of the License at -http://gephi.org/about/legal/license-notice/ -or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the -specific language governing permissions and limitations under the -License. When distributing the software, include this License Header -Notice in each file and include the License files at -/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the -License Header, with the fields enclosed by brackets [] replaced by -your own identifying information: -"Portions Copyrighted [year] [name of copyright owner]" - -If you wish your version of this file to be governed by only the CDDL -or only the GPL Version 3, indicate your decision by adding -"[Contributor] elects to include this software in this distribution -under the [CDDL or GPL Version 3] license." If you do not indicate a -single choice of license, a recipient has the option to distribute -your version of this file under either the CDDL, the GPL Version 3 or -to extend the choice of license to its licensees as provided above. -However, if you add GPL Version 3 code and therefore, elected the GPL -Version 3 license, then the option applies only if the new code is -made subject to such option by the copyright holder. - -Contributor(s): - -Portions Copyrighted 2011 Gephi Consortium. + Copyright 2008-2010 Gephi + Authors : Eduardo Ramos + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2011 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.values; import javax.swing.Icon; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeRow; import org.gephi.datalab.api.AttributeColumnsController; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.datalab.spi.values.AttributeValueManipulator; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Element; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; import org.openide.util.NbBundle; /** * AttributeValueManipulator that sets a value to null when the column can have null values. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -public class ClearAttributeValue implements AttributeValueManipulator{ - private AttributeRow row; - private AttributeColumn column; +public class ClearAttributeValue implements AttributeValueManipulator { + + private Element row; + private Column column; - public void setup(AttributeRow row, AttributeColumn column) { - this.row=row; - this.column=column; + @Override + public void setup(Element row, Column column) { + this.row = row; + this.column = column; } + @Override public void execute() { - row.setValue(column.getIndex(), null); + row.setAttribute(column, null); } + @Override public String getName() { return NbBundle.getMessage(ClearAttributeValue.class, "ClearAttributeValue.name"); } + @Override public String getDescription() { return ""; } + @Override public boolean canExecute() { return Lookup.getDefault().lookup(AttributeColumnsController.class).canClearColumnData(column); } + @Override public ManipulatorUI getUI() { return null; } + @Override public int getType() { return 0; } + @Override public int getPosition() { return 0; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/clear-data.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/clear-data.svg", false); } - } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/values/ClearAttributeValueBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/values/ClearAttributeValueBuilder.java index 267f01dbc6..0327c81146 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/values/ClearAttributeValueBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/values/ClearAttributeValueBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.values; import org.gephi.datalab.spi.values.AttributeValueManipulator; @@ -47,11 +48,13 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for ClearAttributeValue AttributeValueManipulatorBuilder. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=AttributeValueManipulatorBuilder.class) -public class ClearAttributeValueBuilder implements AttributeValueManipulatorBuilder{ +@ServiceProvider(service = AttributeValueManipulatorBuilder.class) +public class ClearAttributeValueBuilder implements AttributeValueManipulatorBuilder { + @Override public AttributeValueManipulator getAttributeValueManipulator() { return new ClearAttributeValue(); } diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/values/NumberListStatisticsReport.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/values/NumberListStatisticsReport.java index fb7cf85973..3905e91ae9 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/values/NumberListStatisticsReport.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/values/NumberListStatisticsReport.java @@ -39,66 +39,77 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.values; import javax.swing.Icon; -import org.gephi.data.attributes.api.AttributeColumn; -import org.gephi.data.attributes.api.AttributeRow; -import org.gephi.data.attributes.api.AttributeUtils; import org.gephi.datalab.api.AttributeColumnsController; import org.gephi.datalab.plugin.manipulators.ui.GeneralNumberListStatisticsReportUI; import org.gephi.datalab.spi.ManipulatorUI; import org.gephi.datalab.spi.values.AttributeValueManipulator; +import org.gephi.graph.api.AttributeUtils; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Element; import org.openide.util.ImageUtilities; import org.openide.util.Lookup; import org.openide.util.NbBundle; /** * AttributeValueManipulator that shows a report with statistics values and charts of a dynamic number/number list AttributeValue. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ public class NumberListStatisticsReport implements AttributeValueManipulator { private Number[] numbers; - private AttributeColumn column; + private Column column; - public void setup(AttributeRow row, AttributeColumn column) { + @Override + public void setup(Element row, Column column) { this.column = column; - AttributeUtils attributeUtils = AttributeUtils.getDefault(); - if (attributeUtils.isNumberListColumn(column) || attributeUtils.isDynamicNumberColumn(column)) { - numbers = Lookup.getDefault().lookup(AttributeColumnsController.class).getRowNumbers(row, new AttributeColumn[]{column}); + if (AttributeUtils.isNumberType(column.getTypeClass())) { + numbers = + Lookup.getDefault().lookup(AttributeColumnsController.class).getRowNumbers(row, new Column[] {column}); } } + @Override public void execute() { } + @Override public String getName() { return getMessage("NumberListStatisticsReport.name"); } + @Override public String getDescription() { return getMessage("NumberListStatisticsReport.description"); } + @Override public boolean canExecute() { return numbers != null && numbers.length > 1;//Column is number list column and there is numbers to show } + @Override public ManipulatorUI getUI() { return new GeneralNumberListStatisticsReportUI(numbers, column.getTitle(), getName()); } + @Override public int getType() { return 100; } + @Override public int getPosition() { return 0; } + @Override public Icon getIcon() { - return ImageUtilities.loadImageIcon("org/gephi/datalab/plugin/manipulators/resources/chart-up.png", true); + return ImageUtilities.loadImageIcon("DataLaboratoryPlugin/chart-up.svg", false); } private String getMessage(String resName) { diff --git a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/values/NumberListStatisticsReportBuilder.java b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/values/NumberListStatisticsReportBuilder.java index d3c99da735..dbec61a531 100644 --- a/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/values/NumberListStatisticsReportBuilder.java +++ b/modules/DataLaboratoryPlugin/src/main/java/org/gephi/datalab/plugin/manipulators/values/NumberListStatisticsReportBuilder.java @@ -39,6 +39,7 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.datalab.plugin.manipulators.values; import org.gephi.datalab.spi.values.AttributeValueManipulator; @@ -47,11 +48,13 @@ Development and Distribution License("CDDL") (collectively, the /** * Builder for NumberListStatisticsReport AttributeValueManipulatorBuilder. - * @author Eduardo Ramos + * + * @author Eduardo Ramos */ -@ServiceProvider(service=AttributeValueManipulatorBuilder.class) -public class NumberListStatisticsReportBuilder implements AttributeValueManipulatorBuilder{ +@ServiceProvider(service = AttributeValueManipulatorBuilder.class) +public class NumberListStatisticsReportBuilder implements AttributeValueManipulatorBuilder { + @Override public AttributeValueManipulator getAttributeValueManipulator() { return new NumberListStatisticsReport(); } diff --git a/modules/DataLaboratoryPlugin/src/main/nbm/manifest.mf b/modules/DataLaboratoryPlugin/src/main/nbm/manifest.mf index e3c4724c0b..bab6ffc755 100644 --- a/modules/DataLaboratoryPlugin/src/main/nbm/manifest.mf +++ b/modules/DataLaboratoryPlugin/src/main/nbm/manifest.mf @@ -1,4 +1,6 @@ Manifest-Version: 1.0 AutoUpdate-Essential-Module: true OpenIDE-Module-Localizing-Bundle: org/gephi/datalab/plugin/Bundle.properties -OpenIDE-Module-Specification-Version: ${gephi.modules.specification.version} \ No newline at end of file +OpenIDE-Module-Specification-Version: ${gephi.modules.specification.version} +OpenIDE-Module-Display-Category: Plugin +OpenIDE-Module-Name: Data Laboratory Plugin \ No newline at end of file diff --git a/modules/DataLaboratoryPlugin/src/main/nbm/module.xml b/modules/DataLaboratoryPlugin/src/main/nbm/module.xml deleted file mode 100644 index 714fd31585..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/nbm/module.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle.properties index cf75259550..370d25bff8 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle.properties @@ -1,4 +1 @@ -OpenIDE-Module-Display-Category=Plugin -OpenIDE-Module-Name=Data Laboratory Plugin - OpenIDE-Module-Short-Description=Implementation of some Data Laboratory manipulators diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_ar.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_ar.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_ar.properties @@ -0,0 +1 @@ + diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_ca.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_ca.properties new file mode 100644 index 0000000000..e47c4096cb --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_ca.properties @@ -0,0 +1 @@ +OpenIDE-Module-Short-Description=Implementaciσ d'algun manipulador del laboratori de dades diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_cs.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_cs.properties index 79f94fda47..15d4a62210 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_cs.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_cs.properties @@ -1,9 +1 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Zbyn\u011bk Schwarz , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-02-26 18\:24+0000\nLast-Translator\: Zbyn\u011bk Schwarz \nLanguage-Team\: Czech (http\://www.transifex.com/projects/p/gephi/language/cs/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: cs\nPlural-Forms\: nplurals\=3; plural\=(n\=\=1) ? 0 \: (n>\=2 && n<\=4) ? 1 \: 2;\n - -OpenIDE-Module-Short-Description=Zaveden\u00ed n\u011bkter\u00fdch manipul\u00e1tor\u016f datov\u00e9 laborato\u0159e +OpenIDE-Module-Short-Description=Zavedenν n\u011bkterύch manipulαtor\u016f datovι laborato\u0159e diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_de.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_de.properties new file mode 100644 index 0000000000..03ae68c7bf --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_de.properties @@ -0,0 +1 @@ +OpenIDE-Module-Short-Description=Implementierung einiger Datenlabor Operatoren diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_es.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_es.properties index 6ea8751cc0..bf389159d7 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_es.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_es.properties @@ -1,9 +1 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-04 23\:10+0000\nLast-Translator\: gephi \nLanguage-Team\: Spanish (http\://www.transifex.com/projects/p/gephi/language/es/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: es\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n - -OpenIDE-Module-Short-Description=Implementaci\u00f3n de algunos manipuladores para el Laboratorio de Datos +OpenIDE-Module-Short-Description=Implementaciσn de algunos manipuladores para el Laboratorio de Datos diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_fr.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_fr.properties index 8e5d18b80b..581d8335ab 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_fr.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_fr.properties @@ -1,9 +1 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-04 23\:10+0000\nLast-Translator\: gephi \nLanguage-Team\: French (http\://www.transifex.com/projects/p/gephi/language/fr/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fr\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -OpenIDE-Module-Short-Description=Implementation des manipulateurs dans le Data Laboratory +OpenIDE-Module-Short-Description=Implementation des manipulateurs dans le Data Laboratory diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_he.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_he.properties new file mode 100644 index 0000000000..8e18189e5a --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_he.properties @@ -0,0 +1 @@ +OpenIDE-Module-Short-Description=\u05d9\u05e9\u05d5\u05dd \u05de\u05ea\u05e4\u05dc\u05dc\u05d9\u05dd \u05e9\u05dc \u05de\u05e2\u05d1\u05d3\u05ea \u05d4\u05e0\u05ea\u05d5\u05e0\u05d9\u05dd diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_hu.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_hu.properties new file mode 100644 index 0000000000..4a103c444c --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_hu.properties @@ -0,0 +1,3 @@ + + +OpenIDE-Module-Short-Description=N\u00E9h\u00E1ny Data Laboratory manipul\u00E1tor megval\u00F3s\u00EDt\u00E1sa diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_it.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_it.properties new file mode 100644 index 0000000000..963839ced6 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_it.properties @@ -0,0 +1 @@ +OpenIDE-Module-Short-Description=Implementazione di alcuni Data Laboratory manipulators diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_ja.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_ja.properties index 2f770e5cf2..b6451fb49a 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_ja.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_ja.properties @@ -1,9 +1 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-13 12\:19+0000\nLast-Translator\: Siro Kida \nLanguage-Team\: Japanese (http\://www.transifex.com/projects/p/gephi/language/ja/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ja\nPlural-Forms\: nplurals\=1; plural\=0;\n - -OpenIDE-Module-Short-Description=\u30c7\u30fc\u30bf\u30fb\u30e9\u30dc\u30e9\u30c8\u30ea\u30fc\u30fb\u30de\u30cb\u30d4\u30e5\u30ec\u30fc\u30bf\u306e\u5b9f\u88c5 +OpenIDE-Module-Short-Description=\u30c7\u30fc\u30bf\u30fb\u30e9\u30dc\u30e9\u30c8\u30ea\u30fc\u30fb\u30de\u30cb\u30d4\u30e5\u30ec\u30fc\u30bf\u306e\u5b9f\u88c5 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_ko.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_ko.properties new file mode 100644 index 0000000000..a9f17a70bb --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_ko.properties @@ -0,0 +1,3 @@ + + +OpenIDE-Module-Short-Description=\uC77C\uBD80 \uB370\uC774\uD130 \uC2E4\uD5D8\uC2E4 \uC870\uC791\uAE30\uC758 \uAD6C\uD604 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_nl.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_nl.properties new file mode 100644 index 0000000000..e6e63a42c3 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_nl.properties @@ -0,0 +1 @@ +OpenIDE-Module-Short-Description=Implementation of some Data Laboratory manipulators diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_pt.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_pt.properties new file mode 100644 index 0000000000..95e28262db --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_pt.properties @@ -0,0 +1 @@ +OpenIDE-Module-Short-Description=Implementa\u00E7\u00E3o de alguns manipuladores para o Laborat\u00F3rio de Dados diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_pt_BR.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_pt_BR.properties index ef412858cb..5dcf93ddc4 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_pt_BR.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_pt_BR.properties @@ -1,9 +1 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# C\u00e9lio CJr , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-05 18\:10+0000\nLast-Translator\: C\u00e9lio Faria Jr. \nLanguage-Team\: Portuguese (Brazil) (http\://www.transifex.com/projects/p/gephi/language/pt_BR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt_BR\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -OpenIDE-Module-Short-Description=Implementa\u00e7\u00e3o de alguns manipuladores para o Laborat\u00f3rio de Dados +OpenIDE-Module-Short-Description=Implementaηγo de alguns manipuladores para o Laboratσrio de Dados diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_ro.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_ro.properties new file mode 100644 index 0000000000..2e0c5ce796 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_ro.properties @@ -0,0 +1,3 @@ + + +OpenIDE-Module-Short-Description=Implementarea unor manipulatori pentru Laboratorul de Date diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_ru.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_ru.properties index f698b11aa5..18d6a29c01 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_ru.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_ru.properties @@ -1,9 +1 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-08 13\:16+0000\nLast-Translator\: gephi \nLanguage-Team\: Russian (http\://www.transifex.com/projects/p/gephi/language/ru/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ru\nPlural-Forms\: nplurals\=3; plural\=(n%10\=\=1 && n%100\!\=11 ? 0 \: n%10>\=2 && n%10<\=4 && (n%100<10 || n%100>\=20) ? 1 \: 2);\n - -OpenIDE-Module-Short-Description=\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u041b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u0438\u0438 \u0414\u0430\u043d\u043d\u044b\u0445 +OpenIDE-Module-Short-Description=\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u041b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u0438\u0438 \u0414\u0430\u043d\u043d\u044b\u0445 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_th.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_th.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_th.properties @@ -0,0 +1 @@ + diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_tr.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_tr.properties new file mode 100644 index 0000000000..e6e63a42c3 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_tr.properties @@ -0,0 +1 @@ +OpenIDE-Module-Short-Description=Implementation of some Data Laboratory manipulators diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_zh_CN.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_zh_CN.properties index 24c6e98e70..7769b79d92 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_zh_CN.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_zh_CN.properties @@ -1,8 +1 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-08 00\:18+0000\nLast-Translator\: gephi \nLanguage-Team\: Chinese (China) (http\://www.transifex.com/projects/p/gephi/language/zh_CN/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: zh_CN\nPlural-Forms\: nplurals\=1; plural\=0;\n - -OpenIDE-Module-Short-Description=\u4e00\u4e9b\u6570\u636e\u5b9e\u9a8c\u5ba4\u64cd\u4f5c\u7684\u5b89\u88c5\u542f\u7528 +OpenIDE-Module-Short-Description=\u4e00\u4e9b\u6570\u636e\u5b9e\u9a8c\u5ba4\u64cd\u4f5c\u7684\u5b89\u88c5\u542f\u7528 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_zh_TW.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_zh_TW.properties new file mode 100644 index 0000000000..bb426fd02e --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/Bundle_zh_TW.properties @@ -0,0 +1 @@ +OpenIDE-Module-Short-Description=\u5efa\u7acb\u8cc7\u6599\u5be6\u9a57\u5ba4\u7684\u8cc7\u6599\u8655\u7406\u529f\u80fd diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/cs.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/cs.po deleted file mode 100644 index a5c2333e36..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/cs.po +++ /dev/null @@ -1,22 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# ZbynΔ›k Schwarz , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-02-26 18:24+0000\n" -"Last-Translator: ZbynΔ›k Schwarz \n" -"Language-Team: Czech (http://www.transifex.com/projects/p/gephi/language/cs/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: cs\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" - -msgid "OpenIDE-Module-Short-Description" -msgstr "ZavedenΓ­ nΔ›kterΓ½ch manipulΓ‘torΕ― datovΓ© laboratoΕ™e" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/es.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/es.po deleted file mode 100644 index a0c2f4ebef..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/es.po +++ /dev/null @@ -1,22 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-04 23:10+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/gephi/language/es/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -msgid "OpenIDE-Module-Short-Description" -msgstr "ImplementaciΓ³n de algunos manipuladores para el Laboratorio de Datos" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/fr.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/fr.po deleted file mode 100644 index 417c7befae..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/fr.po +++ /dev/null @@ -1,22 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-04 23:10+0000\n" -"Last-Translator: gephi \n" -"Language-Team: French (http://www.transifex.com/projects/p/gephi/language/fr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "OpenIDE-Module-Short-Description" -msgstr "Implementation des manipulateurs dans le Data Laboratory" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/ja.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/ja.po deleted file mode 100644 index e2f3d47609..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/ja.po +++ /dev/null @@ -1,22 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-13 12:19+0000\n" -"Last-Translator: Siro Kida \n" -"Language-Team: Japanese (http://www.transifex.com/projects/p/gephi/language/ja/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ja\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "OpenIDE-Module-Short-Description" -msgstr "γƒ‡γƒΌγ‚Ώγƒ»γƒ©γƒœγƒ©γƒˆγƒͺγƒΌγƒ»γƒžγƒ‹γƒ”γƒ₯レータγεŸθ£…" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_ar.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_ar.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_ar.properties @@ -0,0 +1 @@ + diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_ca.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_ca.properties new file mode 100644 index 0000000000..2a3353f69a --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_ca.properties @@ -0,0 +1,22 @@ +DeleteColumn.name=Elimina la columna +DeleteColumn.confirmation.message=Confirm to delete ''{0}''? +ClearColumnData.name=Neteja la columna +ClearColumnData.confirmation.message=Confirm to clear ''{0}''? +CopyDataToOtherColumn.name=Copia les dades a una altra columna +FillColumnWithValue.name=Fill column with a value +FillColumnWithValue.inputDialog.text=Choose a value to fill all rows: +DuplicateColumn.name=Duplica la columna +ColumnValuesFrequency.name=Calculate values frequency +ColumnValuesFrequency.description=Calculate the frequency of each value appearance. +ColumnValuesFrequency.report.header=

    Values frequencies report ''{0}''

    +ColumnValuesFrequency.report.piechart.title=Values frequencies pie chart +ColumnValuesFrequency.report.piechart.not-shown=There are more than 100 different values, pie chart is not shown. +NumberColumnStatisticsReport.name=Calcula les estadνstiques +NumberColumnStatisticsReport.description=Calculate statistics on a number or number list column. +CreateBooleanMatchesColumn.name=Create a boolean column from regex match +CreateBooleanMatchesColumn.description=Create a boolean column with values indicating if each of the selected values matches the regular expression. +CreateFoundGroupsListColumn.name=Create column with list of regex matching groups +CreateFoundGroupsListColumn.description=Create a string list column in which values are the matching groups results of the regular expression. +NegateBooleanColumn.name=Negate boolean values +ConvertColumnToDynamic.name=Convert column to dynamic +ConvertColumnToDynamic.description=Convert an existing column to a dynamic column and optionally replace it diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_cs.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_cs.properties index 3819cc4bb1..d52836bc27 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_cs.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_cs.properties @@ -1,51 +1,26 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Zbyn\u011bk Schwarz , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-12-31 01\:16+0000\nLast-Translator\: Eduardo Ramos \nLanguage-Team\: Czech (http\://www.transifex.com/projects/p/gephi/language/cs/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: cs\nPlural-Forms\: nplurals\=3; plural\=(n\=\=1) ? 0 \: (n>\=2 && n<\=4) ? 1 \: 2;\n - -DeleteColumn.name=Smazat sloupec - -DeleteColumn.confirmation.message=Potvrdit smaz\u00e1n\u00ed ''{0}''? - -ClearColumnData.name=Vy\u010distit sloupec - -ClearColumnData.confirmation.message=Potvrdit vy\u010di\u0161t\u011bn\u00ed ''{0}''? - -CopyDataToOtherColumn.name=Kop\u00edrovat data na dal\u0161\u00ed sloupec - -FillColumnWithValue.name=Naplnit sloupec hodnotou - -FillColumnWithValue.inputDialog.text=Zvolte hodnotu kterou vyplnit v\u0161echny \u0159\u00e1dky\: - -DuplicateColumn.name=Kop\u00edrovat sloupec - -ColumnValuesFrequency.name=Spo\u010d\u00edtat \u010detnost hodnot - -ColumnValuesFrequency.description=Vypo\u010d\u00edtat \u010detnost v\u00fdskytu ka\u017ed\u00e9 hodnoty. - -ColumnValuesFrequency.report.header=

    Hl\u00e1\u0161en\u00ed \u010detnosti hodnot ''{0}''

    - -ColumnValuesFrequency.report.piechart.title=Kol\u00e1\u010dov\u00fd graf \u010detnosti hodnot - -ColumnValuesFrequency.report.piechart.not-shown=Existuje v\u00edce ne\u017e 100 r\u016fzn\u00fdch hodnot, kol\u00e1\u010dov\u00fd graf nen\u00ed zobrazen. - -NumberColumnStatisticsReport.name=Vypo\u010d\u00edtat statistiky - -NumberColumnStatisticsReport.description=Vypo\u010d\u00edtat statistiky \u010d\u00edsla nebo sloupec seznamu \u010d\u00edsel. - -CreateBooleanMatchesColumn.name=Vytvo\u0159it booleovsk\u00fd sloupec ze shody regul\u00e1rn\u00edho v\u00fdrazu - -CreateBooleanMatchesColumn.description=Vytvo\u0159it booleovsk\u00fd sloupec s hodnotami ozna\u010duj\u00edc\u00ed jestli ka\u017ed\u00e1 z vybran\u00fdch hodnot odpov\u00edd\u00e1 regul\u00e1rn\u00edmu v\u00fdrazu. - -CreateFoundGroupsListColumn.name=Vytvo\u0159it sloupec se seznamem skupin odpov\u00eddaj\u00edc\u00ed regul\u00e1rn\u00edmu v\u00fdrazu - -CreateFoundGroupsListColumn.description=Vytvo\u0159it sloupec se seznamen \u0159et\u011bzc\u016f, v n\u011bm\u017e hodnoty odpov\u00eddaj\u00ed skupinov\u00fdm v\u00fdsledk\u016fm regul\u00e1rn\u00edho v\u00fdrazu. - -NegateBooleanColumn.name=Negovat booleovsk\u00e9 hodnoty - -!ConvertColumnToDynamic.name= - -!ConvertColumnToDynamic.description= +DeleteColumn.name=Smazat sloupec +DeleteColumn.confirmation.message=Potvrdit smazαnν ''{0}''? +ClearColumnData.name=Vy\u010distit sloupec +ClearColumnData.confirmation.message=Potvrdit vy\u010di\u0161t\u011bnν ''{0}''? +CopyDataToOtherColumn.name=Kopνrovat data na dal\u0161ν sloupec +FillColumnWithValue.name=Naplnit sloupec hodnotou +FillColumnWithValue.inputDialog.text=Zvolte hodnotu kterou vyplnit v\u0161echny \u0159αdky: +DuplicateColumn.name=Kopνrovat sloupec + +ColumnValuesFrequency.name=Spo\u010dνtat \u010detnost hodnot +ColumnValuesFrequency.description=Vypo\u010dνtat \u010detnost vύskytu ka\u017edι hodnoty. +ColumnValuesFrequency.report.header=

    Hlα\u0161enν \u010detnosti hodnot ''{0}''

    +ColumnValuesFrequency.report.piechart.title=Kolα\u010dovύ graf \u010detnosti hodnot +ColumnValuesFrequency.report.piechart.not-shown=Existuje vνce ne\u017e 100 r\u016fznύch hodnot, kolα\u010dovύ graf nenν zobrazen. +NumberColumnStatisticsReport.name=Vypo\u010dνtat statistiky +NumberColumnStatisticsReport.description=Vypo\u010dνtat statistiky \u010dνsla nebo sloupec seznamu \u010dνsel. + +CreateBooleanMatchesColumn.name=Vytvo\u0159it booleovskύ sloupec ze shody regulαrnνho vύrazu +CreateBooleanMatchesColumn.description=Vytvo\u0159it booleovskύ sloupec s hodnotami ozna\u010dujνcν jestli ka\u017edα z vybranύch hodnot odpovνdα regulαrnνmu vύrazu. +CreateFoundGroupsListColumn.name=Vytvo\u0159it sloupec se seznamem skupin odpovνdajνcν regulαrnνmu vύrazu +CreateFoundGroupsListColumn.description=Vytvo\u0159it sloupec se seznamen \u0159et\u011bzc\u016f, v n\u011bm\u017e hodnoty odpovνdajν skupinovύm vύsledk\u016fm regulαrnνho vύrazu. + +NegateBooleanColumn.name=Negovat booleovskι hodnoty + +ConvertColumnToDynamic.name=P\u0159evιst sloupec na dynamickύ +ConvertColumnToDynamic.description=P\u0159evιst existujνcν sloupec na dynamickύ s mo\u017enostν jeho p\u0159emνst\u011bnν diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_de.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_de.properties new file mode 100644 index 0000000000..ab0a9375ae --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_de.properties @@ -0,0 +1,26 @@ +DeleteColumn.name=Spalte lφschen +DeleteColumn.confirmation.message=Soll ''{0}'' gelφscht werden? +ClearColumnData.name=Spalte leeren +ClearColumnData.confirmation.message=Soll ''{0}'' geleert werden? +CopyDataToOtherColumn.name=Daten in andere Spalte kopieren +FillColumnWithValue.name=Spalte mit einem Wert fόllen +FillColumnWithValue.inputDialog.text=Einen Wert wδhlen, mit dem die Zeilen gefόllt werden sollen: +DuplicateColumn.name=Spalte duplizieren + +ColumnValuesFrequency.name=Hδufigkeit der Werte berechnen +ColumnValuesFrequency.description=Hδufigkeit jedes vorkommenden Wertes berechnen. +ColumnValuesFrequency.report.header=

    Bericht όber Hδufigkeiten der Werte ''{0}''

    +ColumnValuesFrequency.report.piechart.title=Tortendiagramm όber die Hδufigkeiten der Werte +ColumnValuesFrequency.report.piechart.not-shown=Es wird kein Tortendiagramm angezeigt, da mehr als 100 verschiedene Werte vorhanden sind. +NumberColumnStatisticsReport.name=Statistiken berechnen +NumberColumnStatisticsReport.description=Statistik zu einer numerischen Spalte berechnen. + +CreateBooleanMatchesColumn.name=Erzeuge Spalte vom Typ Boolean aus Regex-Treffern +CreateBooleanMatchesColumn.description=Erzeuge Spalte vom Typ Boolean mit Werten, die anzeugen ob jeder der selektierten Werte mit dem regulδren Ausdruck όbereinstimmt. +CreateFoundGroupsListColumn.name=Erzeuge Spalte mit Liste der den regulδren Ausdrόcken entsprechenden Teilausdrόcke. +CreateFoundGroupsListColumn.description=Erzeuge Spalte vom Typ String-List deren Werte die den regulδren Ausdrόcken entsprechenden Teilausdrόcke sind. + +NegateBooleanColumn.name=Wahrheitswerte negieren + +ConvertColumnToDynamic.name=Wandle Spalte in eine dynamische Spalte +ConvertColumnToDynamic.description=Wandele eine bestehende Spalte in eine dynamische Spalte und, optional, ersetze diese. diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_es.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_es.properties index 956f76a3b1..0e6324abd1 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_es.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_es.properties @@ -1,52 +1,22 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Eduardo Ramos , 2012. -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-12-31 01\:24+0000\nLast-Translator\: Eduardo Ramos \nLanguage-Team\: Spanish (http\://www.transifex.com/projects/p/gephi/language/es/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: es\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n - DeleteColumn.name=Borrar columna - -DeleteColumn.confirmation.message=\u00bfConfirmar eliminaci\u00f3n de ''{0}''? - +DeleteColumn.confirmation.message=ΏConfirmar eliminaciσn de ''{0}''? ClearColumnData.name=Borrar datos de columna - -ClearColumnData.confirmation.message=\u00bfConfirmar borrado de datos de ''{0}''? - +ClearColumnData.confirmation.message=ΏConfirmar borrado de datos de ''{0}''? CopyDataToOtherColumn.name=Copiar datos a otra columna - FillColumnWithValue.name=Rellenar columna con un valor - -FillColumnWithValue.inputDialog.text=Elige un valor con el que rellenar todas las filas de la columna - +FillColumnWithValue.inputDialog.text=Elige un valor para rellenar todas las filas: DuplicateColumn.name=Duplicar columna - ColumnValuesFrequency.name=Calcular frecuencia de valores de columna - -ColumnValuesFrequency.description=Calcula la frecuencia de aparici\u00f3n de cada valor de una columna y muestra un informe - +ColumnValuesFrequency.description=Calcula la frecuencia en que aparece cada valor. ColumnValuesFrequency.report.header=

    Informe de frecuencia de valores para la columna ''{0}''

    - -ColumnValuesFrequency.report.piechart.title=Gr\u00e1fico de tarta de frecuencias de valores - -ColumnValuesFrequency.report.piechart.not-shown=Hay m\u00e1s de 100 valores diferentes, el gr\u00e1fico de tarta no es mostrado. - -NumberColumnStatisticsReport.name=Calcular estad\u00edsticas - -NumberColumnStatisticsReport.description=Calcula estad\u00edsticas de una columna num\u00e9rica o de lista de n\u00fameros y muestra un informe - -CreateBooleanMatchesColumn.name=Crear columna booleana a partir de expresi\u00f3n regular - -CreateBooleanMatchesColumn.description=Crea una nueva columna booleana con valores que indican si cada valor de la columna seleccionada se ajusta a la expresi\u00f3n regular proporcionada - -CreateFoundGroupsListColumn.name=Crear columna con lista de grupos que se ajustan a una expresi\u00f3n regular - -CreateFoundGroupsListColumn.description=Crea una nueva columna de tipo lista de cadenas de texto con valores que son la lista de grupos que se ajustan a la expresi\u00f3n regular proporcionada - +ColumnValuesFrequency.report.piechart.title=Grαfico de tarta de frecuencias de valores +ColumnValuesFrequency.report.piechart.not-shown=Hay mαs de 100 valores diferentes, el grαfico de tarta no es mostrado. +NumberColumnStatisticsReport.name=Calcular estadνsticas +NumberColumnStatisticsReport.description=Calcular las estad\u00EDsticas de un n\u00FAmero o columna de una lista de n\u00FAmeros. +CreateBooleanMatchesColumn.name=Crear columna booleana a partir de expresiσn regular +CreateBooleanMatchesColumn.description=Crear una columna booleana con valores que indiquen si cada uno de los valores seleccionados coincide con la expresi\u00F3n regular. +CreateFoundGroupsListColumn.name=Crear columna con lista de grupos que se ajustan a una expresiσn regular +CreateFoundGroupsListColumn.description=Crea una columna de lista de cadenas que da como resultado grupos coincidentes de expresiones regulares. NegateBooleanColumn.name=Negar columna booleana - -ConvertColumnToDynamic.name=Convertir columna a din\u00e1mica - -ConvertColumnToDynamic.description=Convertir una columna existente en din\u00e1mica y opcionalmente reemplazarla +ConvertColumnToDynamic.name=Convertir columna a dinαmica +ConvertColumnToDynamic.description=Convertir una columna existente en dinαmica y opcionalmente reemplazarla diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_fr.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_fr.properties index 7920f8589e..43d4319c23 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_fr.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_fr.properties @@ -1,51 +1,26 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-12-31 01\:16+0000\nLast-Translator\: Eduardo Ramos \nLanguage-Team\: French (http\://www.transifex.com/projects/p/gephi/language/fr/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fr\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -DeleteColumn.name=Supprimer la colonne - -DeleteColumn.confirmation.message=Confirmer la suppression de ''{0}''? - -ClearColumnData.name=Effacer la colonne - -ClearColumnData.confirmation.message=Confirmer effacement de ''{0}''? - -CopyDataToOtherColumn.name=Copier les donn\u00e9es vers une colonne - -FillColumnWithValue.name=Remplir la colonne avec une valeur - -FillColumnWithValue.inputDialog.text=Valeur de remplissage pour toutes les lignes \: - -DuplicateColumn.name=Dupliquer la colonne - -ColumnValuesFrequency.name=Calculer les fr\u00e9quences - -ColumnValuesFrequency.description=Calcule la fr\u00e9quence de chaque apparition de valeur - -ColumnValuesFrequency.report.header=

    Rapport des fr\u00e9quences ''{0}''

    - -ColumnValuesFrequency.report.piechart.title=Diagramme circulaire des fr\u00e9quences - -ColumnValuesFrequency.report.piechart.not-shown=Diagramme non affich\u00e9 car il y a plus de 100 valeurs diff\u00e9rentes. - -NumberColumnStatisticsReport.name=Calculer les statistiques - -NumberColumnStatisticsReport.description=Calcule les statistiques sur une colonne de nombres ou de liste de nombres. - -CreateBooleanMatchesColumn.name=Cr\u00e9er une colonne bool\u00e9enne depuis une expression rationnelle - -CreateBooleanMatchesColumn.description=Cr\u00e9er une colonne bool\u00e9enne indiquant si chaque ligne correspond \u00e0 l'expression rationnelle. - -CreateFoundGroupsListColumn.name=Cr\u00e9er une colonne depuis une liste de groupes d'une expression rationnelle - -CreateFoundGroupsListColumn.description=Cr\u00e9er une colonne en liste dont les valeurs correspondent aux groupes de l'expression rationnelle. - -NegateBooleanColumn.name=Inverse les valeurs bool\u00e9nnes - -!ConvertColumnToDynamic.name= - -!ConvertColumnToDynamic.description= +DeleteColumn.name=Supprimer la colonne +DeleteColumn.confirmation.message=Confirmer la suppression de ''{0}''? +ClearColumnData.name=Effacer la colonne +ClearColumnData.confirmation.message=Confirmer effacement de ''{0}''? +CopyDataToOtherColumn.name=Copier les donnιes vers une colonne +FillColumnWithValue.name=Remplir la colonne avec une valeur +FillColumnWithValue.inputDialog.text=Valeur de remplissage pour toutes les lignes : +DuplicateColumn.name=Dupliquer la colonne + +ColumnValuesFrequency.name=Calculer les frιquences +ColumnValuesFrequency.description=Calcule la frιquence de chaque apparition de valeur +ColumnValuesFrequency.report.header=

    Rapport des frιquences ''{0}''

    +ColumnValuesFrequency.report.piechart.title=Diagramme circulaire des frιquences +ColumnValuesFrequency.report.piechart.not-shown=Diagramme non affichι car il y a plus de 100 valeurs diffιrentes. +NumberColumnStatisticsReport.name=Calculer les statistiques +NumberColumnStatisticsReport.description=Calcule les statistiques sur une colonne de nombres ou de liste de nombres. + +CreateBooleanMatchesColumn.name=Crιer une colonne boolιenne depuis une expression rationnelle +CreateBooleanMatchesColumn.description=Crιer une colonne boolιenne indiquant si chaque ligne correspond ΰ l'expression rationnelle. +CreateFoundGroupsListColumn.name=Crιer une colonne depuis une liste de groupes d'une expression rationnelle +CreateFoundGroupsListColumn.description=Crιer une colonne en liste dont les valeurs correspondent aux groupes de l'expression rationnelle. + +NegateBooleanColumn.name=Inverse les valeurs boolιnnes + +ConvertColumnToDynamic.name=Convertir la colonne en dynamique +ConvertColumnToDynamic.description=Convertir une colonne existante vers une colonne dynamique. diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_he.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_he.properties new file mode 100644 index 0000000000..19b6d27b5d --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_he.properties @@ -0,0 +1,26 @@ +DeleteColumn.name=\u05de\u05d7\u05e7 \u05e2\u05de\u05d5\u05d3\u05d4 +DeleteColumn.confirmation.message=\u05d0\u05e9\u05e8 \u05de\u05d7\u05d9\u05e7\u05ea "{0}"? +ClearColumnData.name=\u05e0\u05e7\u05d4 \u05e2\u05de\u05d5\u05d3\u05d4 +ClearColumnData.confirmation.message=\u05d0\u05e9\u05e8 \u05e0\u05d9\u05e7\u05d5\u05d9 "{0}"? +CopyDataToOtherColumn.name=\u05d4\u05e2\u05ea\u05e7 \u05e0\u05ea\u05d5\u05e0\u05d9\u05dd \u05dc\u05e2\u05de\u05d5\u05d3\u05d4 \u05d0\u05d7\u05e8\u05ea +FillColumnWithValue.name=\u05de\u05dc\u05d0 \u05e2\u05de\u05d5\u05d3\u05d4 \u05e2\u05dd \u05e2\u05e8\u05da +FillColumnWithValue.inputDialog.text=\u05d1\u05d7\u05e8 \u05e2\u05e8\u05da \u05dc\u05de\u05d9\u05dc\u05d5\u05d9 \u05db\u05dc \u05d4\u05e9\u05d5\u05e8\u05d5\u05ea +DuplicateColumn.name=\u05e9\u05db\u05e4\u05dc \u05e2\u05de\u05d5\u05d3\u05d5\u05ea + +ColumnValuesFrequency.name=\u05d7\u05e9\u05d1 \u05e9\u05db\u05d9\u05d7\u05d5\u05ea \u05e2\u05e8\u05db\u05d9\u05dd +ColumnValuesFrequency.description=\u05d7\u05e9\u05d1 \u05e9\u05db\u05d9\u05d7\u05d5\u05ea \u05d4\u05d5\u05e4\u05e2\u05ea \u05db\u05dc \u05e2\u05e8\u05da +ColumnValuesFrequency.report.header=

    \u05d3\u05d5\u05d7 \u05e9\u05db\u05d9\u05d7\u05d5\u05ea \u05e2\u05e8\u05db\u05d9 "{0}"

    +ColumnValuesFrequency.report.piechart.title=\u05d2\u05e8\u05e3 \u05e4\u05d0\u05d9 \u05e9\u05dc \u05e9\u05db\u05d9\u05d7\u05d5\u05ea \u05e2\u05e8\u05db\u05d9\u05dd +ColumnValuesFrequency.report.piechart.not-shown=\u05e7\u05d9\u05d9\u05de\u05d9\u05dd \u05dc\u05de\u05e2\u05dc\u05d4 \u05de 100 \u05e2\u05e8\u05db\u05d9\u05dd \u05e9\u05d5\u05e0\u05d9\u05dd, \u05d2\u05e8\u05e3 \u05e4\u05d0\u05d9 \u05d0\u05d9\u05e0\u05d5 \u05de\u05d5\u05e6\u05d2 +NumberColumnStatisticsReport.name=\u05d7\u05d9\u05e9\u05d5\u05d1 \u05e1\u05d8\u05d8\u05d9\u05e1\u05d8\u05d9\u05e7\u05d5\u05ea +NumberColumnStatisticsReport.description=\u05d7\u05d9\u05e9\u05d5\u05d1 \u05e1\u05d8\u05d8\u05d9\u05e1\u05d8\u05d9\u05e7\u05d4 \u05e2\u05dc \u05de\u05e1\u05e4\u05e8 \u05d0\u05d5 \u05e2\u05dc \u05d8\u05d5\u05e8 \u05e9\u05dc \u05e8\u05e9\u05d9\u05de\u05ea \u05de\u05e1\u05e4\u05e8\u05d9\u05dd + +CreateBooleanMatchesColumn.name=\u05d9\u05e6\u05d9\u05e8\u05ea \u05d8\u05d5\u05e8 \u05d1\u05d5\u05dc\u05d9\u05d0\u05e0\u05d9 \u05de\u05d4\u05ea\u05d0\u05de\u05ea \u05d1\u05d9\u05d8\u05d5\u05d9 \u05e8\u05d2\u05d5\u05dc\u05e8\u05d9 +CreateBooleanMatchesColumn.description=\u05d9\u05e6\u05d9\u05e8\u05ea \u05d8\u05d5\u05e8 \u05d1\u05d5\u05dc\u05d9\u05d0\u05e0\u05d9 \u05e2\u05dd \u05e2\u05e8\u05db\u05d9\u05dd \u05d4\u05de\u05d9\u05d9\u05e6\u05d2\u05d9\u05dd \u05d4\u05d0\u05dd \u05db\u05dc \u05d0\u05d7\u05d3 \u05de\u05d4\u05e2\u05e8\u05db\u05d9\u05dd \u05d4\u05e0\u05d1\u05d7\u05e8\u05d9\u05dd \u05de\u05ea\u05d0\u05d9\u05de\u05d9\u05dd \u05dc\u05d1\u05d9\u05d8\u05d5\u05d9 \u05d4\u05e8\u05d2\u05d5\u05dc\u05e8\u05d9 +CreateFoundGroupsListColumn.name=\u05d9\u05e6\u05e8\u05ea \u05d8\u05d5\u05e8 \u05de\u05e8\u05e9\u05d9\u05de\u05ea \u05e7\u05d1\u05d5\u05e6\u05d5\u05ea \u05d4\u05ea\u05d0\u05de\u05ea \u05d1\u05d9\u05d8\u05d5\u05d9 \u05e8\u05d2\u05d5\u05dc\u05e8\u05d9 +CreateFoundGroupsListColumn.description=\u05d9\u05e6\u05d9\u05e8\u05ea \u05d8\u05d5\u05e8 \u05de\u05d7\u05e8\u05d5\u05d6\u05ea \u05d1\u05d4 \u05d4\u05e2\u05e8\u05db\u05d9\u05dd \u05d4\u05dd \u05ea\u05d5\u05e6\u05d0\u05d5\u05ea \u05d4\u05ea\u05d0\u05de\u05ea \u05e7\u05d1\u05d5\u05e6\u05d5\u05ea \u05e9\u05dc \u05d1\u05d9\u05d5\u05d8\u05d9\u05d9\u05dd \u05e8\u05d2\u05d5\u05dc\u05e8\u05d9\u05dd + +NegateBooleanColumn.name=\u05d4\u05d9\u05e4\u05d5\u05da \u05e2\u05e8\u05db\u05d9\u05dd \u05d1\u05d5\u05dc\u05d9\u05d0\u05e0\u05d9\u05dd + +ConvertColumnToDynamic.name=\u05d4\u05e4\u05d9\u05db\u05ea \u05d8\u05d5\u05e8 \u05dc\u05d3\u05d9\u05e0\u05d0\u05de\u05d9 +ConvertColumnToDynamic.description=\u05d4\u05e4\u05d9\u05db\u05ea \u05d8\u05d5\u05e8 \u05e7\u05d9\u05d9\u05dd \u05dc\u05d8\u05d5\u05e8 \u05d3\u05d9\u05e0\u05d0\u05de\u05d9 \u05d5\u05d4\u05d7\u05dc\u05e4\u05ea\u05d5 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_hu.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_hu.properties new file mode 100644 index 0000000000..f0fb20e26c --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_hu.properties @@ -0,0 +1,24 @@ + + +CreateFoundGroupsListColumn.name=Hozzon l\u00E9tre oszlopot a regex egyez\u0151 csoportok list\u00E1j\u00E1val +DuplicateColumn.name=Oszlop megkett\u0151z\u00E9se +DeleteColumn.confirmation.message=Meger\u0151s\u00EDti a(z) ''{0}'' t\u00F6rl\u00E9s\u00E9t? +ConvertColumnToDynamic.description=Konvert\u00E1lja a megl\u00E9v\u0151 oszlopot dinamikus oszlopp\u00E1, \u00E9s opcion\u00E1lisan cser\u00E9lje le +CopyDataToOtherColumn.name=Adatok m\u00E1sol\u00E1sa m\u00E1sik oszlopba +ClearColumnData.name=Oszlop t\u00F6rl\u00E9se +FillColumnWithValue.name=Az oszlop kit\u00F6lt\u00E9se \u00E9rt\u00E9kkel +ColumnValuesFrequency.report.piechart.title=\u00C9rt\u00E9kek gyakoris\u00E1gi k\u00F6rdiagramja +ClearColumnData.confirmation.message=Meger\u0151s\u00EDti a ''{0}'' t\u00F6rl\u00E9s\u00E9t? +NegateBooleanColumn.name=Logikai \u00E9rt\u00E9kek tagad\u00E1sa +NumberColumnStatisticsReport.description=Statisztik\u00E1k kisz\u00E1m\u00EDt\u00E1sa egy sz\u00E1m vagy sz\u00E1mlista oszlop\u00E1ban. +CreateBooleanMatchesColumn.name=Hozzon l\u00E9tre egy logikai oszlopot a regul\u00E1ris kifejez\u00E9sb\u0151l +ConvertColumnToDynamic.name=Oszlop \u00E1talak\u00EDt\u00E1sa dinamikuss\u00E1 +ColumnValuesFrequency.name=Sz\u00E1m\u00EDtsa ki az \u00E9rt\u00E9kek gyakoris\u00E1g\u00E1t +DeleteColumn.name=Oszlop t\u00F6rl\u00E9se +CreateBooleanMatchesColumn.description=Hozzon l\u00E9tre egy logikai oszlopot olyan \u00E9rt\u00E9kekkel, amelyek jelzik, hogy a kiv\u00E1lasztott \u00E9rt\u00E9kek mindegyike egyezik-e a regul\u00E1ris kifejez\u00E9ssel. +CreateFoundGroupsListColumn.description=Hozzon l\u00E9tre egy karakterl\u00E1nc-lista oszlopot, amelyben az \u00E9rt\u00E9kek a regul\u00E1ris kifejez\u00E9s egyez\u0151 csoporteredm\u00E9nyei. +ColumnValuesFrequency.report.piechart.not-shown=T\u00F6bb mint 100 k\u00FCl\u00F6nb\u00F6z\u0151 \u00E9rt\u00E9k l\u00E9tezik, a k\u00F6rdiagram nem jelenik meg. +ColumnValuesFrequency.report.header=

    Az \u00E9rt\u00E9kek gyakoris\u00E1gi jelent\u00E9se: ''{0}

    +ColumnValuesFrequency.description=Sz\u00E1m\u00EDtsa ki az egyes \u00E9rt\u00E9kek megjelen\u00E9si gyakoris\u00E1g\u00E1t. +FillColumnWithValue.inputDialog.text=V\u00E1lasszon egy \u00E9rt\u00E9ket az \u00F6sszes sor kit\u00F6lt\u00E9s\u00E9hez: +NumberColumnStatisticsReport.name=Statisztik\u00E1k sz\u00E1m\u00EDt\u00E1sa diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_it.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_it.properties new file mode 100644 index 0000000000..5aa4d1b80f --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_it.properties @@ -0,0 +1,22 @@ +DeleteColumn.name=Cancella colonna +DeleteColumn.confirmation.message=Confermi di cancellare ''{0}''? +ClearColumnData.name=Svuota colonna +ClearColumnData.confirmation.message=Confermi di svuotare ''{0}''? +CopyDataToOtherColumn.name=Copia i dati su altra colonna +FillColumnWithValue.name=Riempi colonna con un valore +FillColumnWithValue.inputDialog.text=Scegli un valore per riempire tutte le righe: +DuplicateColumn.name=Duplica colonna +ColumnValuesFrequency.name=Calcolare la frequenza dei valori +ColumnValuesFrequency.description=Calcola la frequenza di apparizione di ciascun valore. +ColumnValuesFrequency.report.header=

    Values frequencies report ''{0}''

    +ColumnValuesFrequency.report.piechart.title=Grafico a torta delle frequenze dei valori +ColumnValuesFrequency.report.piechart.not-shown=Esistono piω di 100 valori differenti, il grafico a torta non θ mostrato. +NumberColumnStatisticsReport.name=Calcola statistiche +NumberColumnStatisticsReport.description=Calcola le statistiche su una colonna di tipo numero o lista di numeri. +CreateBooleanMatchesColumn.name=Crea una colonna binaria dalle corrispondenze di tipo regex +CreateBooleanMatchesColumn.description=Create a boolean column with values indicating if each of the selected values matches the regular expression. +CreateFoundGroupsListColumn.name=Create column with list of regex matching groups +CreateFoundGroupsListColumn.description=Create a string list column in which values are the matching groups results of the regular expression. +NegateBooleanColumn.name=Inverti i valori binari +ConvertColumnToDynamic.name=Converti la colonna a dinamica +ConvertColumnToDynamic.description=Converti una colonna esistente a dinamica eventualmente rimpiazzandola diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_ja.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_ja.properties index 981af7b5fe..13f220fef6 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_ja.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_ja.properties @@ -1,51 +1,26 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-12-31 01\:16+0000\nLast-Translator\: Eduardo Ramos \nLanguage-Team\: Japanese (http\://www.transifex.com/projects/p/gephi/language/ja/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ja\nPlural-Forms\: nplurals\=1; plural\=0;\n - -DeleteColumn.name=\u5217\u306e\u524a\u9664 - -DeleteColumn.confirmation.message=''{0}''\u3092\u524a\u9664\u3057\u3066\u3082\u3044\u3044\u3067\u3059\u304b\uff1f - -ClearColumnData.name=\u5217\u306e\u30af\u30ea\u30a2 - -ClearColumnData.confirmation.message=''{0}''\u3092\u30af\u30ea\u30a2\u3057\u3066\u3082\u3044\u3044\u3067\u3059\u304b\uff1f - -CopyDataToOtherColumn.name=\u30c7\u30fc\u30bf\u3092\u4ed6\u306e\u5217\u306b\u30b3\u30d4\u30fc - -FillColumnWithValue.name=\u5217\u3092\u5024\u3067\u57cb\u3081\u308b - -FillColumnWithValue.inputDialog.text=\u884c\u3092\u57cb\u3081\u308b\u5024\u3092\u9078\u629e\: - -DuplicateColumn.name=\u5217\u3092\u8907\u5199 - -ColumnValuesFrequency.name=\u5024\u306e\u983b\u5ea6\u3092\u8a08\u7b97 - -ColumnValuesFrequency.description=\u305d\u308c\u305e\u308c\u306e\u5024\u306e\u51fa\u73fe\u306e\u983b\u5ea6\u3092\u8a08\u7b97 - -ColumnValuesFrequency.report.header=

    \u5024\u983b\u5ea6\u30ec\u30dd\u30fc\u30c8''{0}''

    - -ColumnValuesFrequency.report.piechart.title=\u5024\u983b\u5ea6\u5186\u30b0\u30e9\u30d5 - -ColumnValuesFrequency.report.piechart.not-shown=100\u4ee5\u4e0a\u306e\u5024\u304c\u3042\u308b\u305f\u3081\u5186\u30b0\u30e9\u30d5\u306f\u8868\u793a\u3055\u308c\u307e\u305b\u3093\u3002 - -NumberColumnStatisticsReport.name=\u7d71\u8a08\u91cf\u306e\u8a08\u7b97 - -NumberColumnStatisticsReport.description=\u6570\u5024\u307e\u305f\u306f\u6570\u5024\u30ea\u30b9\u30c8\u306e\u5217\u306b\u95a2\u3059\u308b\u7d71\u8a08\u91cf\u3092\u8a08\u7b97 - -CreateBooleanMatchesColumn.name=\u6b63\u898f\u8868\u73fe\u306e\u30de\u30c3\u30c1\u304b\u3089\u30d6\u30fc\u30eb\u5024\u306e\u5217\u3092\u4f5c\u6210 - -CreateBooleanMatchesColumn.description=\u9078\u629e\u3055\u308c\u305f\u5024\u306e\u5404\u3005\u306f\u6b63\u898f\u8868\u73fe\u306b\u4e00\u81f4\u3059\u308c\u3070\u3001\u793a\u3059\u5024\u3092\u6301\u3064\u30d6\u30fc\u30eb\u5217\u3092\u4f5c\u6210 - -CreateFoundGroupsListColumn.name=\u6b63\u898f\u8868\u73fe\u306b\u4e00\u81f4\u3059\u308b\u30b0\u30eb\u30fc\u30d7\u306e\u30ea\u30b9\u30c8\u3067\u5217\u3092\u4f5c\u6210 - -CreateFoundGroupsListColumn.description=\u5024\u304c\u6b63\u898f\u8868\u73fe\u306e\u4e00\u81f4\u3059\u308b\u30b0\u30eb\u30fc\u30d7\u306e\u7d50\u679c\u3055\u308c\u3066\u3044\u308b\u6587\u5b57\u5217\u30ea\u30b9\u30c8\u306e\u5217\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002 - -NegateBooleanColumn.name=\u30d6\u30fc\u30eb\u5024\u3092\u62d2\u5426 - -!ConvertColumnToDynamic.name= - -!ConvertColumnToDynamic.description= +DeleteColumn.name=\u5217\u306e\u524a\u9664 +DeleteColumn.confirmation.message=''{0}''\u3092\u524a\u9664\u3057\u3066\u3082\u3044\u3044\u3067\u3059\u304b\uff1f +ClearColumnData.name=\u5217\u306e\u30af\u30ea\u30a2 +ClearColumnData.confirmation.message=''{0}''\u3092\u30af\u30ea\u30a2\u3057\u3066\u3082\u3044\u3044\u3067\u3059\u304b\uff1f +CopyDataToOtherColumn.name=\u30c7\u30fc\u30bf\u3092\u4ed6\u306e\u5217\u306b\u30b3\u30d4\u30fc +FillColumnWithValue.name=\u5217\u3092\u5024\u3067\u57cb\u3081\u308b +FillColumnWithValue.inputDialog.text=\u884c\u3092\u57cb\u3081\u308b\u5024\u3092\u9078\u629e: +DuplicateColumn.name=\u5217\u3092\u8907\u5199 + +ColumnValuesFrequency.name=\u5024\u306e\u983b\u5ea6\u3092\u8a08\u7b97 +ColumnValuesFrequency.description=\u305d\u308c\u305e\u308c\u306e\u5024\u306e\u51fa\u73fe\u306e\u983b\u5ea6\u3092\u8a08\u7b97 +ColumnValuesFrequency.report.header=

    \u5024\u983b\u5ea6\u30ec\u30dd\u30fc\u30c8''{0}''

    +ColumnValuesFrequency.report.piechart.title=\u5024\u983b\u5ea6\u5186\u30b0\u30e9\u30d5 +ColumnValuesFrequency.report.piechart.not-shown=100\u4ee5\u4e0a\u306e\u5024\u304c\u3042\u308b\u305f\u3081\u5186\u30b0\u30e9\u30d5\u306f\u8868\u793a\u3055\u308c\u307e\u305b\u3093\u3002 +NumberColumnStatisticsReport.name=\u7d71\u8a08\u91cf\u306e\u8a08\u7b97 +NumberColumnStatisticsReport.description=\u6570\u5024\u307e\u305f\u306f\u6570\u5024\u30ea\u30b9\u30c8\u306e\u5217\u306b\u95a2\u3059\u308b\u7d71\u8a08\u91cf\u3092\u8a08\u7b97 + +CreateBooleanMatchesColumn.name=\u6b63\u898f\u8868\u73fe\u306e\u30de\u30c3\u30c1\u304b\u3089\u30d6\u30fc\u30eb\u5024\u306e\u5217\u3092\u4f5c\u6210 +CreateBooleanMatchesColumn.description=\u9078\u629e\u3055\u308c\u305f\u5024\u306e\u5404\u3005\u306f\u6b63\u898f\u8868\u73fe\u306b\u4e00\u81f4\u3059\u308c\u3070\u3001\u793a\u3059\u5024\u3092\u6301\u3064\u30d6\u30fc\u30eb\u5217\u3092\u4f5c\u6210 +CreateFoundGroupsListColumn.name=\u6b63\u898f\u8868\u73fe\u306b\u4e00\u81f4\u3059\u308b\u30b0\u30eb\u30fc\u30d7\u306e\u30ea\u30b9\u30c8\u3067\u5217\u3092\u4f5c\u6210 +CreateFoundGroupsListColumn.description=\u5024\u304c\u6b63\u898f\u8868\u73fe\u306e\u4e00\u81f4\u3059\u308b\u30b0\u30eb\u30fc\u30d7\u306e\u7d50\u679c\u3055\u308c\u3066\u3044\u308b\u6587\u5b57\u5217\u30ea\u30b9\u30c8\u306e\u5217\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002 + +NegateBooleanColumn.name=\u30d6\u30fc\u30eb\u5024\u3092\u62d2\u5426 + +# ConvertColumnToDynamic.name=Convert column to dynamic +# ConvertColumnToDynamic.description=Convert an existing column to a dynamic column and optionally replace it diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_ko.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_ko.properties new file mode 100644 index 0000000000..432ca35a94 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_ko.properties @@ -0,0 +1,24 @@ + + +ColumnValuesFrequency.description=\uAC12 \uCD9C\uD604 \uBE48\uB3C4\uB97C \uACC4\uC0B0\uD569\uB2C8\uB2E4. +DeleteColumn.name=\uCEEC\uB7FC \uC0AD\uC81C\uD558\uAE30 +CopyDataToOtherColumn.name=\uB2E4\uB978 \uCEEC\uB7FC\uC5D0 \uB370\uC774\uD130 \uBCF5\uC0AC\uD558\uAE30 +FillColumnWithValue.name=\uCEEC\uB7FC\uC744 \uAC12\uC73C\uB85C \uCC44\uC6B0\uAE30 +ClearColumnData.confirmation.message=''{0}''\uC744 \uC9C0\uC6B8\uAE4C\uC694? +ClearColumnData.name=\uCEEC\uB7FC \uC9C0\uC6B0\uAE30 +ColumnValuesFrequency.name=\uAC12 \uBE48\uB3C4 \uACC4\uC0B0\uD558\uAE30 +NumberColumnStatisticsReport.name=\uD1B5\uACC4\uCE58 \uACC4\uC0B0\uD558\uAE30 +CreateBooleanMatchesColumn.name=\uC815\uADDC\uC2DD \uACB0\uACFC\uB85C bool\uD615 \uCEEC\uB7FC \uC0DD\uC131\uD558\uAE30 +NegateBooleanColumn.name=bool \uAC12\uC744 \uB4A4\uC9D1\uAE30 +ConvertColumnToDynamic.name=\uB3D9\uC801 \uCEEC\uB7FC\uC73C\uB85C \uBCC0\uD658\uD558\uAE30 +DeleteColumn.confirmation.message=\uC815\uB9D0\uB85C {0}\uC744 \uC0AD\uC81C\uD560\uAE4C\uC694? +FillColumnWithValue.inputDialog.text=\uBAA8\uB4E0 \uD589\uC5D0 \uCC44\uC6B8 \uAC12 \uC120\uD0DD\uD558\uAE30: +DuplicateColumn.name=\uCEEC\uB7FC \uBCF5\uC81C\uD558\uAE30 +ColumnValuesFrequency.report.header=

    ''{0}'' \uAC12 \uBE48\uB3C4 \uBCF4\uACE0

    +ColumnValuesFrequency.report.piechart.title=\uD30C\uC774 \uCC28\uD2B8 \uAC12 \uBE48\uB3C4 +ColumnValuesFrequency.report.piechart.not-shown=100 \uAC1C \uC774\uC0C1\uC758 \uAC12\uC774 \uC788\uC74C. \uD30C\uC774 \uCC28\uD2B8 \uD45C\uC2DC \uC548 \uB428. +NumberColumnStatisticsReport.description=\uC22B\uC790\uB098 \uC22B\uC790 \uB9AC\uC2A4\uD2B8 \uCEEC\uB7FC\uC5D0 \uB300\uD55C \uD1B5\uACC4\uCE58\uB97C \uACC4\uC0B0\uD569\uB2C8\uB2E4. +CreateBooleanMatchesColumn.description=\uC120\uD0DD\uB41C \uAC12\uB4E4\uC774 \uC815\uADDC\uC2DD \uD45C\uD604\uC5D0 \uB9DE\uB294\uC9C0 \uB098\uD0C0\uB0B4\uB294 \uAC12\uC73C\uB85C bool\uD615 \uCEEC\uB7FC\uC744 \uC0DD\uC131\uD569\uB2C8\uB2E4. +CreateFoundGroupsListColumn.name=\uC815\uADDC\uC2DD \uB9E4\uCE58 \uADF8\uB8F9 \uB9AC\uC2A4\uD2B8\uB85C \uCEEC\uB7FC \uC0DD\uC131\uD558\uAE30 +ConvertColumnToDynamic.description=\uAE30\uC874 \uCEEC\uB7FC\uC744 \uB3D9\uC801 \uCEEC\uB7FC\uC73C\uB85C \uBCC0\uD658\uD558\uACE0 \uC120\uD0DD\uC801\uC73C\uB85C \uB300\uCCB4\uD569\uB2C8\uB2E4 +CreateFoundGroupsListColumn.description=\uC815\uADDC\uC2DD \uD45C\uD604\uC758 \uB9E4\uCE6D \uADF8\uB8F9 \uACB0\uACFC\uAC00 \uB418\uB294 \uC2A4\uD2B8\uB9C1 \uB9AC\uC2A4\uD2B8 \uCEEC\uB7FC\uC744 \uC0DD\uC131\uD569\uB2C8\uB2E4. diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_nl.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_nl.properties new file mode 100644 index 0000000000..a5b0fa7cda --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_nl.properties @@ -0,0 +1,22 @@ +DeleteColumn.name=Kolom verwijderen +DeleteColumn.confirmation.message=Confirm to delete ''{0}''? +ClearColumnData.name=Kolom wissen +ClearColumnData.confirmation.message=Confirm to clear ''{0}''? +CopyDataToOtherColumn.name=Gegevens naar andere kolom kopiλren +FillColumnWithValue.name=Kolom met een waarde vullen +FillColumnWithValue.inputDialog.text=Choose a value to fill all rows: +DuplicateColumn.name=Kolom dupliceren +ColumnValuesFrequency.name=Calculate values frequency +ColumnValuesFrequency.description=Calculate the frequency of each value appearance. +ColumnValuesFrequency.report.header=

    Values frequencies report ''{0}''

    +ColumnValuesFrequency.report.piechart.title=Values frequencies pie chart +ColumnValuesFrequency.report.piechart.not-shown=There are more than 100 different values, pie chart is not shown. +NumberColumnStatisticsReport.name=Statistieken berekenen +NumberColumnStatisticsReport.description=Calculate statistics on a number or number list column. +CreateBooleanMatchesColumn.name=Create a boolean column from regex match +CreateBooleanMatchesColumn.description=Create a boolean column with values indicating if each of the selected values matches the regular expression. +CreateFoundGroupsListColumn.name=Create column with list of regex matching groups +CreateFoundGroupsListColumn.description=Create a string list column in which values are the matching groups results of the regular expression. +NegateBooleanColumn.name=Negate boolean values +ConvertColumnToDynamic.name=Convert column to dynamic +ConvertColumnToDynamic.description=Convert an existing column to a dynamic column and optionally replace it diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_pt.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_pt.properties new file mode 100644 index 0000000000..5fcc97f8b1 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_pt.properties @@ -0,0 +1,22 @@ +ClearColumnData.name=Limpar dados da coluna +ClearColumnData.confirmation.message=Confirma a limpeza dos dados da coluna ''{0}''? +ColumnValuesFrequency.description=Calcula a frequ\u00EAncia de ocorr\u00EAncia de cada valor de uma coluna e exibe um relat\u00F3rio. +CreateBooleanMatchesColumn.name=Criar coluna booleana a partir de uma express\u00E3o regular +CreateFoundGroupsListColumn.name=Criar coluna com a lista de grupos que atendem a uma express\u00E3o regular +NegateBooleanColumn.name=Negar coluna booleana +ConvertColumnToDynamic.name=Converter a coluna para o tipo din\u00E2mico +NumberColumnStatisticsReport.description=Calcula estat\u00EDsticas de uma coluna num\u00E9rica ou de lista de n\u00FAmeros e mostra um relat\u00F3rio. +CreateBooleanMatchesColumn.description=Cria uma coluna booleana com valores que indicam se cada valor da coluna selecionada corresponde \u00E0 express\u00E3o regular fornecida. +CreateFoundGroupsListColumn.description=Cria uma coluna de tipo lista de cadeias com valores preenchidos com a lista de grupos que correspondem \u00E0 express\u00E3o regular fornecida. +DeleteColumn.name=Apagar coluna +DeleteColumn.confirmation.message=Confirma apagar ''{0}''? +CopyDataToOtherColumn.name=Copiar dados para outra coluna +FillColumnWithValue.name=Preencher coluna com um valor +FillColumnWithValue.inputDialog.text=Escolha um valor para preencher todas as linhas: +DuplicateColumn.name=Duplicar coluna +ColumnValuesFrequency.name=Calcular a frequ\u00EAncia de valores de coluna +ColumnValuesFrequency.report.header=

    Relat\u00F3rio de frequ\u00EAncias de valores para a coluna ''{0}''

    +ColumnValuesFrequency.report.piechart.title=Gr\u00E1fico de pizza de frequ\u00EAncias de valores +ColumnValuesFrequency.report.piechart.not-shown=Existem mais que 100 valores diferentes, o gr\u00E1fico de pizza n\u00E3o ser\u00E1 exibido. +NumberColumnStatisticsReport.name=Calcular estat\u00EDsticas +ConvertColumnToDynamic.description=Converter uma coluna existente para uma coluna din\u00E2mica e opcionalmente substitu\u00ED-la diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_pt_BR.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_pt_BR.properties index 16e5a08a7a..a6b5ff58cd 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_pt_BR.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_pt_BR.properties @@ -1,51 +1,26 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# C\u00e9lio CJr , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-12-31 01\:16+0000\nLast-Translator\: Eduardo Ramos \nLanguage-Team\: Portuguese (Brazil) (http\://www.transifex.com/projects/p/gephi/language/pt_BR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt_BR\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -DeleteColumn.name=Excluir coluna - -DeleteColumn.confirmation.message=Confirma a exclus\u00e3o de ''{0}''? - -ClearColumnData.name=Limpar dados da coluna - -ClearColumnData.confirmation.message=Confirma a limpeza dos dados da coluna ''{0}''? - -CopyDataToOtherColumn.name=Copiar dados para outra coluna - -FillColumnWithValue.name=Preencher coluna com um valor - -FillColumnWithValue.inputDialog.text=Escolha um valor para preencher todas as linhas\: - -DuplicateColumn.name=Duplicar coluna - -ColumnValuesFrequency.name=Calcular a frequ\u00eancia de valores de coluna - -ColumnValuesFrequency.description=Calcula a frequ\u00eancia de ocorr\u00eancia de cada valor de uma coluna e exibe um relat\u00f3rio - -ColumnValuesFrequency.report.header=

    Relat\u00f3rio de frequ\u00eancias de valores para a coluna ''{0}''

    - -ColumnValuesFrequency.report.piechart.title=Gr\u00e1fico de pizza de frequ\u00eancias de valores - -ColumnValuesFrequency.report.piechart.not-shown=Existem mais de 100 diferentes valores, o gr\u00e1fico de pizza n\u00e3o ser\u00e1 exibido. - -NumberColumnStatisticsReport.name=Calcular estat\u00edsticas - -NumberColumnStatisticsReport.description=Calcula estat\u00edsticas de una coluna num\u00e9rica ou de lista de n\u00fameros e mostra um relat\u00f3rio - -CreateBooleanMatchesColumn.name=Criar coluna booleana a partir de uma express\u00e3o regular - -CreateBooleanMatchesColumn.description=Cria uma nova coluna booleana com valores que indicam se cada valor da coluna selecionada atende \u00e0 express\u00e3o regular fornecida - -CreateFoundGroupsListColumn.name=Criar coluna com a lista de grupos que atendem a uma express\u00e3o regular - -CreateFoundGroupsListColumn.description=Cria uma nova columna de tipo lista de strings com valores preenchidos com a lista de grupos que atendem \u00e0 express\u00e3o regular fornecida - -NegateBooleanColumn.name=Negar coluna booleana - -!ConvertColumnToDynamic.name= - -!ConvertColumnToDynamic.description= +DeleteColumn.name=Excluir coluna +DeleteColumn.confirmation.message=Confirma a exclusγo de ''{0}''? +ClearColumnData.name=Limpar dados da coluna +ClearColumnData.confirmation.message=Confirma a limpeza dos dados da coluna ''{0}''? +CopyDataToOtherColumn.name=Copiar dados para outra coluna +FillColumnWithValue.name=Preencher coluna com um valor +FillColumnWithValue.inputDialog.text=Escolha um valor para preencher todas as linhas: +DuplicateColumn.name=Duplicar coluna + +ColumnValuesFrequency.name=Calcular a frequκncia de valores de coluna +ColumnValuesFrequency.description=Calcula a frequκncia de ocorrκncia de cada valor de uma coluna e exibe um relatσrio +ColumnValuesFrequency.report.header=

    Relatσrio de frequκncias de valores para a coluna ''{0}''

    +ColumnValuesFrequency.report.piechart.title=Grαfico de pizza de frequκncias de valores +ColumnValuesFrequency.report.piechart.not-shown=Existem mais de 100 diferentes valores, o grαfico de pizza nγo serα exibido. +NumberColumnStatisticsReport.name=Calcular estatνsticas +NumberColumnStatisticsReport.description=Calcula estatνsticas de una coluna numιrica ou de lista de nϊmeros e mostra um relatσrio + +CreateBooleanMatchesColumn.name=Criar coluna booleana a partir de uma expressγo regular +CreateBooleanMatchesColumn.description=Cria uma nova coluna booleana com valores que indicam se cada valor da coluna selecionada atende ΰ expressγo regular fornecida +CreateFoundGroupsListColumn.name=Criar coluna com a lista de grupos que atendem a uma expressγo regular +CreateFoundGroupsListColumn.description=Cria uma nova columna de tipo lista de strings com valores preenchidos com a lista de grupos que atendem ΰ expressγo regular fornecida + +NegateBooleanColumn.name=Negar coluna booleana + +ConvertColumnToDynamic.name=Converter a coluna para o tipo dinβmico +ConvertColumnToDynamic.description=Converter uma coluna existente para uma coluna dinβmica e opcionalmente substituν-la diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_ro.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_ro.properties new file mode 100644 index 0000000000..337bb758df --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_ro.properties @@ -0,0 +1,24 @@ + + +DeleteColumn.confirmation.message=Confirm\u0103 \u0219tergerea ''{0}''? +ClearColumnData.name=Gole\u0219te coloana +CopyDataToOtherColumn.name=Copiaz\u0103 datele \u00EEn alt\u0103 coloan\u0103 +FillColumnWithValue.name=Umple coloana cu o valoare +DuplicateColumn.name=Duplic\u0103 o coloan\u0103 +ColumnValuesFrequency.name=Calculeaz\u0103 frecven\u021Ba valorilor +ColumnValuesFrequency.description=Calculeaz\u0103 frecven\u021Ba de apari\u021Bie a fiec\u0103rei valori. +ColumnValuesFrequency.report.header=

    Raport frecven\u021Be valori ''{0}''

    +ColumnValuesFrequency.report.piechart.title=Diagram\u0103 radial\u0103 frecven\u021Be valori +DeleteColumn.name=\u0218terge coloana +FillColumnWithValue.inputDialog.text=Alege o valoare cu care vor fi umplute toate r\u00E2ndurile: +NumberColumnStatisticsReport.name=Calculeaz\u0103 statistici +CreateBooleanMatchesColumn.name=Creaz\u0103 o coloan\u0103 de valori booleene dintr-o expresie regulat\u0103 +CreateBooleanMatchesColumn.description=Creaz\u0103 o coloan\u0103 de valori booleene care indic\u0103 dac\u0103 valorile selectate se potrivesc cu expresia regulat\u0103. +CreateFoundGroupsListColumn.name=Creaz\u0103 o coloan\u0103 cu liste de grupuri de potrivire regex +NegateBooleanColumn.name=Neag\u0103 valorile booleene +ConvertColumnToDynamic.name=Converte\u0219te coloana \u00EEntr-una dinamic\u0103 +ConvertColumnToDynamic.description=Converte\u0219te o coloan\u0103 existent\u0103 \u00EEntr-o coloan\u0103 dinamic\u0103 \u0219i, op\u021Bional, o \u00EEnlocuie\u0219te +ClearColumnData.confirmation.message=Confirm\u0103 golirea ''{0}''? +ColumnValuesFrequency.report.piechart.not-shown=Exist\u0103 mai mult de 100 valori diferite, diagrama radial\u0103 nu este afi\u0219at\u0103. +NumberColumnStatisticsReport.description=Calculeaz\u0103 statistici pe o coloan\u0103 de numere sau liste de numere. +CreateFoundGroupsListColumn.description=Creaz\u0103 o coloan\u0103 de liste de \u0219iruri de caractere \u00EEn care valorile sunt grupurile de potrivire g\u0103site de expresia regulat\u0103. diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_ru.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_ru.properties index d457f5885f..6705ccf9a0 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_ru.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_ru.properties @@ -1,51 +1,26 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-12-31 01\:16+0000\nLast-Translator\: Eduardo Ramos \nLanguage-Team\: Russian (http\://www.transifex.com/projects/p/gephi/language/ru/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ru\nPlural-Forms\: nplurals\=3; plural\=(n%10\=\=1 && n%100\!\=11 ? 0 \: n%10>\=2 && n%10<\=4 && (n%100<10 || n%100>\=20) ? 1 \: 2);\n - -DeleteColumn.name=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0435\u0446 - -DeleteColumn.confirmation.message=\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0435\u0446 ''{0}''? - -ClearColumnData.name=\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0441\u0442\u043e\u043b\u0431\u0446\u0435 - -ClearColumnData.confirmation.message=\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0441\u0442\u043e\u043b\u0431\u0446\u0435 ''{0}''? - -CopyDataToOtherColumn.name=\u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 - -FillColumnWithValue.name=\u0417\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c - -FillColumnWithValue.inputDialog.text=\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0432\u0441\u0435 \u044f\u0447\u0435\u0439\u043a\u0438 \u0432 \u0441\u0442\u043e\u043b\u0431\u0446\u0435 - -DuplicateColumn.name=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u043e\u043f\u0438\u044e \u043a\u043e\u043b\u043e\u043d\u043a\u0438 - -ColumnValuesFrequency.name=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u0441\u0442\u043e\u043b\u0431\u0446\u0435 - -ColumnValuesFrequency.description=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0441\u0442\u043e\u043b\u0431\u0446\u0435 \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u043e\u0442\u0447\u0451\u0442 - -ColumnValuesFrequency.report.header=

    \u041e\u0442\u0447\u0451\u0442 \u043f\u043e \u0447\u0430\u0441\u0442\u043e\u0442\u0430\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u0441\u0442\u043e\u043b\u0431\u0446\u0435 ''{0}''

    - -ColumnValuesFrequency.report.piechart.title=\u041a\u0440\u0443\u0433\u043e\u0432\u0430\u044f \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430 \u0447\u0430\u0441\u0442\u043e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 - -ColumnValuesFrequency.report.piechart.not-shown=\u0422.\u043a. \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u043e \u0431\u043e\u043b\u0435\u0435 100 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u043a\u0440\u0443\u0433\u043e\u0432\u0430\u044f \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0435 \u0431\u044b\u043b\u0430 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0430. - -NumberColumnStatisticsReport.name=\u0420\u0430\u0441\u0447\u0451\u0442 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u043f\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0443 \u0441 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 - -NumberColumnStatisticsReport.description=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0443 \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u043e\u0442\u0447\u0451\u0442 - -CreateBooleanMatchesColumn.name=\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u0441 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f - -CreateBooleanMatchesColumn.description=\u0421\u043e\u0437\u0434\u0430\u0435\u0442 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0441 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438, \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044f, \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u044e\u0442 \u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0435 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u043c\u0443 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044e - -CreateFoundGroupsListColumn.name=\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u043e \u043c\u0430\u0441\u043a\u0435, \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c - -CreateFoundGroupsListColumn.description=\u0421\u043e\u0437\u0434\u0430\u0435\u0442 \u043d\u043e\u0432\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0433\u0440\u0443\u043f\u043f, \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0445 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c - -NegateBooleanColumn.name=\u0418\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u0441 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 - -!ConvertColumnToDynamic.name= - -!ConvertColumnToDynamic.description= +DeleteColumn.name=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0435\u0446 +DeleteColumn.confirmation.message=\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0435\u0446 ''{0}''? +ClearColumnData.name=\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0441\u0442\u043e\u043b\u0431\u0446\u0435 +ClearColumnData.confirmation.message=\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0441\u0442\u043e\u043b\u0431\u0446\u0435 ''{0}''? +CopyDataToOtherColumn.name=\u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 +FillColumnWithValue.name=\u0417\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c +FillColumnWithValue.inputDialog.text=\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0432\u0441\u0435 \u044f\u0447\u0435\u0439\u043a\u0438 \u0432 \u0441\u0442\u043e\u043b\u0431\u0446\u0435 +DuplicateColumn.name=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u043e\u043f\u0438\u044e \u043a\u043e\u043b\u043e\u043d\u043a\u0438 + +ColumnValuesFrequency.name=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u0441\u0442\u043e\u043b\u0431\u0446\u0435 +ColumnValuesFrequency.description=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0441\u0442\u043e\u043b\u0431\u0446\u0435 \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u043e\u0442\u0447\u0451\u0442 +ColumnValuesFrequency.report.header=

    \u041e\u0442\u0447\u0451\u0442 \u043f\u043e \u0447\u0430\u0441\u0442\u043e\u0442\u0430\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u0441\u0442\u043e\u043b\u0431\u0446\u0435 ''{0}''

    +ColumnValuesFrequency.report.piechart.title=\u041a\u0440\u0443\u0433\u043e\u0432\u0430\u044f \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430 \u0447\u0430\u0441\u0442\u043e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 +ColumnValuesFrequency.report.piechart.not-shown=\u0422.\u043a. \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u043e \u0431\u043e\u043b\u0435\u0435 100 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u043a\u0440\u0443\u0433\u043e\u0432\u0430\u044f \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0435 \u0431\u044b\u043b\u0430 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0430. +NumberColumnStatisticsReport.name=\u0420\u0430\u0441\u0447\u0451\u0442 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u043f\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0443 \u0441 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 +NumberColumnStatisticsReport.description=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0443 \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u043e\u0442\u0447\u0451\u0442 + +CreateBooleanMatchesColumn.name=\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u0441 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f +CreateBooleanMatchesColumn.description=\u0421\u043e\u0437\u0434\u0430\u0435\u0442 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0441 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438, \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044f, \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u044e\u0442 \u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0435 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u043c\u0443 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044e +CreateFoundGroupsListColumn.name=\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u043e \u043c\u0430\u0441\u043a\u0435, \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c +CreateFoundGroupsListColumn.description=\u0421\u043e\u0437\u0434\u0430\u0435\u0442 \u043d\u043e\u0432\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0433\u0440\u0443\u043f\u043f, \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0445 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c + +NegateBooleanColumn.name=\u0418\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u0441 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 + +# ConvertColumnToDynamic.name=Convert column to dynamic +# ConvertColumnToDynamic.description=Convert an existing column to a dynamic column and optionally replace it diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_th.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_th.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_th.properties @@ -0,0 +1 @@ + diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_tr.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_tr.properties new file mode 100644 index 0000000000..86e34ba963 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_tr.properties @@ -0,0 +1,22 @@ +DeleteColumn.name=Delete column +DeleteColumn.confirmation.message=Confirm to delete ''{0}''? +ClearColumnData.name=Clear column +ClearColumnData.confirmation.message=Confirm to clear ''{0}''? +CopyDataToOtherColumn.name=Copy data to other column +FillColumnWithValue.name=Fill column with a value +FillColumnWithValue.inputDialog.text=Choose a value to fill all rows: +DuplicateColumn.name=Duplicate column +ColumnValuesFrequency.name=Calculate values frequency +ColumnValuesFrequency.description=Calculate the frequency of each value appearance. +ColumnValuesFrequency.report.header=

    Values frequencies report ''{0}''

    +ColumnValuesFrequency.report.piechart.title=Values frequencies pie chart +ColumnValuesFrequency.report.piechart.not-shown=There are more than 100 different values, pie chart is not shown. +NumberColumnStatisticsReport.name=Calculate statistics +NumberColumnStatisticsReport.description=Calculate statistics on a number or number list column. +CreateBooleanMatchesColumn.name=Create a boolean column from regex match +CreateBooleanMatchesColumn.description=Create a boolean column with values indicating if each of the selected values matches the regular expression. +CreateFoundGroupsListColumn.name=Create column with list of regex matching groups +CreateFoundGroupsListColumn.description=Create a string list column in which values are the matching groups results of the regular expression. +NegateBooleanColumn.name=Negate boolean values +ConvertColumnToDynamic.name=Convert column to dynamic +ConvertColumnToDynamic.description=Convert an existing column to a dynamic column and optionally replace it diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_uk.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_uk.properties new file mode 100644 index 0000000000..9092c1752a --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_uk.properties @@ -0,0 +1,22 @@ +ClearColumnData.confirmation.message=\u041F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0438, \u0449\u043E\u0431 \u043E\u0447\u0438\u0441\u0442\u0438\u0442\u0438 ''{0}''? +DeleteColumn.name=\u0412\u0438\u0434\u0430\u043B\u0438\u0442\u0438 \u0441\u0442\u043E\u0432\u043F\u0435\u0446\u044C +CopyDataToOtherColumn.name=\u0421\u043A\u043E\u043F\u0456\u044E\u0439\u0442\u0435 \u0434\u0430\u043D\u0456 \u0432 \u0456\u043D\u0448\u0438\u0439 \u0441\u0442\u043E\u0432\u043F\u0435\u0446\u044C +FillColumnWithValue.name=\u0417\u0430\u043F\u043E\u0432\u043D\u0438\u0442\u0438 \u0441\u0442\u043E\u0432\u043F\u0435\u0446\u044C \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F\u043C +NumberColumnStatisticsReport.name=\u041E\u0431\u0447\u0438\u0441\u043B\u0438\u0442\u0438 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0443 +FillColumnWithValue.inputDialog.text=\u0412\u0438\u0431\u0435\u0440\u0456\u0442\u044C \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0434\u043B\u044F \u0437\u0430\u043F\u043E\u0432\u043D\u0435\u043D\u043D\u044F \u0432\u0441\u0456\u0445 \u0440\u044F\u0434\u043A\u0456\u0432: +DuplicateColumn.name=\u0414\u0443\u0431\u043B\u044C\u043E\u0432\u0430\u043D\u0438\u0439 \u0441\u0442\u043E\u0432\u043F\u0435\u0446\u044C +ColumnValuesFrequency.name=\u041E\u0431\u0447\u0438\u0441\u043B\u0438\u0442\u0438 \u0447\u0430\u0441\u0442\u043E\u0442\u0443 \u0437\u043D\u0430\u0447\u0435\u043D\u044C +ColumnValuesFrequency.description=\u041E\u0431\u0447\u0438\u0441\u043B\u0456\u0442\u044C \u0447\u0430\u0441\u0442\u043E\u0442\u0443 \u043F\u043E\u044F\u0432\u0438 \u043A\u043E\u0436\u043D\u043E\u0433\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F. +ColumnValuesFrequency.report.header=

    \u0417\u0432\u0456\u0442 \u043F\u0440\u043E \u0447\u0430\u0441\u0442\u043E\u0442\u0438 \u0437\u043D\u0430\u0447\u0435\u043D\u044C ''{0}''

    +ColumnValuesFrequency.report.piechart.title=\u041A\u0440\u0443\u0433\u043E\u0432\u0430 \u0434\u0456\u0430\u0433\u0440\u0430\u043C\u0430 \u0447\u0430\u0441\u0442\u043E\u0442 \u0437\u043D\u0430\u0447\u0435\u043D\u044C +ColumnValuesFrequency.report.piechart.not-shown=\u0406\u0441\u043D\u0443\u0454 \u043F\u043E\u043D\u0430\u0434 100 \u0440\u0456\u0437\u043D\u0438\u0445 \u0437\u043D\u0430\u0447\u0435\u043D\u044C, \u043A\u0440\u0443\u0433\u043E\u0432\u0430 \u0434\u0456\u0430\u0433\u0440\u0430\u043C\u0430 \u043D\u0435 \u043F\u043E\u043A\u0430\u0437\u0430\u043D\u0430. +NumberColumnStatisticsReport.description=\u041E\u0431\u0447\u0438\u0441\u043B\u0438\u0442\u0438 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0443 \u0434\u043B\u044F \u0447\u0438\u0441\u043B\u0430 \u0430\u0431\u043E \u0441\u0442\u043E\u0432\u043F\u0446\u044F \u0441\u043F\u0438\u0441\u043A\u0443 \u0447\u0438\u0441\u0435\u043B. +CreateBooleanMatchesColumn.name=\u0421\u0442\u0432\u043E\u0440\u0456\u0442\u044C \u043B\u043E\u0433\u0456\u0447\u043D\u0438\u0439 \u0441\u0442\u043E\u0432\u043F\u0435\u0446\u044C \u0456\u0437 \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u043D\u043E\u0441\u0442\u0456 \u0440\u0435\u0433\u0443\u043B\u044F\u0440\u043D\u043E\u0433\u043E \u0432\u0438\u0440\u0430\u0437\u0443 +CreateBooleanMatchesColumn.description=\u0421\u0442\u0432\u043E\u0440\u0456\u0442\u044C \u043B\u043E\u0433\u0456\u0447\u043D\u0438\u0439 \u0441\u0442\u043E\u0432\u043F\u0435\u0446\u044C \u0456\u0437 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F\u043C\u0438, \u044F\u043A\u0456 \u0432\u043A\u0430\u0437\u0443\u044E\u0442\u044C, \u0447\u0438 \u043A\u043E\u0436\u043D\u0435 \u0437 \u0432\u0438\u0431\u0440\u0430\u043D\u0438\u0445 \u0437\u043D\u0430\u0447\u0435\u043D\u044C \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u0430\u0454 \u0440\u0435\u0433\u0443\u043B\u044F\u0440\u043D\u043E\u043C\u0443 \u0432\u0438\u0440\u0430\u0437\u0443. +CreateFoundGroupsListColumn.name=\u0421\u0442\u0432\u043E\u0440\u0456\u0442\u044C \u0441\u0442\u043E\u0432\u043F\u0435\u0446\u044C \u0437\u0456 \u0441\u043F\u0438\u0441\u043A\u043E\u043C \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u043D\u0438\u0445 \u0433\u0440\u0443\u043F \u0440\u0435\u0433\u0443\u043B\u044F\u0440\u043D\u0438\u0445 \u0432\u0438\u0440\u0430\u0437\u0456\u0432 +CreateFoundGroupsListColumn.description=\u0421\u0442\u0432\u043E\u0440\u0456\u0442\u044C \u0441\u0442\u043E\u0432\u043F\u0435\u0446\u044C \u0441\u043F\u0438\u0441\u043A\u0443 \u0440\u044F\u0434\u043A\u0456\u0432, \u0443 \u044F\u043A\u043E\u043C\u0443 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0454 \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u043D\u0438\u043C\u0438 \u0433\u0440\u0443\u043F\u0430\u043C\u0438 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0456\u0432 \u0440\u0435\u0433\u0443\u043B\u044F\u0440\u043D\u043E\u0433\u043E \u0432\u0438\u0440\u0430\u0437\u0443. +NegateBooleanColumn.name=\u0412\u0456\u0434\u043C\u0456\u043D\u0438\u0442\u0438 \u043B\u043E\u0433\u0456\u0447\u043D\u0456 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F +ConvertColumnToDynamic.name=\u041F\u0435\u0440\u0435\u0442\u0432\u043E\u0440\u0438\u0442\u0438 \u0441\u0442\u043E\u0432\u043F\u0435\u0446\u044C \u043D\u0430 \u0434\u0438\u043D\u0430\u043C\u0456\u0447\u043D\u0438\u0439 +ConvertColumnToDynamic.description=\u041F\u0435\u0440\u0435\u0442\u0432\u043E\u0440\u0456\u0442\u044C \u043D\u0430\u044F\u0432\u043D\u0438\u0439 \u0441\u0442\u043E\u0432\u043F\u0435\u0446\u044C \u043D\u0430 \u0434\u0438\u043D\u0430\u043C\u0456\u0447\u043D\u0438\u0439 \u0456, \u0437\u0430 \u0431\u0430\u0436\u0430\u043D\u043D\u044F\u043C, \u0437\u0430\u043C\u0456\u043D\u0456\u0442\u044C \u0439\u043E\u0433\u043E +DeleteColumn.confirmation.message=\u041F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0438 \u0432\u0438\u0434\u0430\u043B\u0435\u043D\u043D\u044F ''{0}''? +ClearColumnData.name=\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u0438 \u0441\u0442\u043E\u0432\u043F\u0435\u0446\u044C diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_zh_CN.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_zh_CN.properties index d9f212bfb1..0278b191a8 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_zh_CN.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_zh_CN.properties @@ -1,50 +1,22 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-12-31 01\:16+0000\nLast-Translator\: Eduardo Ramos \nLanguage-Team\: Chinese (China) (http\://www.transifex.com/projects/p/gephi/language/zh_CN/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: zh_CN\nPlural-Forms\: nplurals\=1; plural\=0;\n - DeleteColumn.name=\u5220\u9664\u5217 - DeleteColumn.confirmation.message=\u786e\u8ba4\u5220\u9664\u201c{0}\u201d\uff1f - ClearColumnData.name=\u6e05\u9664\u5217 - ClearColumnData.confirmation.message=\u786e\u8ba4\u6e05\u9664\u201c{0}\u201d\uff1f - CopyDataToOtherColumn.name=\u590d\u5236\u6570\u636e\u5230\u5176\u5b83\u5217 - FillColumnWithValue.name=\u586b\u5199\u6570\u503c\u5230\u5217 - FillColumnWithValue.inputDialog.text=\u9009\u62e9\u586b\u5199\u5230\u6240\u6709\u884c\u7684\u6570\u503c\uff1a - DuplicateColumn.name=\u590d\u5236\u5217\u6570\u636e - ColumnValuesFrequency.name=\u8ba1\u7b97\u6570\u503c\u9891\u7387 - ColumnValuesFrequency.description=\u8ba1\u7b97\u6bcf\u4e2a\u6570\u503c\u51fa\u73b0\u7684\u9891\u7387\u3002 - ColumnValuesFrequency.report.header=

    \u6570\u503c\u9891\u7387\u62a5\u544a"{0}"

    - ColumnValuesFrequency.report.piechart.title=\u6570\u503c\u9891\u7387\u5706\u5f62\u5206\u683c\u7edf\u8ba1\u56fe\u8868 - -ColumnValuesFrequency.report.piechart.not-shown=\u82e5\u5b58\u5728\u5927\u4e8e100\u4e2a\u4e0d\u540c\u7684\u6570\u503c\uff0c\u4e0d\u663e\u793a\u5706\u5f62\u5206\u683c\u7edf\u8ba1\u56fe\u8868 - +ColumnValuesFrequency.report.piechart.not-shown=\u82E5\u5B58\u5728\u8D85\u8FC7 100 \u4E2A\u4E0D\u540C\u7684\u6570\u503C\uFF0C\u5C06\u4E0D\u663E\u793A\u997C\u72B6\u56FE\u3002 NumberColumnStatisticsReport.name=\u8ba1\u7b97\u7edf\u8ba1\u5c5e\u6027 - -NumberColumnStatisticsReport.description=\u5728\u4e00\u4e2a\u6570\u6216\u8005\u8ba1\u6570\u5217\u8868\u8ba1\u7b97\u7edf\u8ba1\u5c5e\u6027 - +NumberColumnStatisticsReport.description=\u8BA1\u7B97\u4E00\u4E2A\u6570\u6216\u6570\u5B57\u5217\u7684\u7EDF\u8BA1\u6570\u636E\u3002 CreateBooleanMatchesColumn.name=\u4ece\u6b63\u5219\u8868\u8fbe\u5f0f\u4e2d\u65b0\u5efa\u4e00\u4e2a\u5e03\u5c14\u5217 - CreateBooleanMatchesColumn.description=\u65b0\u5efa\u4e00\u4e2a\u5e03\u5c14\u5217\uff0c\u91cc\u9762\u7684\u6570\u503c\u8868\u660e\u6bcf\u4e2a\u9009\u62e9\u7684\u6570\u503c\u662f\u5426\u4e0e\u6b63\u5219\u8868\u8fbe\u5f0f\u76f8\u5339\u914d\u3002 - CreateFoundGroupsListColumn.name=\u65b0\u5efa\u4e00\u5217\uff08\u5217\u8868\u6216\u8005\u6b63\u5219\u8868\u8fbe\u5f0f\u5339\u914d\u7ec4\u5408\uff09 - CreateFoundGroupsListColumn.description=\u65b0\u5efa\u5b57\u7b26\u4e32\u5217\u8868\uff0c\u91cc\u9762\u7684\u6570\u503c\u586b\u5199\u6b63\u5219\u8868\u8fbe\u5f0f\u7684\u5339\u914d\u7ec4\u7684\u7ed3\u679c\u3002 - NegateBooleanColumn.name=\u5e03\u5c14\u503c\u6c42\u53cd - -!ConvertColumnToDynamic.name= - -!ConvertColumnToDynamic.description= +ConvertColumnToDynamic.name=\u5217\u8f6c\u6362\u4e3a\u52a8\u6001 +ConvertColumnToDynamic.description=\u5c06\u73b0\u6709\u5217\u52a8\u6001\u5217\u548c\u53ef\u9009\u66f4\u6362 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_zh_TW.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_zh_TW.properties new file mode 100644 index 0000000000..86e34ba963 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/Bundle_zh_TW.properties @@ -0,0 +1,22 @@ +DeleteColumn.name=Delete column +DeleteColumn.confirmation.message=Confirm to delete ''{0}''? +ClearColumnData.name=Clear column +ClearColumnData.confirmation.message=Confirm to clear ''{0}''? +CopyDataToOtherColumn.name=Copy data to other column +FillColumnWithValue.name=Fill column with a value +FillColumnWithValue.inputDialog.text=Choose a value to fill all rows: +DuplicateColumn.name=Duplicate column +ColumnValuesFrequency.name=Calculate values frequency +ColumnValuesFrequency.description=Calculate the frequency of each value appearance. +ColumnValuesFrequency.report.header=

    Values frequencies report ''{0}''

    +ColumnValuesFrequency.report.piechart.title=Values frequencies pie chart +ColumnValuesFrequency.report.piechart.not-shown=There are more than 100 different values, pie chart is not shown. +NumberColumnStatisticsReport.name=Calculate statistics +NumberColumnStatisticsReport.description=Calculate statistics on a number or number list column. +CreateBooleanMatchesColumn.name=Create a boolean column from regex match +CreateBooleanMatchesColumn.description=Create a boolean column with values indicating if each of the selected values matches the regular expression. +CreateFoundGroupsListColumn.name=Create column with list of regex matching groups +CreateFoundGroupsListColumn.description=Create a string list column in which values are the matching groups results of the regular expression. +NegateBooleanColumn.name=Negate boolean values +ConvertColumnToDynamic.name=Convert column to dynamic +ConvertColumnToDynamic.description=Convert an existing column to a dynamic column and optionally replace it diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/cs.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/cs.po deleted file mode 100644 index 7c5c7567d8..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/cs.po +++ /dev/null @@ -1,85 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# ZbynΔ›k Schwarz , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-12-31 01:16+0000\n" -"Last-Translator: Eduardo Ramos \n" -"Language-Team: Czech (http://www.transifex.com/projects/p/gephi/language/cs/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: cs\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" - -msgid "DeleteColumn.name" -msgstr "Smazat sloupec" - -msgid "DeleteColumn.confirmation.message" -msgstr "Potvrdit smazΓ‘nΓ­ ''{0}''?" - -msgid "ClearColumnData.name" -msgstr "Vyčistit sloupec" - -msgid "ClearColumnData.confirmation.message" -msgstr "Potvrdit vyčiΕ‘tΔ›nΓ­ ''{0}''?" - -msgid "CopyDataToOtherColumn.name" -msgstr "KopΓ­rovat data na dalΕ‘Γ­ sloupec" - -msgid "FillColumnWithValue.name" -msgstr "Naplnit sloupec hodnotou" - -msgid "FillColumnWithValue.inputDialog.text" -msgstr "Zvolte hodnotu kterou vyplnit vΕ‘echny Ε™Γ‘dky:" - -msgid "DuplicateColumn.name" -msgstr "KopΓ­rovat sloupec" - -msgid "ColumnValuesFrequency.name" -msgstr "Spočítat četnost hodnot" - -msgid "ColumnValuesFrequency.description" -msgstr "Vypočítat četnost vΓ½skytu kaΕΎdΓ© hodnoty." - -msgid "ColumnValuesFrequency.report.header" -msgstr "

    HlÑőení četnosti hodnot ''{0}''

    " - -msgid "ColumnValuesFrequency.report.piechart.title" -msgstr "KolÑčovΓ½ graf četnosti hodnot" - -msgid "ColumnValuesFrequency.report.piechart.not-shown" -msgstr "Existuje vΓ­ce neΕΎ 100 rΕ―znΓ½ch hodnot, kolÑčovΓ½ graf nenΓ­ zobrazen." - -msgid "NumberColumnStatisticsReport.name" -msgstr "Vypočítat statistiky" - -msgid "NumberColumnStatisticsReport.description" -msgstr "Vypočítat statistiky čísla nebo sloupec seznamu čísel." - -msgid "CreateBooleanMatchesColumn.name" -msgstr "VytvoΕ™it booleovskΓ½ sloupec ze shody regulΓ‘rnΓ­ho vΓ½razu" - -msgid "CreateBooleanMatchesColumn.description" -msgstr "VytvoΕ™it booleovskΓ½ sloupec s hodnotami označujΓ­cΓ­ jestli kaΕΎdΓ‘ z vybranΓ½ch hodnot odpovΓ­dΓ‘ regulΓ‘rnΓ­mu vΓ½razu." - -msgid "CreateFoundGroupsListColumn.name" -msgstr "VytvoΕ™it sloupec se seznamem skupin odpovΓ­dajΓ­cΓ­ regulΓ‘rnΓ­mu vΓ½razu" - -msgid "CreateFoundGroupsListColumn.description" -msgstr "VytvoΕ™it sloupec se seznamen Ε™etΔ›zcΕ―, v nΔ›mΕΎ hodnoty odpovΓ­dajΓ­ skupinovΓ½m vΓ½sledkΕ―m regulΓ‘rnΓ­ho vΓ½razu." - -msgid "NegateBooleanColumn.name" -msgstr "Negovat booleovskΓ© hodnoty" - -msgid "ConvertColumnToDynamic.name" -msgstr "" - -msgid "ConvertColumnToDynamic.description" -msgstr "" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/es.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/es.po deleted file mode 100644 index 5cd12fa6f8..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/es.po +++ /dev/null @@ -1,86 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Eduardo Ramos , 2012. -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-12-31 01:24+0000\n" -"Last-Translator: Eduardo Ramos \n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/gephi/language/es/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -msgid "DeleteColumn.name" -msgstr "Borrar columna" - -msgid "DeleteColumn.confirmation.message" -msgstr "ΒΏConfirmar eliminaciΓ³n de ''{0}''?" - -msgid "ClearColumnData.name" -msgstr "Borrar datos de columna" - -msgid "ClearColumnData.confirmation.message" -msgstr "ΒΏConfirmar borrado de datos de ''{0}''?" - -msgid "CopyDataToOtherColumn.name" -msgstr "Copiar datos a otra columna" - -msgid "FillColumnWithValue.name" -msgstr "Rellenar columna con un valor" - -msgid "FillColumnWithValue.inputDialog.text" -msgstr "Elige un valor con el que rellenar todas las filas de la columna" - -msgid "DuplicateColumn.name" -msgstr "Duplicar columna" - -msgid "ColumnValuesFrequency.name" -msgstr "Calcular frecuencia de valores de columna" - -msgid "ColumnValuesFrequency.description" -msgstr "Calcula la frecuencia de apariciΓ³n de cada valor de una columna y muestra un informe" - -msgid "ColumnValuesFrequency.report.header" -msgstr "

    Informe de frecuencia de valores para la columna ''{0}''

    " - -msgid "ColumnValuesFrequency.report.piechart.title" -msgstr "GrΓ‘fico de tarta de frecuencias de valores" - -msgid "ColumnValuesFrequency.report.piechart.not-shown" -msgstr "Hay mΓ‘s de 100 valores diferentes, el grΓ‘fico de tarta no es mostrado." - -msgid "NumberColumnStatisticsReport.name" -msgstr "Calcular estadΓ­sticas" - -msgid "NumberColumnStatisticsReport.description" -msgstr "Calcula estadΓ­sticas de una columna numΓ©rica o de lista de nΓΊmeros y muestra un informe" - -msgid "CreateBooleanMatchesColumn.name" -msgstr "Crear columna booleana a partir de expresiΓ³n regular" - -msgid "CreateBooleanMatchesColumn.description" -msgstr "Crea una nueva columna booleana con valores que indican si cada valor de la columna seleccionada se ajusta a la expresiΓ³n regular proporcionada" - -msgid "CreateFoundGroupsListColumn.name" -msgstr "Crear columna con lista de grupos que se ajustan a una expresiΓ³n regular" - -msgid "CreateFoundGroupsListColumn.description" -msgstr "Crea una nueva columna de tipo lista de cadenas de texto con valores que son la lista de grupos que se ajustan a la expresiΓ³n regular proporcionada" - -msgid "NegateBooleanColumn.name" -msgstr "Negar columna booleana" - -msgid "ConvertColumnToDynamic.name" -msgstr "Convertir columna a dinΓ‘mica" - -msgid "ConvertColumnToDynamic.description" -msgstr "Convertir una columna existente en dinΓ‘mica y opcionalmente reemplazarla" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/fr.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/fr.po deleted file mode 100644 index 9be527fc5a..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/fr.po +++ /dev/null @@ -1,85 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-12-31 01:16+0000\n" -"Last-Translator: Eduardo Ramos \n" -"Language-Team: French (http://www.transifex.com/projects/p/gephi/language/fr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "DeleteColumn.name" -msgstr "Supprimer la colonne" - -msgid "DeleteColumn.confirmation.message" -msgstr "Confirmer la suppression de ''{0}''?" - -msgid "ClearColumnData.name" -msgstr "Effacer la colonne" - -msgid "ClearColumnData.confirmation.message" -msgstr "Confirmer effacement de ''{0}''?" - -msgid "CopyDataToOtherColumn.name" -msgstr "Copier les donnΓ©es vers une colonne" - -msgid "FillColumnWithValue.name" -msgstr "Remplir la colonne avec une valeur" - -msgid "FillColumnWithValue.inputDialog.text" -msgstr "Valeur de remplissage pour toutes les lignes :" - -msgid "DuplicateColumn.name" -msgstr "Dupliquer la colonne" - -msgid "ColumnValuesFrequency.name" -msgstr "Calculer les frΓ©quences" - -msgid "ColumnValuesFrequency.description" -msgstr "Calcule la frΓ©quence de chaque apparition de valeur" - -msgid "ColumnValuesFrequency.report.header" -msgstr "

    Rapport des frΓ©quences ''{0}''

    " - -msgid "ColumnValuesFrequency.report.piechart.title" -msgstr "Diagramme circulaire des frΓ©quences" - -msgid "ColumnValuesFrequency.report.piechart.not-shown" -msgstr "Diagramme non affichΓ© car il y a plus de 100 valeurs diffΓ©rentes." - -msgid "NumberColumnStatisticsReport.name" -msgstr "Calculer les statistiques" - -msgid "NumberColumnStatisticsReport.description" -msgstr "Calcule les statistiques sur une colonne de nombres ou de liste de nombres." - -msgid "CreateBooleanMatchesColumn.name" -msgstr "CrΓ©er une colonne boolΓ©enne depuis une expression rationnelle" - -msgid "CreateBooleanMatchesColumn.description" -msgstr "CrΓ©er une colonne boolΓ©enne indiquant si chaque ligne correspond Γ  l'expression rationnelle." - -msgid "CreateFoundGroupsListColumn.name" -msgstr "CrΓ©er une colonne depuis une liste de groupes d'une expression rationnelle" - -msgid "CreateFoundGroupsListColumn.description" -msgstr "CrΓ©er une colonne en liste dont les valeurs correspondent aux groupes de l'expression rationnelle." - -msgid "NegateBooleanColumn.name" -msgstr "Inverse les valeurs boolΓ©nnes" - -msgid "ConvertColumnToDynamic.name" -msgstr "" - -msgid "ConvertColumnToDynamic.description" -msgstr "" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ja.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ja.po deleted file mode 100644 index 3c538bc15b..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ja.po +++ /dev/null @@ -1,85 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-12-31 01:16+0000\n" -"Last-Translator: Eduardo Ramos \n" -"Language-Team: Japanese (http://www.transifex.com/projects/p/gephi/language/ja/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ja\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "DeleteColumn.name" -msgstr "εˆ—γε‰Šι™€" - -msgid "DeleteColumn.confirmation.message" -msgstr "''{0}''γ‚’ε‰Šι™€γ—γ¦γ‚‚γ„γ„γ§γ™γ‹οΌŸ" - -msgid "ClearColumnData.name" -msgstr "εˆ—γγ‚―γƒͺγ‚’" - -msgid "ClearColumnData.confirmation.message" -msgstr "''{0}''γ‚’γ‚―γƒͺγ‚’γ—γ¦γ‚‚γ„γ„γ§γ™γ‹οΌŸ" - -msgid "CopyDataToOtherColumn.name" -msgstr "データを他γεˆ—にコピー" - -msgid "FillColumnWithValue.name" -msgstr "εˆ—γ‚’ε€€γ§εŸ‹γ‚γ‚‹" - -msgid "FillColumnWithValue.inputDialog.text" -msgstr "θ‘Œγ‚’εŸ‹γ‚γ‚‹ε€€γ‚’ιΈζŠž:" - -msgid "DuplicateColumn.name" -msgstr "εˆ—γ‚’θ€‡ε†™" - -msgid "ColumnValuesFrequency.name" -msgstr "ε€€γι »εΊ¦γ‚’θ¨ˆη—" - -msgid "ColumnValuesFrequency.description" -msgstr "γγ‚Œγžγ‚Œγε€€γε‡ΊηΎγι »εΊ¦γ‚’θ¨ˆη—" - -msgid "ColumnValuesFrequency.report.header" -msgstr "

    ε€€ι »εΊ¦γƒ¬γƒγƒΌγƒˆ''{0}''

    " - -msgid "ColumnValuesFrequency.report.piechart.title" -msgstr "倀頻度円グラフ" - -msgid "ColumnValuesFrequency.report.piechart.not-shown" -msgstr "100δ»₯上γε€€γŒγ‚γ‚‹γŸγ‚ε††γ‚°γƒ©γƒ•γ―θ‘¨η€Ίγ•γ‚ŒγΎγ›γ‚“γ€‚" - -msgid "NumberColumnStatisticsReport.name" -msgstr "η΅±θ¨ˆι‡γθ¨ˆη—" - -msgid "NumberColumnStatisticsReport.description" -msgstr "ζ•°ε€€γΎγŸγ―ζ•°ε€€γƒͺγ‚Ήγƒˆγεˆ—γ«ι–’γ™γ‚‹η΅±θ¨ˆι‡γ‚’θ¨ˆη—" - -msgid "CreateBooleanMatchesColumn.name" -msgstr "正規葨現γγƒžγƒƒγƒγ‹γ‚‰γƒ–ール倀γεˆ—γ‚’δ½œζˆ" - -msgid "CreateBooleanMatchesColumn.description" -msgstr "ιΈζŠžγ•γ‚ŒγŸε€€γε„γ€…γ―ζ­£θ¦θ‘¨ηΎγ«δΈ€θ‡΄γ™γ‚Œγ°γ€η€Ίγ™ε€€γ‚’ζŒγ€γƒ–γƒΌγƒ«εˆ—γ‚’δ½œζˆ" - -msgid "CreateFoundGroupsListColumn.name" -msgstr "正規葨現に一致するグループγγƒͺγ‚Ήγƒˆγ§εˆ—γ‚’δ½œζˆ" - -msgid "CreateFoundGroupsListColumn.description" -msgstr "ε€€γŒζ­£θ¦θ‘¨ηΎγδΈ€θ‡΄γ™γ‚‹γ‚°γƒ«γƒΌγƒ—γη΅ζžœγ•γ‚Œγ¦γ„γ‚‹ζ–‡ε­—εˆ—γƒͺγ‚Ήγƒˆγεˆ—γ‚’δ½œζˆγ—γΎγ™γ€‚" - -msgid "NegateBooleanColumn.name" -msgstr "ブール倀を拒否" - -msgid "ConvertColumnToDynamic.name" -msgstr "" - -msgid "ConvertColumnToDynamic.description" -msgstr "" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle.properties index e959927cb4..c0ffda65aa 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle.properties @@ -1,7 +1,7 @@ JoinWithSeparator.name=Join values with separator JoinWithSeparator.description=Join the values of columns of any type with an optional separator. The new column has type STRING. JoinNumberColumns.name=Join numerical columns -JoinNumberColumns.description=Join the values of number/number list columns into a new column with the type LIST_BIGDECIMAL. +JoinNumberColumns.description=Join the values of number/number list columns into a new column with the type double[]. CreateTimeInterval.name=Create time interval CreateTimeInterval.description=Create a time interval for each row taking 1 or 2 columns as start/end times. diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_ar.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_ar.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_ar.properties @@ -0,0 +1 @@ + diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_ca.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_ca.properties new file mode 100644 index 0000000000..e86f1e8cc3 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_ca.properties @@ -0,0 +1,24 @@ +JoinWithSeparator.name=Join values with separator +JoinWithSeparator.description=Join the values of columns of any type with an optional separator. The new column has type STRING. +JoinNumberColumns.name=Join numerical columns +JoinNumberColumns.description=Join the values of number/number list columns into a new column with the type double[]. +CreateTimeInterval.name=Crea un interval de temps +CreateTimeInterval.description=Crea un interval de temps per cada fila, agafant 1 o 2 columnes per marcar l'inici i el final +AverageNumber.name=Calcula el valor de la mitjana +AverageNumber.description=Calculate the average value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +FirstQuartileNumber.name=Calculate first quartile (Q1) +FirstQuartileNumber.description=Calculate the first quartile (Q1) value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +MedianNumber.name=Calcula el valor de la mediana +MedianNumber.description=Calcula el valor de la mediana de les columnes numθriques (nombres o llista de nombres) i crea una nova columna (BIGDECIMAL) amb el resultat +ThirdQuartileNumber.name=Calculate third quartile (Q3) +ThirdQuartileNumber.description=Calculate the third quartile (Q3) value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +InterQuartileRangeNumber.name=Calculate interquartile range (IQR) +InterQuartileRangeNumber.description=Calculate the interquartile range (IQR) value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +SumNumbers.name=Sum number values +SumNumbers.description=Calculate the sum of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +MinimumNumber.name=Calcula el valor mνnim +MinimumNumber.description=Calculate the minimum value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +MaximumNumber.name=Calcula el valor mΰxim +MaximumNumber.description=Calculate the maximum value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +BooleanLogicOperations.name=Merge boolean columns +BooleanLogicOperations.description=Merge boolean columns in the selected order to create a new column, choosing the logical operations applied between each pair of columns. A null value is used as false. diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_cs.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_cs.properties index a6016dbf35..b642cf4333 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_cs.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_cs.properties @@ -1,55 +1,26 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Zbyn\u011bk Schwarz , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-02-28 20\:48+0000\nLast-Translator\: Zbyn\u011bk Schwarz \nLanguage-Team\: Czech (http\://www.transifex.com/projects/p/gephi/language/cs/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: cs\nPlural-Forms\: nplurals\=3; plural\=(n\=\=1) ? 0 \: (n>\=2 && n<\=4) ? 1 \: 2;\n - -JoinWithSeparator.name=Spojit hodnoty odd\u011blova\u010dem - -JoinWithSeparator.description=Spoj\u00ed hodnoty sloupc\u016f jak\u00e9hokoliv typu nepovinn\u00fdm odd\u011blova\u010dem. Nov\u00fd sloupec m\u00e1 typ STRING. - -JoinNumberColumns.name=Spojit \u010d\u00edseln\u00e9 sloupce - -JoinNumberColumns.description=Spoj\u00ed hodnoty \u010d\u00edseln\u00fdch sloupc\u016f/sloupc\u016f seznamu \u010d\u00edseldo nov\u00e9ho sloupce s typem LIST_BIGDECIMAL. - -CreateTimeInterval.name=Vytvo\u0159it \u010dasov\u00fd interval - -CreateTimeInterval.description=Vytvo\u0159it \u010dasov\u00fd interval pro ka\u017ed\u00fd \u0159\u00e1dek, kter\u00fd pou\u017e\u00edv\u00e1 1 nebo 2 sloupce jako doba za\u010d\u00e1tku/konce. - -AverageNumber.name=Vypo\u010d\u00edtat pr\u016fm\u011brnou hodnotu - -AverageNumber.description=Vypo\u010d\u00edt\u00e1 pr\u016fm\u011brnou hodnotu \u010d\u00edseln\u00fdch sloupc\u016f (\u010d\u00edseln\u00e9 nebo seznam \u010d\u00edsel). Vytvo\u0159\u00ed nov\u00fd sloupec (BIGDECIMAL) s v\u00fdsledkem. - -FirstQuartileNumber.name=Vypo\u010d\u00edtat prvn\u00ed kvartil (Q1) - -FirstQuartileNumber.description=Vypo\u010d\u00edt\u00e1 hodnotu prvn\u00edho kvartilu (Q1) \u010d\u00edseln\u00fdch sloupc\u016f (\u010d\u00edseln\u00e9 nebo seznam \u010d\u00edsel). Vytvo\u0159\u00ed nov\u00fd sloupec (BIGDECIMAL) s v\u00fdsledkem. - -MedianNumber.name=Vypo\u010d\u00edt\u00e1 hodnotu medi\u00e1nu - -MedianNumber.description=Vypo\u010d\u00edt\u00e1 hodnotu medi\u00e1nu \u010d\u00edseln\u00fdch sloupc\u016f (\u010d\u00edseln\u00e9 nebo seznam \u010d\u00edsel). Vytvo\u0159\u00ed nov\u00fd sloupec (BIGDECIMAL) s v\u00fdsledkem. - -ThirdQuartileNumber.name=Vypo\u010d\u00edtat prvn\u00ed kvartil (Q3) - -ThirdQuartileNumber.description=Vypo\u010d\u00edt\u00e1 hodnotu prvn\u00edho kvartilu (Q3) \u010d\u00edseln\u00fdch sloupc\u016f (\u010d\u00edseln\u00e9 nebo seznam \u010d\u00edsel). Vytvo\u0159\u00ed nov\u00fd sloupec (BIGDECIMAL) s v\u00fdsledkem. - -InterQuartileRangeNumber.name=Vypo\u010d\u00edtat mezikvartiln\u00ed rozsah (IQR) - -InterQuartileRangeNumber.description=Vypo\u010d\u00edt\u00e1 hodnotu mezikvartiln\u00edho rozsahu (Q1) \u010d\u00edseln\u00fdch sloupc\u016f (\u010d\u00edseln\u00e9 nebo seznam \u010d\u00edsel). Vytvo\u0159\u00ed nov\u00fd sloupec (BIGDECIMAL) s v\u00fdsledkem. - -SumNumbers.name=Sou\u010det \u010d\u00edseln\u00fdch hodnot - -SumNumbers.description=Vypo\u010d\u00edt\u00e1 sou\u010det \u010d\u00edseln\u00fdch sloupc\u016f (\u010d\u00edseln\u00e9 nebo seznam \u010d\u00edsel). Vytvo\u0159\u00ed nov\u00fd sloupec (BIGDECIMAL) s v\u00fdsledkem. - -MinimumNumber.name=Vypo\u010d\u00edtat minim\u00e1ln\u00ed hodnotu - -MinimumNumber.description=Vypo\u010d\u00edt\u00e1 minim\u00e1ln\u00ed hodnotu \u010d\u00edseln\u00fdch sloupc\u016f (\u010d\u00edseln\u00e9 nebo seznam \u010d\u00edsel). Vytvo\u0159\u00ed nov\u00fd sloupec (BIGDECIMAL) s v\u00fdsledkem. - -MaximumNumber.name=Vypo\u010d\u00edtat maxim\u00e1ln\u00ed hodnotu - -MaximumNumber.description=Vypo\u010d\u00edt\u00e1 maxim\u00e1ln\u00ed hodnotu \u010d\u00edseln\u00fdch sloupc\u016f (\u010d\u00edseln\u00e9 nebo seznam \u010d\u00edsel). Vytvo\u0159\u00ed nov\u00fd sloupec (BIGDECIMAL) s v\u00fdsledkem. - -BooleanLogicOperations.name=Slou\u010dit booleovsk\u00e9 sloupce - -BooleanLogicOperations.description=Slou\u010d\u00ed booleovsk\u00e9 sloupce ve zvolen\u00e9m po\u0159ad\u00ed pro vytvo\u0159en\u00ed nov\u00e9ho volen\u00edm logick\u00e9 operace, kter\u00e1 je pou\u017eita na ka\u017ed\u00fd p\u00e1r sloupc\u016f. Pr\u00e1zdn\u00e1 hodnota se pou\u017e\u00edv\u00e1 jako nepravda +JoinWithSeparator.name=Spojit hodnoty odd\u011blova\u010dem +JoinWithSeparator.description=Spojν hodnoty sloupc\u016f jakιhokoliv typu nepovinnύm odd\u011blova\u010dem. Novύ sloupec mα typ STRING. +JoinNumberColumns.name=Spojit \u010dνselnι sloupce +# JoinNumberColumns.description=Join the values of number/number list columns into a new column with the type double[]. +CreateTimeInterval.name=Vytvo\u0159it \u010dasovύ interval +CreateTimeInterval.description=Vytvo\u0159it \u010dasovύ interval pro ka\u017edύ \u0159αdek, kterύ pou\u017eνvα 1 nebo 2 sloupce jako doba za\u010dαtku/konce. + +AverageNumber.name=Vypo\u010dνtat pr\u016fm\u011brnou hodnotu +AverageNumber.description=Vypo\u010dνtα pr\u016fm\u011brnou hodnotu \u010dνselnύch sloupc\u016f (\u010dνselnι nebo seznam \u010dνsel). Vytvo\u0159ν novύ sloupec (BIGDECIMAL) s vύsledkem. +FirstQuartileNumber.name=Vypo\u010dνtat prvnν kvartil (Q1) +FirstQuartileNumber.description=Vypo\u010dνtα hodnotu prvnνho kvartilu (Q1) \u010dνselnύch sloupc\u016f (\u010dνselnι nebo seznam \u010dνsel). Vytvo\u0159ν novύ sloupec (BIGDECIMAL) s vύsledkem. +MedianNumber.name=Vypo\u010dνtα hodnotu mediαnu +MedianNumber.description=Vypo\u010dνtα hodnotu mediαnu \u010dνselnύch sloupc\u016f (\u010dνselnι nebo seznam \u010dνsel). Vytvo\u0159ν novύ sloupec (BIGDECIMAL) s vύsledkem. +ThirdQuartileNumber.name=Vypo\u010dνtat prvnν kvartil (Q3) +ThirdQuartileNumber.description=Vypo\u010dνtα hodnotu prvnνho kvartilu (Q3) \u010dνselnύch sloupc\u016f (\u010dνselnι nebo seznam \u010dνsel). Vytvo\u0159ν novύ sloupec (BIGDECIMAL) s vύsledkem. +InterQuartileRangeNumber.name=Vypo\u010dνtat mezikvartilnν rozsah (IQR) +InterQuartileRangeNumber.description=Vypo\u010dνtα hodnotu mezikvartilnνho rozsahu (Q1) \u010dνselnύch sloupc\u016f (\u010dνselnι nebo seznam \u010dνsel). Vytvo\u0159ν novύ sloupec (BIGDECIMAL) s vύsledkem. +SumNumbers.name=Sou\u010det \u010dνselnύch hodnot +SumNumbers.description=Vypo\u010dνtα sou\u010det \u010dνselnύch sloupc\u016f (\u010dνselnι nebo seznam \u010dνsel). Vytvo\u0159ν novύ sloupec (BIGDECIMAL) s vύsledkem. +MinimumNumber.name=Vypo\u010dνtat minimαlnν hodnotu +MinimumNumber.description=Vypo\u010dνtα minimαlnν hodnotu \u010dνselnύch sloupc\u016f (\u010dνselnι nebo seznam \u010dνsel). Vytvo\u0159ν novύ sloupec (BIGDECIMAL) s vύsledkem. +MaximumNumber.name=Vypo\u010dνtat maximαlnν hodnotu +MaximumNumber.description=Vypo\u010dνtα maximαlnν hodnotu \u010dνselnύch sloupc\u016f (\u010dνselnι nebo seznam \u010dνsel). Vytvo\u0159ν novύ sloupec (BIGDECIMAL) s vύsledkem. + +BooleanLogicOperations.name=Slou\u010dit booleovskι sloupce +BooleanLogicOperations.description=Slou\u010dν booleovskι sloupce ve zvolenιm po\u0159adν pro vytvo\u0159enν novιho volenνm logickι operace, kterα je pou\u017eita na ka\u017edύ pαr sloupc\u016f. Prαzdnα hodnota se pou\u017eνvα jako nepravda diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_de.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_de.properties new file mode 100644 index 0000000000..3b841c4be9 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_de.properties @@ -0,0 +1,26 @@ +JoinWithSeparator.name=Vereine Werte mit Trenner +JoinWithSeparator.description=Vereine die Werte der Spalten beliebigen Typs mit einem optionalen Trenner. Die neue Spalte hat den Typ STRING. +JoinNumberColumns.name=Vereine numerische Spalten +JoinNumberColumns.description=Vereine die Werte der Spalten vom Typ number/number list in eine neue Spalte vom Typ double[]. +CreateTimeInterval.name=Erzeuge Zeitintervall +CreateTimeInterval.description=Erzeuge ein Zeitintervall fόr jede Zeile anhand 1 oder 2 Start-/Endzeit-Spalten. + +AverageNumber.name=Durschnittswert berechnen +AverageNumber.description=Berechne den Durchschnittswert numerischer Spalten (number oder number list). Erzeuge eine neue Spalte (BIGDECIMAL) mit dem Ergebnis. +FirstQuartileNumber.name=Erstes Quartil (Q1) berechnen +FirstQuartileNumber.description=Berechne das erste Quartil (Q1) numerischer Spalten (number oder number list). Erzeuge eine neue Spalte (BIGDECIMAL) mit dem Ergebnis. +MedianNumber.name=Berechnet den Median-Wert +MedianNumber.description=Berechne den Medianwert numerischer Spalten (number oder number list). Erzeuge eine neue Spalte (BIGDECIMAL) mit dem Ergebnis. +ThirdQuartileNumber.name=Drittes Quartil (Q3) berechnen +ThirdQuartileNumber.description=Berechne das dritte Quartil (Q3) numerischer Spalten (number oder number list). Erzeuge eine neue Spalte (BIGDECIMAL) mit dem Ergebnis. +InterQuartileRangeNumber.name=Interquartilsabstand (IQR) berechnen +InterQuartileRangeNumber.description=Berechne den Interquartilsabstand (IQR) numerischer Spalten (number oder number list). Erzeuge eine neue Spalte (BIGDECIMAL) mit dem Ergebnis. +SumNumbers.name=Summiere numerische Werte +SumNumbers.description=Berechne die Summer numerischer Spalten (number oder number list). Erzeuge eine neue Spalte (BIGDECIMAL) mit dem Ergebnis. +MinimumNumber.name=Minimum-Wert berechnen +MinimumNumber.description=Berechne den Minimalwert numerischer Spalten (number oder number list). Erzeuge eine neue Spalte (BIGDECIMAL) mit dem Ergebnis. +MaximumNumber.name=Maximal-Wert berechnen +MaximumNumber.description=Berechne den Maximalwert numerischer Spalten (number oder number list). Erzeuge eine neue Spalte (BIGDECIMAL) mit dem Ergebnis. + +BooleanLogicOperations.name=Verschmelze boolesche Spalten +BooleanLogicOperations.description=Verschmelze boolesche Spalten in der ausgewδhlten Reihenfolge um eine neue Spalte zu erzeugen, indem die logischen Operationen auf jedes Spaltenpaar angewendet werden. Ein Null-Wert wird als 'false' interpretiert. diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_es.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_es.properties index ec11a9ea33..a38b6e49d9 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_es.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_es.properties @@ -1,55 +1,24 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 14\:29+0000\nLast-Translator\: gephi \nLanguage-Team\: Spanish (http\://www.transifex.com/projects/p/gephi/language/es/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: es\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n - JoinWithSeparator.name=Unir valores con separador - -JoinWithSeparator.description=Une los valores de columnas de cualquier tipo con el separador proporcionado (o sin separador) entre cada par de columnas. La nueva columna tendr\u00e1 tipo STRING. - -JoinNumberColumns.name=Unir columnas num\u00e9ricas - -JoinNumberColumns.description=Une los valores de varias columnas num\u00e9ricas/listas de n\u00fameros creando una nueva columna con el tipo LIST_BIGDECIMAL. - -CreateTimeInterval.name=Crear int\u00e9rvalo de tiempo - -CreateTimeInterval.description=Crea un int\u00e9rvalo de tiempo para cada fila tomando 1 o 2 columnas como tiempos de inicio/final y usando los tiempos por defecto indicados. - +JoinWithSeparator.description=Une los valores de columnas de cualquier tipo con el separador proporcionado (o sin separador) entre cada par de columnas. La nueva columna tendrα tipo STRING. +JoinNumberColumns.name=Unir columnas numιricas +JoinNumberColumns.description=Une los valores de varias columnas numιricas/listas de nϊmeros creando una nueva columna con el tipo double[]. +CreateTimeInterval.name=Crear intιrvalo de tiempo +CreateTimeInterval.description=Crea un intιrvalo de tiempo para cada fila tomando 1 o 2 columnas como tiempos de inicio/final y usando los tiempos por defecto indicados. AverageNumber.name=Calcular valor medio - -AverageNumber.description=Calcula el valor medio de todos los n\u00fameros en las columnas escogidas (solamente columnas num\u00e9ricas o de listas de n\u00fameros) y crea una nueva columna (BIGDECIMAL) con el resultado. - +AverageNumber.description=Calcula el promedio de las columnas num\u00E9ricas (n\u00FAmero o lista de n\u00FAmeros). Crea una nueva columna (BIGDECIMAL) con el resultado. FirstQuartileNumber.name=Calcular primer cuartil (Q1) - -FirstQuartileNumber.description=Calcula el primer cuartil (Q1) de todos los n\u00fameros en las columnas escogidas (solamente columnas num\u00e9ricas o de listas de n\u00fameros) y crea una nueva columna (BIGDECIMAL) con el resultado. - +FirstQuartileNumber.description=Calcula el primer cuartil (Q1) de todos los nϊmeros en las columnas escogidas (solamente columnas numιricas o de listas de nϊmeros) y crea una nueva columna (BIGDECIMAL) con el resultado. MedianNumber.name=Calcular mediana - -MedianNumber.description=Calcula la mediana de todos los n\u00fameros en las columnas escogidas (solamente columnas num\u00e9ricas o de listas de n\u00fameros) y crea una nueva columna (BIGDECIMAL) con el resultado. - +MedianNumber.description=Calcula la mediana de todos los nϊmeros en las columnas escogidas (solamente columnas numιricas o de listas de nϊmeros) y crea una nueva columna (BIGDECIMAL) con el resultado. ThirdQuartileNumber.name=Calcular tercer cuartil (Q3) - -ThirdQuartileNumber.description=Calcula el tercer cuartil (Q3) de todos los n\u00fameros en las columnas escogidas (solamente columnas num\u00e9ricas o de listas de n\u00fameros) y crea una nueva columna (BIGDECIMAL) con el resultado. - -InterQuartileRangeNumber.name=Calcular rango intercuart\u00edlico (IQR) - -InterQuartileRangeNumber.description=Calcula el rango intercuart\u00edlico (IQR) de todos los n\u00fameros en las columnas escogidas (solamente columnas num\u00e9ricas o de listas de n\u00fameros) y crea una nueva columna (BIGDECIMAL) con el resultado. - -SumNumbers.name=Calcular suma - -SumNumbers.description=Calcula la suma de todos los n\u00fameros en las columnas escogidas (solamente columnas num\u00e9ricas o de listas de n\u00fameros) y crea una nueva columna (BIGDECIMAL) con el resultado. - -MinimumNumber.name=Calcular valor m\u00ednimo - -MinimumNumber.description=Calcula el valor m\u00ednimo de todos los n\u00fameros en las columnas escogidas (solamente columnas num\u00e9ricas o de listas de n\u00fameros) y crea una nueva columna (BIGDECIMAL) con el resultado. - -MaximumNumber.name=Calcular valor m\u00e1ximo - -MaximumNumber.description=Calcula el valor m\u00e1ximo de todos los n\u00fameros en las columnas escogidas (solamente columnas num\u00e9ricas o de listas de n\u00fameros) y crea una nueva columna (BIGDECIMAL) con el resultado. - -BooleanLogicOperations.name=Mezcla l\u00f3gica de columnas booleanas - -BooleanLogicOperations.description=Mezcla varias columnas booleanas en el orden seleccionado para crear una nueva columna, pudiendo elegir las operaciones l\u00f3gicas realizadas entre cada par de columnas. Si cualquier valor es nulo, 'false' ser\u00e1 usado en su lugar. +ThirdQuartileNumber.description=Calcula el valor del tercer cuartil (Q3) de las columnas num\u00E9ricas (n\u00FAmero o lista de n\u00FAmeros). Crea una nueva columna (BigDecimal) con el resultado. +InterQuartileRangeNumber.name=Calcular rango intercuartνlico (IQR) +InterQuartileRangeNumber.description=Calcular el valor del rango intercuart\u00EDlico (IQR) de columnas num\u00E9ricas (n\u00FAmero o lista de n\u00FAmeros). Crear una nueva columna (BIGDECIMAL) con el resultado. +SumNumbers.name=Suma de los valores num\u00E9ricos +SumNumbers.description=Calcular la suma de las columnas num\u00E9ricas (n\u00FAmero o lista de n\u00FAmeros). Crear una nueva columna (BIGDECIMAL) con el resultado. +MinimumNumber.name=Calcula el valor m\u00EDnimo +MinimumNumber.description=Calcula el valor mνnimo de todos los nϊmeros en las columnas escogidas (solamente columnas numιricas o de listas de nϊmeros) y crea una nueva columna (BIGDECIMAL) con el resultado. +MaximumNumber.name=Calcular valor mαximo +MaximumNumber.description=Calcular el valor m\u00E1ximo de las columnas num\u00E9ricas (n\u00FAmero o lista de n\u00FAmeros). Crear una nueva columna (BIGDECIMAL) con el resultado. +BooleanLogicOperations.name=Unir columnas booleanas +BooleanLogicOperations.description=Combina las columnas booleanas en el orden seleccionado para crear una nueva columna, eligiendo las operaciones l\u00F3gicas aplicadas entre cada par de columnas. Un valor nulo se utiliza como falso. diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_fr.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_fr.properties index 51e0b52e47..cbbcbd42c8 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_fr.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_fr.properties @@ -1,55 +1,24 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 14\:29+0000\nLast-Translator\: gephi \nLanguage-Team\: French (http\://www.transifex.com/projects/p/gephi/language/fr/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fr\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -JoinWithSeparator.name=Jointure avec s\u00e9parateur - -JoinWithSeparator.description=Fusionne les valeurs de n'importe quelles colonnes avec un s\u00e9parateur (optionnel) entre elles. La colonne ainsi cr\u00e9\u00e9e est de type STRING. - -JoinNumberColumns.name=Jointure num\u00e9rique - -JoinNumberColumns.description=Cr\u00e9\u00e9 une colonne de liste de nombres de type LIST_BIGDECIMAL. - -CreateTimeInterval.name=Cr\u00e9er un intervalle temporel - -CreateTimeInterval.description=Cr\u00e9\u00e9 un intervalle temporel pour chaque ligne. Un ou deux colonnes servent de d\u00e9but/fin. - -AverageNumber.name=Calcule la moyenne - -AverageNumber.description=Calcule la valeur moyenne d'une colonne num\u00e9rique. Cr\u00e9\u00e9 une colonne de type BIGDECIMAL contenant le r\u00e9sultat. - -FirstQuartileNumber.name=Calcule le premier quartile (Q1) - -FirstQuartileNumber.description=Calcule le premier quartile (Q1) d'une colonne num\u00e9rique. Cr\u00e9\u00e9 une colonne de type BIGDECIMAL contenant le r\u00e9sultat. - -MedianNumber.name=Calcule la m\u00e9diane - -MedianNumber.description=Calcule la valeur m\u00e9diane d'une colonne num\u00e9rique. Cr\u00e9\u00e9 une colonne de type BIGDECIMAL contenant le r\u00e9sultat. - -ThirdQuartileNumber.name=Calcule le troisi\u00e8me quartile (Q3) - -ThirdQuartileNumber.description=Calcule le troisi\u00e8me quartile (Q3) d'une colonne num\u00e9rique. Cr\u00e9\u00e9 une colonne de type BIGDECIMAL contenant le r\u00e9sultat. - -InterQuartileRangeNumber.name=Calcule l'\u00e9cart interquartile (IQR) - -InterQuartileRangeNumber.description=Calcule l'\u00e9cart interquartile (IQR) d'une colonne num\u00e9rique. Cr\u00e9\u00e9 une colonne de type BIGDECIMAL contenant le r\u00e9sultat. - +JoinWithSeparator.name=Jointure avec sιparateur +JoinWithSeparator.description=Fusionne les valeurs de n'importe quelles colonnes avec un sιparateur (optionnel) entre elles. La colonne ainsi crιιe est de type STRING. +JoinNumberColumns.name=Jointure numιrique +JoinNumberColumns.description=Joindre les valeurs des colonnes de liste de numιros / numιros dans une nouvelle colonne de type double []. +CreateTimeInterval.name=Crιer un intervalle temporel +CreateTimeInterval.description=Crιι un intervalle temporel pour chaque ligne. Un ou deux colonnes servent de dιbut/fin. +AverageNumber.name=Calculer la valeur moyenne +AverageNumber.description=Calcule la valeur moyenne d'une colonne numιrique. Crιι une colonne de type BIGDECIMAL contenant le rιsultat. +FirstQuartileNumber.name=Calculer le premier quartile (Q1) +FirstQuartileNumber.description=Calcule le premier quartile (Q1) d'une colonne numιrique. Crιι une colonne de type BIGDECIMAL contenant le rιsultat. +MedianNumber.name=Calculer la valeur m\u00E9diane +MedianNumber.description=Calcule la valeur mιdiane d'une colonne numιrique. Crιι une colonne de type BIGDECIMAL contenant le rιsultat. +ThirdQuartileNumber.name=Calcule le troisiθme quartile (Q3) +ThirdQuartileNumber.description=Calcule le troisiθme quartile (Q3) d'une colonne numιrique. Crιι une colonne de type BIGDECIMAL contenant le rιsultat. +InterQuartileRangeNumber.name=Calculer l'\u00E9cart interquartile (EI) +InterQuartileRangeNumber.description=Calcule l'ιcart interquartile (IQR) d'une colonne numιrique. Crιι une colonne de type BIGDECIMAL contenant le rιsultat. SumNumbers.name=Calcule la somme - -SumNumbers.description=Calcule la somme d'une colonne num\u00e9rique. Cr\u00e9\u00e9 une colonne de type BIGDECIMAL contenant le r\u00e9sultat. - -MinimumNumber.name=Calcule le minimum - -MinimumNumber.description=Calcule le minimum d'une colonne num\u00e9rique. Cr\u00e9\u00e9 une colonne de type BIGDECIMAL contenant le r\u00e9sultat. - -MaximumNumber.name=Calcule la valeur maximale - -MaximumNumber.description=Calcule la valeur maximale d'une colonne num\u00e9rique, et cr\u00e9\u00e9 une nouvelle colonne de type BIGDECIMAL contenant le r\u00e9sultat. - -BooleanLogicOperations.name=Fusion de colonnes bool\u00e9ennes - -BooleanLogicOperations.description=Fusionne des colonnes bool\u00e9ennes dans une nouvelle, selon une op\u00e9ration logique entre chaque pair de colonnes. Les valeurs nulles sont interpr\u00e9t\u00e9es comme fausses. +SumNumbers.description=Calcule la somme d'une colonne numιrique. Crιι une colonne de type BIGDECIMAL contenant le rιsultat. +MinimumNumber.name=Calculer la valeur minimum +MinimumNumber.description=Calcule le minimum d'une colonne numιrique. Crιι une colonne de type BIGDECIMAL contenant le rιsultat. +MaximumNumber.name=Calculer la valeur maximum +MaximumNumber.description=Calcule la valeur maximale d'une colonne numιrique, et crιι une nouvelle colonne de type BIGDECIMAL contenant le rιsultat. +BooleanLogicOperations.name=Fusion de colonnes boolιennes +BooleanLogicOperations.description=Fusionne des colonnes boolιennes dans une nouvelle, selon une opιration logique entre chaque pair de colonnes. Les valeurs nulles sont interprιtιes comme fausses. diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_he.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_he.properties new file mode 100644 index 0000000000..fa2155a884 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_he.properties @@ -0,0 +1,24 @@ +JoinWithSeparator.name=Join values with separator +JoinWithSeparator.description=Join the values of columns of any type with an optional separator. The new column has type STRING. +JoinNumberColumns.name=Join numerical columns +JoinNumberColumns.description=Join the values of number/number list columns into a new column with the type double[]. +CreateTimeInterval.name=Create time interval +CreateTimeInterval.description=Create a time interval for each row taking 1 or 2 columns as start/end times. +AverageNumber.name=Calculate average value +AverageNumber.description=Calculate the average value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +FirstQuartileNumber.name=Calculate first quartile (Q1) +FirstQuartileNumber.description=Calculate the first quartile (Q1) value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +MedianNumber.name=Calculate median value +MedianNumber.description=Calculate the median value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +ThirdQuartileNumber.name=Calculate third quartile (Q3) +ThirdQuartileNumber.description=Calculate the third quartile (Q3) value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +InterQuartileRangeNumber.name=Calculate interquartile range (IQR) +InterQuartileRangeNumber.description=Calculate the interquartile range (IQR) value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +SumNumbers.name=Sum number values +SumNumbers.description=Calculate the sum of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +MinimumNumber.name=Calculate minimum value +MinimumNumber.description=Calculate the minimum value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +MaximumNumber.name=Calculate maximum value +MaximumNumber.description=Calculate the maximum value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +BooleanLogicOperations.name=Merge boolean columns +BooleanLogicOperations.description=Merge boolean columns in the selected order to create a new column, choosing the logical operations applied between each pair of columns. A null value is used as false. diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_hu.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_hu.properties new file mode 100644 index 0000000000..404c20ef49 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_hu.properties @@ -0,0 +1,26 @@ + + +InterQuartileRangeNumber.name=Interkvartilis tartom\u00E1ny (IQR) kisz\u00E1m\u00EDt\u00E1sa +AverageNumber.description=Sz\u00E1m\u00EDtsd ki a numerikus oszlopok \u00E1tlag\u00E9rt\u00E9k\u00E9t (sz\u00E1m vagy sz\u00E1mlista). Hozzon l\u00E9tre egy \u00FAj oszlopot (BIGDECIMAL) az eredm\u00E9nnyel. +MaximumNumber.name=Sz\u00E1m\u00EDtsa ki a maxim\u00E1lis \u00E9rt\u00E9ket +BooleanLogicOperations.description=\u00DAj oszlop l\u00E9trehoz\u00E1s\u00E1hoz egyes\u00EDtse a logikai oszlopokat a kiv\u00E1lasztott sorrendben, \u00E9s v\u00E1lassza ki az egyes oszlopp\u00E1rok k\u00F6z\u00F6tt alkalmazott logikai m\u0171veleteket. A null \u00E9rt\u00E9ket falsk\u00E9nt haszn\u00E1ljuk. +FirstQuartileNumber.name=Az els\u0151 kvartilis kisz\u00E1m\u00EDt\u00E1sa (Q1) +JoinNumberColumns.name=Csatlakoztassa a numerikus oszlopokat +BooleanLogicOperations.name=Logikai oszlopok egyes\u00EDt\u00E9se +InterQuartileRangeNumber.description=Sz\u00E1m\u00EDtsd ki a numerikus oszlopok (sz\u00E1m vagy sz\u00E1mlista) interkvartilis tartom\u00E1ny (IQR) \u00E9rt\u00E9k\u00E9t. Hozzon l\u00E9tre egy \u00FAj oszlopot (BIGDECIMAL) az eredm\u00E9nnyel. +MaximumNumber.description=Sz\u00E1m\u00EDtsa ki a numerikus oszlopok maxim\u00E1lis \u00E9rt\u00E9k\u00E9t (sz\u00E1m vagy sz\u00E1mlista). Hozzon l\u00E9tre egy \u00FAj oszlopot (BIGDECIMAL) az eredm\u00E9nnyel. +ThirdQuartileNumber.description=Sz\u00E1m\u00EDtsd ki a numerikus oszlopok (sz\u00E1m vagy sz\u00E1mlista) harmadik kvartilis (Q3) \u00E9rt\u00E9k\u00E9t. Hozzon l\u00E9tre egy \u00FAj oszlopot (BIGDECIMAL) az eredm\u00E9nnyel. +MedianNumber.name=Sz\u00E1m\u00EDtsa ki a medi\u00E1n \u00E9rt\u00E9ket +MinimumNumber.name=Sz\u00E1m\u00EDtsa ki a minim\u00E1lis \u00E9rt\u00E9ket +MinimumNumber.description=Sz\u00E1molja ki a numerikus oszlopok minim\u00E1lis \u00E9rt\u00E9k\u00E9t (sz\u00E1m vagy sz\u00E1mlista). Hozzon l\u00E9tre egy \u00FAj oszlopot (BIGDECIMAL) az eredm\u00E9nnyel. +AverageNumber.name=Sz\u00E1m\u00EDtsa ki az \u00E1tlag\u00E9rt\u00E9ket +SumNumbers.description=Sz\u00E1m\u00EDtsa ki a numerikus oszlopok \u00F6sszeg\u00E9t (sz\u00E1m vagy sz\u00E1mlista). Hozzon l\u00E9tre egy \u00FAj oszlopot (BIGDECIMAL) az eredm\u00E9nnyel. +CreateTimeInterval.name=Id\u0151intervallum l\u00E9trehoz\u00E1sa +MedianNumber.description=Sz\u00E1m\u00EDtsd ki a numerikus oszlopok medi\u00E1n \u00E9rt\u00E9k\u00E9t (sz\u00E1m vagy sz\u00E1mlista). Hozzon l\u00E9tre egy \u00FAj oszlopot (BIGDECIMAL) az eredm\u00E9nnyel. +JoinNumberColumns.description=Csatlakoztassa a sz\u00E1m/sz\u00E1mlista oszlopainak \u00E9rt\u00E9keit egy \u00FAj, double[] t\u00EDpus\u00FA oszlopba. +CreateTimeInterval.description=Hozzon l\u00E9tre egy id\u0151intervallumot minden sorhoz \u00FAgy, hogy 1 vagy 2 oszlopot vegyen fel kezd\u00E9si/v\u00E9gi id\u0151k\u00E9nt. +JoinWithSeparator.name=Csatlakoztassa az \u00E9rt\u00E9keket elv\u00E1laszt\u00F3val +SumNumbers.name=Sz\u00E1m\u00E9rt\u00E9kek \u00F6sszege +JoinWithSeparator.description=Csatlakoztassa a tetsz\u0151leges t\u00EDpus\u00FA oszlopok \u00E9rt\u00E9keit egy opcion\u00E1lis elv\u00E1laszt\u00F3val. Az \u00FAj oszlop t\u00EDpusa STRING. +FirstQuartileNumber.description=Sz\u00E1m\u00EDtsd ki a numerikus oszlopok (sz\u00E1m vagy sz\u00E1mlista) els\u0151 kvartilis (Q1) \u00E9rt\u00E9k\u00E9t. Hozzon l\u00E9tre egy \u00FAj oszlopot (BIGDECIMAL) az eredm\u00E9nnyel. +ThirdQuartileNumber.name=Harmadik kvartilis kisz\u00E1m\u00EDt\u00E1sa (Q3) diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_it.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_it.properties new file mode 100644 index 0000000000..fa2155a884 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_it.properties @@ -0,0 +1,24 @@ +JoinWithSeparator.name=Join values with separator +JoinWithSeparator.description=Join the values of columns of any type with an optional separator. The new column has type STRING. +JoinNumberColumns.name=Join numerical columns +JoinNumberColumns.description=Join the values of number/number list columns into a new column with the type double[]. +CreateTimeInterval.name=Create time interval +CreateTimeInterval.description=Create a time interval for each row taking 1 or 2 columns as start/end times. +AverageNumber.name=Calculate average value +AverageNumber.description=Calculate the average value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +FirstQuartileNumber.name=Calculate first quartile (Q1) +FirstQuartileNumber.description=Calculate the first quartile (Q1) value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +MedianNumber.name=Calculate median value +MedianNumber.description=Calculate the median value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +ThirdQuartileNumber.name=Calculate third quartile (Q3) +ThirdQuartileNumber.description=Calculate the third quartile (Q3) value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +InterQuartileRangeNumber.name=Calculate interquartile range (IQR) +InterQuartileRangeNumber.description=Calculate the interquartile range (IQR) value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +SumNumbers.name=Sum number values +SumNumbers.description=Calculate the sum of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +MinimumNumber.name=Calculate minimum value +MinimumNumber.description=Calculate the minimum value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +MaximumNumber.name=Calculate maximum value +MaximumNumber.description=Calculate the maximum value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +BooleanLogicOperations.name=Merge boolean columns +BooleanLogicOperations.description=Merge boolean columns in the selected order to create a new column, choosing the logical operations applied between each pair of columns. A null value is used as false. diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_ja.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_ja.properties index fc9428001a..0beb8620a9 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_ja.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_ja.properties @@ -1,55 +1,26 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-09-02 11\:15+0000\nLast-Translator\: Siro Kida \nLanguage-Team\: Japanese (http\://www.transifex.com/projects/p/gephi/language/ja/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ja\nPlural-Forms\: nplurals\=1; plural\=0;\n - -JoinWithSeparator.name=\u533a\u5207\u308a\u5b50\u4ed8\u304d\u306e\u5024\u3092\u8ffd\u52a0 - -JoinWithSeparator.description=\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u533a\u5207\u308a\u5b50\u3092\u6301\u3064\u4efb\u610f\u306e\u578b\u306e\u5217\u306e\u5024\u3092\u7d50\u5408\u3057\u307e\u3059\u3002\u65b0\u3057\u3044\u5217\u306e\u578b\u306fSTRING\u3067\u3059\u3002 - -JoinNumberColumns.name=\u6570\u5024\u306e\u5217\u3092\u8ffd\u52a0 - -JoinNumberColumns.description=LIST_BIGDECIMAL\u578b\u3092\u6301\u3064\u65b0\u3057\u3044\u5217\u306b\u756a\u53f7/\u756a\u53f7\u30ea\u30b9\u30c8\u306e\u5217\u306e\u5024\u3092\u7d50\u5408\u3057\u307e\u3059\u3002 - -CreateTimeInterval.name=\u6642\u9593\u9593\u9694\u3092\u4f5c\u6210 - -CreateTimeInterval.description=\u958b\u59cb/\u7d42\u4e86\u6642\u523b\u3068\u3057\u30661\u307e\u305f\u306f2\u5217\u3092\u5360\u3081\u308b\u5404\u884c\u7528\u306b\u6642\u9593\u9593\u9694\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002 - -AverageNumber.name=\u5e73\u5747\u5024\u3092\u8a08\u7b97 - -AverageNumber.description=\u6570\u5024\u5217(\u6570\u5024\u307e\u305f\u306f\u6570\u5024\u306e\u30ea\u30b9\u30c8)\u306e\u5e73\u5747\u5024\u3092\u8a08\u7b97\u3059\u308b\u3002\u7d50\u679c\u3092\u5165\u308c\u305f\u65b0\u898f\u5217 (BIGDECIMAL)\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002 - -FirstQuartileNumber.name=\u7b2c\u4e00\u56db\u5206\u4f4d(Q1)\u3092\u8a08\u7b97 - -FirstQuartileNumber.description=\u6570\u5024\u5217(\u6570\u5024\u307e\u305f\u306f\u6570\u5024\u306e\u30ea\u30b9\u30c8)\u306e\u7b2c\u4e00\u56db\u5206\u4f4d(Q1)\u3092\u8a08\u7b97\u3059\u308b\u3002\u7d50\u679c\u3092\u5165\u308c\u305f\u65b0\u898f\u5217 (BIGDECIMAL)\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002 - -MedianNumber.name=\u4e2d\u592e\u5024\u3092\u8a08\u7b97 - -MedianNumber.description=\u6570\u5024\u5217(\u6570\u5024\u307e\u305f\u306f\u6570\u5024\u306e\u30ea\u30b9\u30c8)\u306e\u4e2d\u592e\u5024\u3092\u8a08\u7b97\u3059\u308b\u3002\u7d50\u679c\u3092\u5165\u308c\u305f\u65b0\u898f\u5217 (BIGDECIMAL)\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002 - -ThirdQuartileNumber.name=\u7b2c\u4e09\u56db\u5206\u4f4d(Q3)\u3092\u8a08\u7b97 - -ThirdQuartileNumber.description=\u6570\u5024\u5217(\u6570\u5024\u307e\u305f\u306f\u6570\u5024\u306e\u30ea\u30b9\u30c8)\u306e\u7b2c\u4e09\u56db\u5206\u4f4d(Q3)\u3092\u8a08\u7b97\u3059\u308b\u3002\u7d50\u679c\u3092\u5165\u308c\u305f\u65b0\u898f\u5217 (BIGDECIMAL)\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002 - -InterQuartileRangeNumber.name=\u56db\u5206\u4f4d\u7bc4\u56f2\u3092\u8a08\u7b97 (IQR) - -InterQuartileRangeNumber.description=\u6570\u5024\u5217(\u6570\u5024\u307e\u305f\u306f\u6570\u5024\u306e\u30ea\u30b9\u30c8)\u306e\u56db\u5206\u4f4d\u7bc4\u56f2 (IQR)\u3092\u8a08\u7b97\u3059\u308b\u3002\u7d50\u679c\u3092\u5165\u308c\u305f\u65b0\u898f\u5217 (BIGDECIMAL)\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002 - -SumNumbers.name=\u6570\u5024\u306e\u5408\u8a08 - -SumNumbers.description=\u6570\u5024\u5217(\u6570\u5024\u307e\u305f\u306f\u6570\u5024\u306e\u30ea\u30b9\u30c8)\u306e\u6570\u5024\u306e\u5408\u8a08\u3092\u8a08\u7b97\u3059\u308b\u3002\u7d50\u679c\u3092\u5165\u308c\u305f\u65b0\u898f\u5217 (BIGDECIMAL)\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002 - -MinimumNumber.name=\u6700\u5c0f\u5024\u3092\u8a08\u7b97 - -MinimumNumber.description=\u6570\u5024\u5217(\u6570\u5024\u307e\u305f\u306f\u6570\u5024\u306e\u30ea\u30b9\u30c8)\u306e\u6700\u5c0f\u5024\u3092\u8a08\u7b97\u3059\u308b\u3002\u7d50\u679c\u3092\u5165\u308c\u305f\u65b0\u898f\u5217 (BIGDECIMAL)\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002 - -MaximumNumber.name=\u6700\u5927\u5024\u3092\u8a08\u7b97 - -MaximumNumber.description=\u6570\u5024\u5217(\u6570\u5024\u307e\u305f\u306f\u6570\u5024\u306e\u30ea\u30b9\u30c8)\u306e\u6700\u5927\u5024\u3092\u8a08\u7b97\u3059\u308b\u3002\u7d50\u679c\u3092\u5165\u308c\u305f\u65b0\u898f\u5217 (BIGDECIMAL)\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002 - -BooleanLogicOperations.name=\u30d6\u30fc\u30eb\u5024\u306e\u5217\u3092\u7d71\u5408 - -BooleanLogicOperations.description=\u65b0\u3057\u3044\u5217\u3092\u4f5c\u308b\u305f\u3081\u306b\u9078\u629e\u3057\u305f\u9806\u306b\u3001\u5217\u306e\u5404\u30da\u30a2\u9593\u306b\u9069\u7528\u3055\u308c\u305f\u8ad6\u7406\u6f14\u7b97\u3092\u9078\u629e\u3057\u3001\u8ad6\u7406\u578b\u5217\u3092\u7d71\u5408\u3057\u307e\u3059\u3002null\u5024\u306f\u507d\u3068\u307f\u306a\u3057\u307e\u3059\u3002 +JoinWithSeparator.name=\u533a\u5207\u308a\u5b50\u4ed8\u304d\u306e\u5024\u3092\u8ffd\u52a0 +JoinWithSeparator.description=\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u533a\u5207\u308a\u5b50\u3092\u6301\u3064\u4efb\u610f\u306e\u578b\u306e\u5217\u306e\u5024\u3092\u7d50\u5408\u3057\u307e\u3059\u3002\u65b0\u3057\u3044\u5217\u306e\u578b\u306fSTRING\u3067\u3059\u3002 +JoinNumberColumns.name=\u6570\u5024\u306e\u5217\u3092\u8ffd\u52a0 +# JoinNumberColumns.description=Join the values of number/number list columns into a new column with the type double[]. +CreateTimeInterval.name=\u6642\u9593\u9593\u9694\u3092\u4f5c\u6210 +CreateTimeInterval.description=\u958b\u59cb/\u7d42\u4e86\u6642\u523b\u3068\u3057\u30661\u307e\u305f\u306f2\u5217\u3092\u5360\u3081\u308b\u5404\u884c\u7528\u306b\u6642\u9593\u9593\u9694\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002 + +AverageNumber.name=\u5e73\u5747\u5024\u3092\u8a08\u7b97 +AverageNumber.description=\u6570\u5024\u5217(\u6570\u5024\u307e\u305f\u306f\u6570\u5024\u306e\u30ea\u30b9\u30c8)\u306e\u5e73\u5747\u5024\u3092\u8a08\u7b97\u3059\u308b\u3002\u7d50\u679c\u3092\u5165\u308c\u305f\u65b0\u898f\u5217 (BIGDECIMAL)\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002 +FirstQuartileNumber.name=\u7b2c\u4e00\u56db\u5206\u4f4d(Q1)\u3092\u8a08\u7b97 +FirstQuartileNumber.description=\u6570\u5024\u5217(\u6570\u5024\u307e\u305f\u306f\u6570\u5024\u306e\u30ea\u30b9\u30c8)\u306e\u7b2c\u4e00\u56db\u5206\u4f4d(Q1)\u3092\u8a08\u7b97\u3059\u308b\u3002\u7d50\u679c\u3092\u5165\u308c\u305f\u65b0\u898f\u5217 (BIGDECIMAL)\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002 +MedianNumber.name=\u4e2d\u592e\u5024\u3092\u8a08\u7b97 +MedianNumber.description=\u6570\u5024\u5217(\u6570\u5024\u307e\u305f\u306f\u6570\u5024\u306e\u30ea\u30b9\u30c8)\u306e\u4e2d\u592e\u5024\u3092\u8a08\u7b97\u3059\u308b\u3002\u7d50\u679c\u3092\u5165\u308c\u305f\u65b0\u898f\u5217 (BIGDECIMAL)\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002 +ThirdQuartileNumber.name=\u7b2c\u4e09\u56db\u5206\u4f4d(Q3)\u3092\u8a08\u7b97 +ThirdQuartileNumber.description=\u6570\u5024\u5217(\u6570\u5024\u307e\u305f\u306f\u6570\u5024\u306e\u30ea\u30b9\u30c8)\u306e\u7b2c\u4e09\u56db\u5206\u4f4d(Q3)\u3092\u8a08\u7b97\u3059\u308b\u3002\u7d50\u679c\u3092\u5165\u308c\u305f\u65b0\u898f\u5217 (BIGDECIMAL)\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002 +InterQuartileRangeNumber.name=\u56db\u5206\u4f4d\u7bc4\u56f2\u3092\u8a08\u7b97 (IQR) +InterQuartileRangeNumber.description=\u6570\u5024\u5217(\u6570\u5024\u307e\u305f\u306f\u6570\u5024\u306e\u30ea\u30b9\u30c8)\u306e\u56db\u5206\u4f4d\u7bc4\u56f2 (IQR)\u3092\u8a08\u7b97\u3059\u308b\u3002\u7d50\u679c\u3092\u5165\u308c\u305f\u65b0\u898f\u5217 (BIGDECIMAL)\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002 +SumNumbers.name=\u6570\u5024\u306e\u5408\u8a08 +SumNumbers.description=\u6570\u5024\u5217(\u6570\u5024\u307e\u305f\u306f\u6570\u5024\u306e\u30ea\u30b9\u30c8)\u306e\u6570\u5024\u306e\u5408\u8a08\u3092\u8a08\u7b97\u3059\u308b\u3002\u7d50\u679c\u3092\u5165\u308c\u305f\u65b0\u898f\u5217 (BIGDECIMAL)\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002 +MinimumNumber.name=\u6700\u5c0f\u5024\u3092\u8a08\u7b97 +MinimumNumber.description=\u6570\u5024\u5217(\u6570\u5024\u307e\u305f\u306f\u6570\u5024\u306e\u30ea\u30b9\u30c8)\u306e\u6700\u5c0f\u5024\u3092\u8a08\u7b97\u3059\u308b\u3002\u7d50\u679c\u3092\u5165\u308c\u305f\u65b0\u898f\u5217 (BIGDECIMAL)\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002 +MaximumNumber.name=\u6700\u5927\u5024\u3092\u8a08\u7b97 +MaximumNumber.description=\u6570\u5024\u5217(\u6570\u5024\u307e\u305f\u306f\u6570\u5024\u306e\u30ea\u30b9\u30c8)\u306e\u6700\u5927\u5024\u3092\u8a08\u7b97\u3059\u308b\u3002\u7d50\u679c\u3092\u5165\u308c\u305f\u65b0\u898f\u5217 (BIGDECIMAL)\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002 + +BooleanLogicOperations.name=\u30d6\u30fc\u30eb\u5024\u306e\u5217\u3092\u7d71\u5408 +BooleanLogicOperations.description=\u65b0\u3057\u3044\u5217\u3092\u4f5c\u308b\u305f\u3081\u306b\u9078\u629e\u3057\u305f\u9806\u306b\u3001\u5217\u306e\u5404\u30da\u30a2\u9593\u306b\u9069\u7528\u3055\u308c\u305f\u8ad6\u7406\u6f14\u7b97\u3092\u9078\u629e\u3057\u3001\u8ad6\u7406\u578b\u5217\u3092\u7d71\u5408\u3057\u307e\u3059\u3002null\u5024\u306f\u507d\u3068\u307f\u306a\u3057\u307e\u3059\u3002 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_ko.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_ko.properties new file mode 100644 index 0000000000..6f97c862ff --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_ko.properties @@ -0,0 +1,26 @@ + + +JoinWithSeparator.name=\uAD6C\uBD84\uC790\uB85C \uAC12 \uD569\uCE58\uAE30 +JoinNumberColumns.name=\uC22B\uC790 \uC5F4 \uD569\uCE58\uAE30 +JoinNumberColumns.description=\uC22B\uC790/\uC22B\uC790 \uB9AC\uC2A4\uD2B8 \uC5F4\uC758 \uAC12\uC744 double[] \uD615\uC758 \uC0C8 \uC5F4\uB85C \uD569\uCE58\uAE30. +CreateTimeInterval.name=\uC2DC\uAC04 \uAC04\uACA9\uC744 \uC0DD\uC131\uD558\uAE30 +AverageNumber.name=\uD3C9\uADE0\uAC12 \uACC4\uC0B0\uD558\uAE30 +AverageNumber.description=\uC22B\uC790 \uC5F4(\uC22B\uC790 \uD639\uC740 \uC22B\uC790 \uB9AC\uC2A4\uD2B8)\uC758 \uD3C9\uADE0 \uAC12\uC744 \uACC4\uC0B0\uD558\uAE30. \uADF8 \uACB0\uACFC\uB85C \uC0C8\uB85C\uC6B4 \uC5F4(BIGDECIMAL \uD615)\uC744 \uC0DD\uC131\uD558\uAE30. +MedianNumber.name=\uC911\uC559\uAC12 \uACC4\uC0B0\uD558\uAE30 +MedianNumber.description=\uC22B\uC790 \uC5F4(\uC22B\uC790\uB098 \uC22B\uC790 \uB9AC\uC2A4\uD2B8)\uC758 \uC911\uAC04\uAC12\uC744 \uACC4\uC0B0\uD558\uAE30. \uADF8 \uACB0\uACFC\uB85C \uC0C8\uB85C\uC6B4 \uC5F4(BIGDECIMAL\uD615)\uC744 \uC0DD\uC131\uD558\uAE30. +ThirdQuartileNumber.name=\uC81C3 \uC0AC\uBD84\uC704\uC218(Q3) \uACC4\uC0B0\uD558\uAE30 +FirstQuartileNumber.name=\uC81C1 \uC0AC\uBD84\uC704\uC218(Q1) \uACC4\uC0B0\uD558\uAE30 +InterQuartileRangeNumber.name=\uC0AC\uBD84\uC704\uAC04 \uBC94\uC704(IQR) \uACC4\uC0B0\uD558\uAE30 +InterQuartileRangeNumber.description=\uC22B\uC790 \uC5F4 (\uC22B\uC790\uB098 \uC22B\uC790 \uB9AC\uC2A4\uD2B8)\uC758 \uC0AC\uBD84\uC704\uAC04 \uBC94\uC704(IQR)\uC744 \uACC4\uC0B0\uD558\uAE30. \uADF8 \uACB0\uACFC\uB85C \uC0C8\uB85C\uC6B4 \uC5F4(BIGDECIMAL\uD615)\uC744 \uC0DD\uC131\uD558\uAE30. +SumNumbers.name=\uC22B\uC790 \uAC12 \uB354\uD558\uAE30 +SumNumbers.description=\uC22B\uC790 \uC5F4 (\uC22B\uC790\uB098 \uC22B\uC790 \uB9AC\uC2A4\uD2B8)\uC758 \uD569\uC744 \uACC4\uC0B0\uD558\uAE30. \uADF8 \uACB0\uACFC\uB85C \uC0C8\uB85C\uC6B4 \uC5F4(BIGDECIMAL\uD615)\uC744 \uC0DD\uC131\uD558\uAE30. +MinimumNumber.name=\uCD5C\uC19F\uAC12\uC744 \uACC4\uC0B0\uD558\uAE30 +MinimumNumber.description=\uC22B\uC790 \uC5F4(\uC22B\uC790\uB098 \uC22B\uC790 \uB9AC\uC2A4\uD2B8)\uC758 \uCD5C\uC19F\uAC12\uC744 \uACC4\uC0B0\uD558\uAE30. \uADF8 \uACB0\uACFC\uB85C \uC0C8\uB85C\uC6B4 \uC5F4(BIGDECIMAL\uD615)\uC744 \uC0DD\uC131\uD558\uAE30. +MaximumNumber.name=\uCD5C\uB313\uAC12 \uACC4\uC0B0\uD558\uAE30 +MaximumNumber.description=\uC22B\uC790 \uC5F4(\uC22B\uC790\uB098 \uC22B\uC790 \uB9AC\uC2A4\uD2B8)\uC758 \uCD5C\uB313\uAC12\uC744 \uACC4\uC0B0\uD558\uAE30. \uADF8 \uACB0\uACFC\uB85C \uC0C8\uB85C\uC6B4 \uC5F4(BIGDECIMAL\uD615)\uC744 \uC0DD\uC131\uD558\uAE30. +BooleanLogicOperations.name=\uBD80\uC6B8\uD615 \uC5F4 \uD569\uCE58\uAE30 +BooleanLogicOperations.description=\uAC01 \uC5F4 \uC30D \uC0AC\uC774\uC5D0 \uC801\uC6A9\uB418\uB294 \uB17C\uB9AC\uC801 \uC5F0\uC0B0\uC744 \uC120\uD0DD\uD558\uC5EC, \uC120\uD0DD\uB41C \uC21C\uC11C\uB300\uB85C \uBD80\uC6B8\uD615 \uC5F4\uC744 \uBCD1\uD569\uD558\uC5EC \uC0C8\uB85C\uC6B4 \uC5F4 \uB9CC\uB4E4\uAE30. null \uAC12\uC740 false\uB85C \uC0AC\uC6A9\uB41C\uB2E4. +JoinWithSeparator.description=\uC5EC\uB7EC \uC720\uD615\uC758 \uC5F4\uC744 \uC120\uD0DD\uC801 \uAD6C\uBD84\uC790\uB85C \uD569\uCE58\uAE30. \uC0C8 \uC5F4\uC740 STRING \uD615\uC744 \uAC16\uB294\uB2E4. +CreateTimeInterval.description=\uC2DC\uC791/\uB05D \uC2DC\uAC04\uC73C\uB85C 1\uAC1C \uD639\uC740 2\uAC1C \uC5F4\uC744 \uAC16\uB294 \uAC01 \uD589\uC5D0 \uB300\uD55C \uC2DC\uAC04 \uAC04\uACA9\uC744 \uC0DD\uC131\uD558\uAE30. +FirstQuartileNumber.description=\uC22B\uC790 \uC5F4(\uC22B\uC790 \uD639\uC740 \uC22B\uC790 \uB9AC\uC2A4\uD2B8)\uC758 \uCCAB \uC0AC\uBD84\uC704\uC218(Q1)\uB97C \uACC4\uC0B0\uD558\uAE30. \uADF8 \uACB0\uACFC\uB85C \uC0C8\uB85C\uC6B4 \uC5F4(BIGDECIMAL \uD615)\uC744 \uC0DD\uC131\uD558\uAE30. +ThirdQuartileNumber.description=\uC22B\uC790 \uC5F4 (\uC22B\uC790\uB098 \uC22B\uC790 \uB9AC\uC2A4\uD2B8)\uC758 \uC81C3 \uC0AC\uBD84\uC704\uC218(Q3)\uB97C \uACC4\uC0B0\uD558\uAE30. \uADF8 \uACB0\uACFC\uB85C \uC0C8\uB85C\uC6B4 \uC5F4(BIGDECIMAL\uD615)\uC744 \uC0DD\uC131\uD558\uAE30. diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_nl.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_nl.properties new file mode 100644 index 0000000000..fa2155a884 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_nl.properties @@ -0,0 +1,24 @@ +JoinWithSeparator.name=Join values with separator +JoinWithSeparator.description=Join the values of columns of any type with an optional separator. The new column has type STRING. +JoinNumberColumns.name=Join numerical columns +JoinNumberColumns.description=Join the values of number/number list columns into a new column with the type double[]. +CreateTimeInterval.name=Create time interval +CreateTimeInterval.description=Create a time interval for each row taking 1 or 2 columns as start/end times. +AverageNumber.name=Calculate average value +AverageNumber.description=Calculate the average value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +FirstQuartileNumber.name=Calculate first quartile (Q1) +FirstQuartileNumber.description=Calculate the first quartile (Q1) value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +MedianNumber.name=Calculate median value +MedianNumber.description=Calculate the median value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +ThirdQuartileNumber.name=Calculate third quartile (Q3) +ThirdQuartileNumber.description=Calculate the third quartile (Q3) value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +InterQuartileRangeNumber.name=Calculate interquartile range (IQR) +InterQuartileRangeNumber.description=Calculate the interquartile range (IQR) value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +SumNumbers.name=Sum number values +SumNumbers.description=Calculate the sum of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +MinimumNumber.name=Calculate minimum value +MinimumNumber.description=Calculate the minimum value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +MaximumNumber.name=Calculate maximum value +MaximumNumber.description=Calculate the maximum value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +BooleanLogicOperations.name=Merge boolean columns +BooleanLogicOperations.description=Merge boolean columns in the selected order to create a new column, choosing the logical operations applied between each pair of columns. A null value is used as false. diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_pt.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_pt.properties new file mode 100644 index 0000000000..0b97451ae1 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_pt.properties @@ -0,0 +1,24 @@ +JoinWithSeparator.name=Unir valores com separador +AverageNumber.description=Calcula o valor m\u00E9dio das colunas num\u00E9ricas (n\u00FAmeros ou listas de n\u00FAmeros). Cria uma coluna nova (BIGDECIMAL) com o resultado. +ThirdQuartileNumber.description=Calcula o valor do terceiro quartil (Q3) das colunas num\u00E9ricas (n\u00FAmeros ou lista de n\u00FAmeros). Cria uma coluna nova (BIGDECIMAL) com o resultado. +InterQuartileRangeNumber.description=Calcula o valor do intervalo do interquartil (IQR) das colunas num\u00E9ricas (n\u00FAmeros ou lista de n\u00FAmeros). Cria uma coluna nova (BIGDECIMAL) com o resultado. +MinimumNumber.name=Calcular valor m\u00EDnimo +MaximumNumber.description=Calcula o valor m\u00E1ximo das colunas num\u00E9ricas (n\u00FAmeros ou listas de n\u00FAmeros). Cria uma coluna nova (BIGDECIMAL) com o resultado. +JoinWithSeparator.description=Une os valores das colunas de qualquer tipo com um separador opcional. A nova coluna ser\u00E1 do tipo STRING. +JoinNumberColumns.name=Unir colunas num\u00E9ricas +JoinNumberColumns.description=Une os valores das colunas de lista de n\u00FAmeros/n\u00FAmeros numa coluna nova com o tipo double[]. +CreateTimeInterval.name=Criar intervalo de tempo +CreateTimeInterval.description=Cria um intervalo de tempo para cada linha, usando 1 ou 2 colunas como tempos de in\u00EDcio/fim. +AverageNumber.name=Calcular valor m\u00E9dio +FirstQuartileNumber.name=Calcular primeiro quartil (Q1) +FirstQuartileNumber.description=Calcula o primeiro quartil (Q1) de todos os n\u00FAmeros nas colunas selecionadas (somente colunas num\u00E9ricas ou de listas de n\u00FAmeros) e cria uma nova coluna (BIGDECIMAL) com o resultado. +MedianNumber.name=Calcular mediana +MedianNumber.description=Calcula a mediana de todos os n\u00FAmeros nas colunas selecionadas (somente colunas num\u00E9ricas ou de listas de n\u00FAmeros) e cria uma nova coluna (BIGDECIMAL) com o resultado. +ThirdQuartileNumber.name=Calcule terceiro quartil (Q3) +InterQuartileRangeNumber.name=Calcular intervalo interquartil (IQR) +SumNumbers.name=Calcular soma +SumNumbers.description=Calcula a soma de todos os n\u00FAmeros nas colunas selecionadas (somente colunas num\u00E9ricas ou de listas de n\u00FAmeros) e cria uma nova coluna (BIGDECIMAL) com o resultado. +MinimumNumber.description=Calcula o valor m\u00EDnimo de todos os n\u00FAmeros nas colunas selecionadas (somente colunas num\u00E9ricas ou de listas de n\u00FAmeros) e cria uma nova coluna (BIGDECIMAL) com o resultado. +MaximumNumber.name=Calcular valor m\u00E1ximo +BooleanLogicOperations.name=Mesclar logicamente colunas booleanas +BooleanLogicOperations.description=Mesclar colunas booleanas na ordem selecionada para criar uma nova coluna, escolhendo as opera\u00E7\u00F5es l\u00F3gicas aplicadas a cada par de colunas. Valores nulos ser\u00E3o considerados como 'falso'. diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_pt_BR.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_pt_BR.properties index 26f0e84f4c..772e3bc2c9 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_pt_BR.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_pt_BR.properties @@ -1,55 +1,25 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# C\u00e9lio CJr , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-08 12\:08+0000\nLast-Translator\: C\u00e9lio Faria Jr. \nLanguage-Team\: Portuguese (Brazil) (http\://www.transifex.com/projects/p/gephi/language/pt_BR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt_BR\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - JoinWithSeparator.name=Unir valores com separador - -JoinWithSeparator.description=Une os valores das colunas de qualquer tipo com um separador opcional. A nova coluna ser\u00e1 do tipo STRING. - -JoinNumberColumns.name=Unir colunas num\u00e9ricas - -JoinNumberColumns.description=Une os valores de v\u00e1rias columnas num\u00e9ricas/listas de n\u00fameros criando uma nova coluna do tipo LIST_BIGDECIMAL. - +JoinWithSeparator.description=Une os valores das colunas de qualquer tipo com um separador opcional. A nova coluna serα do tipo STRING. +JoinNumberColumns.name=Unir colunas numιricas +# JoinNumberColumns.description=Join the values of number/number list columns into a new column with the type double[]. CreateTimeInterval.name=Criar intervalo de tempo - -CreateTimeInterval.description=Cria um intervalo de tempo para cada linha, usando 1 ou 2 colunas como tempos de in\u00edcio/fim. - -AverageNumber.name=Calcular valor m\u00e9dio - -AverageNumber.description=Calcula o valor m\u00e9dio de todos os n\u00fameros nas colunas selecionadas (somente colunas num\u00e9ricas ou de listas de n\u00fameros) e cria uma nova coluna (BIGDECIMAL) com o resultado. - +CreateTimeInterval.description=Cria um intervalo de tempo para cada linha, usando 1 ou 2 colunas como tempos de inνcio/fim. +AverageNumber.name=Calcular valor mιdio +AverageNumber.description=Calcula o valor m\u00E9dio das colunas num\u00E9ricas (n\u00FAmeros ou listas de n\u00FAmeros). Cria uma nova coluna (BIGDECIMAL) com o resultado. FirstQuartileNumber.name=Calcular primeiro quartil (Q1) - -FirstQuartileNumber.description=Calcula o primeiro quartil (Q1) de todos os n\u00fameros nas colunas selecionadas (somente colunas num\u00e9ricas ou de listas de n\u00fameros) e cria uma nova coluna (BIGDECIMAL) com o resultado. - +FirstQuartileNumber.description=Calcula o primeiro quartil (Q1) de todos os nϊmeros nas colunas selecionadas (somente colunas numιricas ou de listas de nϊmeros) e cria uma nova coluna (BIGDECIMAL) com o resultado. MedianNumber.name=Calcular mediana - -MedianNumber.description=Calcula a mediana de todos os n\u00fameros nas colunas selecionadas (somente colunas num\u00e9ricas ou de listas de n\u00fameros) e cria uma nova coluna (BIGDECIMAL) com o resultado. - +MedianNumber.description=Calcula a mediana de todos os nϊmeros nas colunas selecionadas (somente colunas numιricas ou de listas de nϊmeros) e cria uma nova coluna (BIGDECIMAL) com o resultado. ThirdQuartileNumber.name=Calcule terceiro quartil (Q3) - -ThirdQuartileNumber.description=Calcula o terceiro quartil (Q3) de todos os n\u00fameros nas colunas selecionadas (somente colunas num\u00e9ricas ou de listas de n\u00fameros) e cria uma nova coluna (BIGDECIMAL) com o resultado. - +ThirdQuartileNumber.description=Calcula o valor do terceiro quartil (Q3) das colunas num\u00E9ricas (n\u00FAmeros ou lista de n\u00FAmeros). Cria uma nova coluna (BIGDECIMAL) com o resultado. InterQuartileRangeNumber.name=Calcular intervalo interquartil (IQR) - -InterQuartileRangeNumber.description=Calcula o intervalo de valores interquartil (IQR) de todos os n\u00fameros nas colunas selecionadas (somente colunas num\u00e9ricas ou de listas de n\u00fameros) e cria uma nova coluna (BIGDECIMAL) com o resultado. - +InterQuartileRangeNumber.description=Calcula o valor do intervalo do interquartil (IQR) das colunas num\u00E9ricas (n\u00FAmeros ou lista de n\u00FAmeros). Cria uma nova coluna (BIGDECIMAL) com o resultado. SumNumbers.name=Calcular soma - -SumNumbers.description=Calcula a soma de todos os n\u00fameros nas colunas selecionadas (somente colunas num\u00e9ricas ou de listas de n\u00fameros) e cria uma nova coluna (BIGDECIMAL) com o resultado. - -MinimumNumber.name=Calcular valor m\u00ednimo - -MinimumNumber.description=Calcula o valor m\u00ednimo de todos os n\u00fameros nas colunas selecionadas (somente colunas num\u00e9ricas ou de listas de n\u00fameros) e cria uma nova coluna (BIGDECIMAL) com o resultado. - -MaximumNumber.name=Calcular valor m\u00e1ximo - -MaximumNumber.description=Calcula o valor m\u00e1ximo de todos os n\u00fameros nas colunas selecionadas (somente colunas num\u00e9ricas ou de listas de n\u00fameros) e cria uma nova coluna (BIGDECIMAL) com o resultado. - +SumNumbers.description=Calcula a soma de todos os nϊmeros nas colunas selecionadas (somente colunas numιricas ou de listas de nϊmeros) e cria uma nova coluna (BIGDECIMAL) com o resultado. +MinimumNumber.name=Calcular valor mνnimo +MinimumNumber.description=Calcula o valor mνnimo de todos os nϊmeros nas colunas selecionadas (somente colunas numιricas ou de listas de nϊmeros) e cria uma nova coluna (BIGDECIMAL) com o resultado. +MaximumNumber.name=Calcular valor mαximo +MaximumNumber.description=Calcula o valor m\u00E1ximo das colunas num\u00E9ricas (n\u00FAmeros ou listas de n\u00FAmeros). Cria uma nova coluna (BIGDECIMAL) com o resultado. BooleanLogicOperations.name=Mesclar logicamente colunas booleanas - -BooleanLogicOperations.description=Mesclar colunas booleanas na ordem selecionada para criar uma nova coluna, escolhendo as opera\u00e7\u00f5es l\u00f3gicas aplicadas a cada par de colunas. Valores nulos ser\u00e3o considerados como 'falso'. +BooleanLogicOperations.description=Mesclar colunas booleanas na ordem selecionada para criar uma nova coluna, escolhendo as operaηυes lσgicas aplicadas a cada par de colunas. Valores nulos serγo considerados como 'falso'. +JoinNumberColumns.description=Une os valores das colunas de lista de n\u00FAmeros/n\u00FAmeros dentro de uma nova coluna com o tipo double[]. diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_ro.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_ro.properties new file mode 100644 index 0000000000..d8a0ac980a --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_ro.properties @@ -0,0 +1,26 @@ + + +JoinWithSeparator.name=Une\u0219te valorile cu separator +JoinNumberColumns.name=Une\u0219te coloanele numerice +JoinNumberColumns.description=Une\u0219te valorile coloanelor de tip num\u0103r/list\u0103 de numere \u00EEntr-o nou\u0103 coloan\u0103 de tip double[]. +CreateTimeInterval.description=Creaz\u0103 un interval de timp pentru fiecare r\u00E2nd, lu\u00E2nd 1 sau 2 coloane ca timpi de \u00EEnceput/sf\u00E2r\u0219it. +AverageNumber.description=Calculeaz\u0103 valoarea medie a coloanelor numerice (numere sau liste de numere). Creaz\u0103 o nou\u0103 coloan\u0103 (BIGDECIMAL) cu rezultatul. +FirstQuartileNumber.name=Calculeaz\u0103 prima cuartil\u0103 (Q1) +MedianNumber.name=Calculeaz\u0103 valoarea median\u0103 +MedianNumber.description=Calculeaz\u0103 valoarea median\u0103 a coloanelor numerice (numere sau liste de numere). Creaz\u0103 o nou\u0103 coloan\u0103 (BIGDECIMAL) cu rezultatul. +InterQuartileRangeNumber.name=Calculeaz\u0103 intervalul dintre cuartile (IQR) +InterQuartileRangeNumber.description=Calculeaz\u0103 intervalul dintre cuartile (IQR) al coloanelor numerice (numere sau liste de numere). Creaz\u0103 o nou\u0103 coloan\u0103 (BIGDECIMAL) cu rezultatul. +SumNumbers.name=\u00CEnsumeaz\u0103 valorile numerice +SumNumbers.description=Calculeaz\u0103 suma coloanelor numerice (numere sau liste de numere). Creaz\u0103 o nou\u0103 coloan\u0103 (BIGDECIMAL) cu rezultatul. +MinimumNumber.name=Calculeaz\u0103 valoarea minim\u0103 +MaximumNumber.name=Calculeaz\u0103 valoarea maxim\u0103 +MaximumNumber.description=Calculeaz\u0103 valoarea maxim\u0103 a coloanelor numerice (numere sau liste de numere). Creaz\u0103 o nou\u0103 coloan\u0103 (BIGDECIMAL) cu rezultatul. +BooleanLogicOperations.name=\u00CEmbin\u0103 coloanele booleene +JoinWithSeparator.description=Une\u0219te valorile coloanelor de orice tip cu un separator op\u021Bional. Noua coloan\u0103 are tipul STRING. +AverageNumber.name=Calculeaz\u0103 valoarea medie +CreateTimeInterval.name=Creaz\u0103 un interval de timp +MinimumNumber.description=Calculeaz\u0103 valoarea minim\u0103 a coloanelor numerice (numere sau liste de numere). Creaz\u0103 o nou\u0103 coloan\u0103 (BIGDECIMAL) cu rezultatul. +FirstQuartileNumber.description=Calculeaz\u0103 prima cuartil\u0103 (Q1) a coloanelor numerice (numere sau liste de numere). Creaz\u0103 o nou\u0103 coloan\u0103 (BIGDECIMAL) cu rezultatul. +ThirdQuartileNumber.name=Calculeaz\u0103 a treia cuartil\u0103 (Q3) +ThirdQuartileNumber.description=Calculeaz\u0103 a treia cuartil\u0103 (Q3) a coloanelor numerice (numere sau liste de numere). Creaz\u0103 o nou\u0103 coloan\u0103 (BIGDECIMAL) cu rezultatul. +BooleanLogicOperations.description=\u00CEmbin\u0103 coloanele booleene \u00EEn ordinea selectat\u0103 pentru a crea o nou\u0103 coloan\u0103, aleg\u00E2nd opera\u021Biile logice aplicate \u00EEntre fiecare pereche de coloane. O valoare nul\u0103 este utilizat\u0103 pe post de fals. diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_ru.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_ru.properties index 76a2d79fd2..c670945085 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_ru.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_ru.properties @@ -1,55 +1,26 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 14\:29+0000\nLast-Translator\: gephi \nLanguage-Team\: Russian (http\://www.transifex.com/projects/p/gephi/language/ru/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ru\nPlural-Forms\: nplurals\=3; plural\=(n%10\=\=1 && n%100\!\=11 ? 0 \: n%10>\=2 && n%10<\=4 && (n%100<10 || n%100>\=20) ? 1 \: 2);\n - -JoinWithSeparator.name=\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c - -JoinWithSeparator.description=\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430, \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c (\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043f\u0443\u0441\u0442\u043e\u0439) \u043c\u0435\u0436\u0434\u0443 \u043a\u0430\u0436\u0434\u044b\u043c\u0438 \u0434\u0432\u0443\u043c\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438. \u041d\u043e\u0432\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0438\u043c\u0435\u0435\u0442 \u0442\u0438\u043f STRING. - -JoinNumberColumns.name=\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0438\u043b\u0438 \u0441\u043f\u0438\u0441\u043a\u0430\u043c\u0438 \u0447\u0438\u0441\u0435\u043b - -JoinNumberColumns.description=\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0438\u043b\u0438 \u0441\u043f\u0438\u0441\u043a\u0430\u043c\u0438 \u0447\u0438\u0441\u0435\u043b \u0432 \u043d\u043e\u0432\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u043f\u0438\u0441\u043a\u0430\u043c\u0438 \u0447\u0438\u0441\u0435\u043b \u0438 \u0438\u043c\u0435\u044e\u0442 \u0442\u0438\u043f LIST_BIGDECIMAL. - -CreateTimeInterval.name=\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 - -CreateTimeInterval.description=\u0421\u043e\u0437\u0434\u0430\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u043b\u0438 \u0434\u0432\u0443\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432, \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044f \u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u0430\u043a \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. - -AverageNumber.name=\u0420\u0430\u0441\u0447\u0451\u0442 \u0441\u0440\u0435\u0434\u043d\u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f - -AverageNumber.description=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044f\u0447\u0435\u0435\u043a \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u0445 (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0438 \u0441\u043f\u0438\u0441\u043a\u0430\u043c\u0438 \u0447\u0438\u0441\u0435\u043b) \u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043d\u043e\u0432\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 (BIGDECIMAL) \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438. - -FirstQuartileNumber.name=\u0420\u0430\u0441\u0447\u0451\u0442 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u0432\u0430\u0440\u0442\u0438\u043b\u044f (Q1) - -FirstQuartileNumber.description=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u043a\u0432\u0430\u0440\u0442\u0438\u043b\u044c (Q1) \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u0445 (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0438 \u0441\u043f\u0438\u0441\u043a\u0430\u043c\u0438 \u0447\u0438\u0441\u0435\u043b) \u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043d\u043e\u0432\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 (BIGDECIMAL) \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438. - -MedianNumber.name=\u0420\u0430\u0441\u0447\u0451\u0442 \u043c\u0435\u0434\u0438\u0430\u043d\u044b - -MedianNumber.description=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u043c\u0435\u0434\u0438\u0430\u043d\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u0445 (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0438 \u0441\u043f\u0438\u0441\u043a\u0430\u043c\u0438 \u0447\u0438\u0441\u0435\u043b) \u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043d\u043e\u0432\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 (BIGDECIMAL) \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438. - -ThirdQuartileNumber.name=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0442\u0440\u0435\u0442\u0438\u0439 \u043a\u0432\u0430\u0440\u0442\u0438\u043b\u044c (Q3) \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u0445 (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0438 \u0441\u043f\u0438\u0441\u043a\u0430\u043c\u0438 \u0447\u0438\u0441\u0435\u043b) \u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043d\u043e\u0432\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 (BIGDECIMAL) \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438. - -ThirdQuartileNumber.description=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0442\u0440\u0435\u0442\u0438\u0439 \u043a\u0432\u0430\u0440\u0442\u0438\u043b\u044c (Q3) \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u0445 (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0438 \u0441\u043f\u0438\u0441\u043a\u0430\u043c\u0438 \u0447\u0438\u0441\u0435\u043b) \u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043d\u043e\u0432\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 (BIGDECIMAL) \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438. - -InterQuartileRangeNumber.name=\u0420\u0430\u0441\u0447\u0451\u0442 \u043c\u0435\u0436\u043a\u0432\u0430\u0440\u0442\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0430\u0445\u0430 - -InterQuartileRangeNumber.description=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u043c\u0435\u0436\u043a\u0432\u0430\u0440\u0442\u0438\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0430\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u0445 (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0438 \u0441\u043f\u0438\u0441\u043a\u0430\u043c\u0438 \u0447\u0438\u0441\u0435\u043b) \u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043d\u043e\u0432\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 (BIGDECIMAL) \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438. - -SumNumbers.name=\u0420\u0430\u0441\u0447\u0451\u0442 \u0441\u0443\u043c\u043c\u044b - -SumNumbers.description=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0441\u0443\u043c\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u0445 (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0438 \u0441\u043f\u0438\u0441\u043a\u0430\u043c\u0438 \u0447\u0438\u0441\u0435\u043b) \u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043d\u043e\u0432\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 (BIGDECIMAL) \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438. - -MinimumNumber.name=\u0420\u0430\u0441\u0447\u0451\u0442 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f - -MinimumNumber.description=\u0418\u0449\u0435\u0442 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u0445 (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0438 \u0441\u043f\u0438\u0441\u043a\u0430\u043c\u0438 \u0447\u0438\u0441\u0435\u043b) \u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043d\u043e\u0432\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 (BIGDECIMAL) \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438. - -MaximumNumber.name=\u0420\u0430\u0441\u0447\u0451\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f - -MaximumNumber.description=\u0418\u0449\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u0445 (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0438 \u0441\u043f\u0438\u0441\u043a\u0430\u043c\u0438 \u0447\u0438\u0441\u0435\u043b) \u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043d\u043e\u0432\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 (BIGDECIMAL) \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438. - -BooleanLogicOperations.name=\u041b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 - -BooleanLogicOperations.description=\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0441 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u0430\u0440\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439. \u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043a\u0430\u043a false. +JoinWithSeparator.name=\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c +JoinWithSeparator.description=\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430, \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c (\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043f\u0443\u0441\u0442\u043e\u0439) \u043c\u0435\u0436\u0434\u0443 \u043a\u0430\u0436\u0434\u044b\u043c\u0438 \u0434\u0432\u0443\u043c\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438. \u041d\u043e\u0432\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0438\u043c\u0435\u0435\u0442 \u0442\u0438\u043f STRING. +JoinNumberColumns.name=\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0438\u043b\u0438 \u0441\u043f\u0438\u0441\u043a\u0430\u043c\u0438 \u0447\u0438\u0441\u0435\u043b +# JoinNumberColumns.description=Join the values of number/number list columns into a new column with the type double[]. +CreateTimeInterval.name=\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 +CreateTimeInterval.description=\u0421\u043e\u0437\u0434\u0430\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u043b\u0438 \u0434\u0432\u0443\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432, \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044f \u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u0430\u043a \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. + +AverageNumber.name=\u0420\u0430\u0441\u0447\u0451\u0442 \u0441\u0440\u0435\u0434\u043d\u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f +AverageNumber.description=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044f\u0447\u0435\u0435\u043a \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u0445 (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0438 \u0441\u043f\u0438\u0441\u043a\u0430\u043c\u0438 \u0447\u0438\u0441\u0435\u043b) \u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043d\u043e\u0432\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 (BIGDECIMAL) \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438. +FirstQuartileNumber.name=\u0420\u0430\u0441\u0447\u0451\u0442 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u0432\u0430\u0440\u0442\u0438\u043b\u044f (Q1) +FirstQuartileNumber.description=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u043a\u0432\u0430\u0440\u0442\u0438\u043b\u044c (Q1) \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u0445 (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0438 \u0441\u043f\u0438\u0441\u043a\u0430\u043c\u0438 \u0447\u0438\u0441\u0435\u043b) \u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043d\u043e\u0432\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 (BIGDECIMAL) \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438. +MedianNumber.name=\u0420\u0430\u0441\u0447\u0451\u0442 \u043c\u0435\u0434\u0438\u0430\u043d\u044b +MedianNumber.description=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u043c\u0435\u0434\u0438\u0430\u043d\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u0445 (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0438 \u0441\u043f\u0438\u0441\u043a\u0430\u043c\u0438 \u0447\u0438\u0441\u0435\u043b) \u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043d\u043e\u0432\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 (BIGDECIMAL) \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438. +ThirdQuartileNumber.name=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0442\u0440\u0435\u0442\u0438\u0439 \u043a\u0432\u0430\u0440\u0442\u0438\u043b\u044c (Q3) \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u0445 (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0438 \u0441\u043f\u0438\u0441\u043a\u0430\u043c\u0438 \u0447\u0438\u0441\u0435\u043b) \u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043d\u043e\u0432\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 (BIGDECIMAL) \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438. +ThirdQuartileNumber.description=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0442\u0440\u0435\u0442\u0438\u0439 \u043a\u0432\u0430\u0440\u0442\u0438\u043b\u044c (Q3) \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u0445 (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0438 \u0441\u043f\u0438\u0441\u043a\u0430\u043c\u0438 \u0447\u0438\u0441\u0435\u043b) \u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043d\u043e\u0432\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 (BIGDECIMAL) \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438. +InterQuartileRangeNumber.name=\u0420\u0430\u0441\u0447\u0451\u0442 \u043c\u0435\u0436\u043a\u0432\u0430\u0440\u0442\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0430\u0445\u0430 +InterQuartileRangeNumber.description=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u043c\u0435\u0436\u043a\u0432\u0430\u0440\u0442\u0438\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0430\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u0445 (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0438 \u0441\u043f\u0438\u0441\u043a\u0430\u043c\u0438 \u0447\u0438\u0441\u0435\u043b) \u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043d\u043e\u0432\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 (BIGDECIMAL) \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438. +SumNumbers.name=\u0420\u0430\u0441\u0447\u0451\u0442 \u0441\u0443\u043c\u043c\u044b +SumNumbers.description=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0441\u0443\u043c\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u0445 (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0438 \u0441\u043f\u0438\u0441\u043a\u0430\u043c\u0438 \u0447\u0438\u0441\u0435\u043b) \u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043d\u043e\u0432\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 (BIGDECIMAL) \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438. +MinimumNumber.name=\u0420\u0430\u0441\u0447\u0451\u0442 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f +MinimumNumber.description=\u0418\u0449\u0435\u0442 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u0445 (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0438 \u0441\u043f\u0438\u0441\u043a\u0430\u043c\u0438 \u0447\u0438\u0441\u0435\u043b) \u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043d\u043e\u0432\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 (BIGDECIMAL) \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438. +MaximumNumber.name=\u0420\u0430\u0441\u0447\u0451\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f +MaximumNumber.description=\u0418\u0449\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u0445 (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0438 \u0441\u043f\u0438\u0441\u043a\u0430\u043c\u0438 \u0447\u0438\u0441\u0435\u043b) \u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043d\u043e\u0432\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 (BIGDECIMAL) \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438. + +BooleanLogicOperations.name=\u041b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 +BooleanLogicOperations.description=\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0441 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u0430\u0440\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439. \u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043a\u0430\u043a false. diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_th.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_th.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_th.properties @@ -0,0 +1 @@ + diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_tr.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_tr.properties new file mode 100644 index 0000000000..977e722fcd --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_tr.properties @@ -0,0 +1,24 @@ +JoinWithSeparator.name=Ayraη ile de\u011ferleri birle\u015ftir +JoinWithSeparator.description=Join the values of columns of any type with an optional separator. The new column has type STRING. +JoinNumberColumns.name=Join numerical columns +JoinNumberColumns.description=Join the values of number/number list columns into a new column with the type double[]. +CreateTimeInterval.name=Create time interval +CreateTimeInterval.description=Create a time interval for each row taking 1 or 2 columns as start/end times. +AverageNumber.name=Calculate average value +AverageNumber.description=Calculate the average value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +FirstQuartileNumber.name=Calculate first quartile (Q1) +FirstQuartileNumber.description=Calculate the first quartile (Q1) value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +MedianNumber.name=Calculate median value +MedianNumber.description=Calculate the median value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +ThirdQuartileNumber.name=Calculate third quartile (Q3) +ThirdQuartileNumber.description=Calculate the third quartile (Q3) value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +InterQuartileRangeNumber.name=Calculate interquartile range (IQR) +InterQuartileRangeNumber.description=Calculate the interquartile range (IQR) value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +SumNumbers.name=Sum number values +SumNumbers.description=Calculate the sum of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +MinimumNumber.name=Calculate minimum value +MinimumNumber.description=Calculate the minimum value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +MaximumNumber.name=Calculate maximum value +MaximumNumber.description=Calculate the maximum value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +BooleanLogicOperations.name=Merge boolean columns +BooleanLogicOperations.description=Merge boolean columns in the selected order to create a new column, choosing the logical operations applied between each pair of columns. A null value is used as false. diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_zh_CN.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_zh_CN.properties index fecaa3c26c..c941f3ff5b 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_zh_CN.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_zh_CN.properties @@ -1,54 +1,25 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-08 00\:19+0000\nLast-Translator\: gephi \nLanguage-Team\: Chinese (China) (http\://www.transifex.com/projects/p/gephi/language/zh_CN/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: zh_CN\nPlural-Forms\: nplurals\=1; plural\=0;\n - -JoinWithSeparator.name=\u52a0\u5165\u6570\u503c\uff0c\u5206\u9694\u7b26\u9694\u5f00 - +JoinWithSeparator.name=\u52A0\u5165\u6570\u503C\uFF0C\u5E76\u7528\u5206\u9694\u7B26\u9694\u5F00 JoinWithSeparator.description=\u7528\u4e00\u4e2a\u53ef\u9009\u7684\u5206\u9694\u7b26\u52a0\u5165\u4efb\u4f55\u7c7b\u578b\u7684\u5217\u7684\u503c\u3002\u65b0\u5217\u7c7b\u578b\u4e3a\u5b57\u7b26\u4e32\u3002 - JoinNumberColumns.name=\u52a0\u5165\u6570\u503c\u5217 - -JoinNumberColumns.description=\u52a0\u5165\u5230\u4e00\u4e2a\u540c\u7c7b\u578bLIST_BIGDECIMAL\u7684\u65b0\u5217\u7f16\u53f7/\u5217\u8868\u4e2d\u7684\u5217\u7684\u503c\u3002 - +# JoinNumberColumns.description=Join the values of number/number list columns into a new column with the type double[]. CreateTimeInterval.name=\u521b\u5efa\u65f6\u95f4\u95f4\u9694 - -CreateTimeInterval.description=\u4e3a1\u62162\u5217\u7684\u6bcf\u4e00\u884c\u521b\u5efa\u65f6\u95f4\u95f4\u9694\u4e3a\u5f00\u59cb/\u7ed3\u675f\u65f6\u95f4\u3002 - +CreateTimeInterval.description=\u4E3A\u6BCF\u4E00\u884C\u521B\u5EFA\u4E00\u4E2A\u65F6\u95F4\u95F4\u9694\uFF0C\u4EE51\u62162\u5217\u4F5C\u4E3A\u5F00\u59CB/\u7ED3\u675F\u65F6\u95F4\u3002 AverageNumber.name=\u8ba1\u7b97\u5e73\u5747\u503c - -AverageNumber.description=\u8ba1\u7b97\u5e73\u5747\u503c\u7684\u6570\u503c\u5217\uff08\u6570\u5b57\u6216\u6570\u5b57\u5217\u8868\uff09\u3002\u7528\u6b64\u7ed3\u679c\u521b\u5efa\u4e00\u4e2a\u65b0\u5217\uff08BigDecimal\uff09\u3002 - -FirstQuartileNumber.name=\u8ba1\u7b97\u7b2c\u4e00\u56db\u5206\u4f4d\u6570\uff08Q1\uff09 - -FirstQuartileNumber.description=\u8ba1\u7b97\u7b2c\u4e00\u56db\u5206\u4f4d\u6570\uff08Q1\uff09\u503c\u7684\u6570\u503c\u5217\uff08\u6570\u5b57\u6216\u6570\u5b57\u5217\u8868\uff09\u3002\u7528\u6b64\u7ed3\u679c\u521b\u5efa\u4e00\u4e2a\u65b0\u5217\uff08BigDecimal\uff09\u3002 - +AverageNumber.description=\u8BA1\u7B97\u6570\u503C\u5217\uFF08\u6570\u5B57\u6216\u6570\u5B57\u5217\u8868\uFF09\u7684\u5E73\u5747\u503C\u3002\u4EE5\u6B64\u7ED3\u679C\u521B\u5EFA\u4E00\u4E2A\u65B0\u5217 \uFF08BIGDECIMAL\uFF09\u3002 +FirstQuartileNumber.name=\u8BA1\u7B97\u7B2C\u4E00\u56DB\u5206\u4F4D\u6570\uFF08Q1\uFF09 +FirstQuartileNumber.description=\u8BA1\u7B97\u6570\u503C\u5217\uFF08\u6570\u5B57\u6216\u6570\u5B57\u5217\u8868\uFF09\u7684\u7B2C\u4E00\u56DB\u5206\u4F4D\u6570\uFF08Q1\uFF09\u503C\u3002\u4EE5\u6B64\u7ED3\u679C\u521B\u5EFA\u4E00\u4E2A\u65B0\u5217\uFF08BIGDECIMAL\uFF09\u3002 MedianNumber.name=\u8ba1\u7b97\u4e2d\u95f4\u503c - -MedianNumber.description=\u4e2d\u503c\u8ba1\u7b97\u7684\u6570\u503c\u5217\uff08\u6570\u5b57\u6216\u6570\u5b57\u5217\u8868\uff09\u3002\u4ee5\u6b64\u7ed3\u679c\u521b\u5efa\u4e00\u4e2a\u65b0\u5217\uff08BigDecimal\uff09\u3002 - +MedianNumber.description=\u8BA1\u7B97\u6570\u503C\u5217\uFF08\u6570\u5B57\u6216\u6570\u5B57\u5217\u8868\uFF09\u7684\u4E2D\u95F4\u503C\u3002\u4EE5\u6B64\u7ED3\u679C\u521B\u5EFA\u4E00\u4E2A\u65B0\u5217\uFF08BIGDECIMAL\uFF09\u3002 ThirdQuartileNumber.name=\u8ba1\u7b97\u7b2c\u4e09\u56db\u5206\u4f4d\u6570\uff08Q3\uff09 - -ThirdQuartileNumber.description=\u8ba1\u7b97\u6570\u503c\u5217\uff08\u6570\u5b57\u6216\u6570\u5b57\u5217\u8868\uff09\u7b2c\u4e09\u56db\u5206\u4f4d\u6570\uff08Q3\uff09\u7684\u4ef7\u503c\u3002\u4ee5\u6b64\u7ed3\u679c\u521b\u5efa\u4e00\u4e2a\u65b0\u5217\uff08BigDecimal\uff09\u3002 - -InterQuartileRangeNumber.name=\u8ba1\u7b97\u56db\u5206\u4f4d\u8ddd\uff08IQR\uff09 - -InterQuartileRangeNumber.description=\u8ba1\u7b97\u6570\u503c\u5217\uff08\u6570\u5b57\u6216\u6570\u5b57\u5217\u8868\uff09\u7684\u56db\u5206\u4f4d\u8ddd\uff08IQR\uff09\u503c\u3002\u4ee5\u6b64\u7ed3\u679c\u521b\u5efa\u4e00\u4e2a\u65b0\u5217\uff08BigDecimal\uff09\u3002 - +ThirdQuartileNumber.description=\u8BA1\u7B97\u6570\u503C\u5217\uFF08\u6570\u5B57\u6216\u6570\u5B57\u5217\u8868\uFF09\u7684\u7B2C\u4E09\u56DB\u5206\u4F4D\u6570(Q3)\u503C\u3002\u4EE5\u6B64\u7ED3\u679C\u521B\u5EFA\u4E00\u4E2A\u65B0\u5217\uFF08BIGDECIMAL\uFF09\u3002 +InterQuartileRangeNumber.name=\u8BA1\u7B97\u56DB\u5206\u4F4D\u5DEE\uFF08IQR\uFF09 +InterQuartileRangeNumber.description=\u8BA1\u7B97\u6570\u503C\u5217\uFF08\u6570\u5B57\u6216\u6570\u5B57\u5217\u8868\uFF09\u7684\u56DB\u5206\u4F4D\u5DEE\uFF08IQR\uFF09\u503C\u3002\u4EE5\u6B64\u7ED3\u679C\u521B\u5EFA\u4E00\u4E2A\u65B0\u5217\uFF08BIGDECIMAL\uFF09\u3002 SumNumbers.name=\u6570\u503c\u603b\u548c - -SumNumbers.description=\u8ba1\u7b97\u7684\u6570\u503c\u5217\uff08\u6570\u5b57\u6216\u6570\u5b57\u5217\u8868\uff09\u7684\u603b\u548c\u3002\u4ee5\u6b64\u7ed3\u679c\u521b\u5efa\u4e00\u4e2a\u65b0\u5217\uff08BigDecimal\uff09\u3002 - +SumNumbers.description=\u8BA1\u7B97\u6570\u503C\u5217\uFF08\u6570\u5B57\u6216\u6570\u5B57\u5217\u8868\uFF09\u7684\u603B\u548C\u3002\u4EE5\u6B64\u7ED3\u679C\u521B\u5EFA\u4E00\u4E2A\u65B0\u5217\uFF08BIGDECIMAL\uFF09\u3002 MinimumNumber.name=\u8ba1\u7b97\u6700\u5c0f\u503c - -MinimumNumber.description=\u8ba1\u7b97\u7684\u6570\u503c\u5217\uff08\u6570\u5b57\u6216\u6570\u5b57\u5217\u8868\uff09\u7684\u6700\u4f4e\u503c\u3002\u4ee5\u6b64\u7ed3\u679c\u521b\u5efa\u4e00\u4e2a\u65b0\u5217\uff08BigDecimal\uff09\u3002 - +MinimumNumber.description=\u8BA1\u7B97\u6570\u503C\u5217\uFF08\u6570\u5B57\u6216\u6570\u5B57\u5217\u8868\uFF09\u7684\u6700\u5C0F\u503C\u3002\u4EE5\u6B64\u7ED3\u679C\u521B\u5EFA\u4E00\u4E2A\u65B0\u5217\uFF08BIGDECIMAL\uFF09\u3002 MaximumNumber.name=\u8ba1\u7b97\u6700\u5927\u503c - -MaximumNumber.description=\u8ba1\u7b97\u7684\u6570\u503c\u5217\uff08\u6570\u5b57\u6216\u6570\u5b57\u5217\u8868\uff09\u7684\u6700\u5927\u503c\u3002\u4ee5\u6b64\u7ed3\u679c\u521b\u5efa\u4e00\u4e2a\u65b0\u5217\uff08BigDecimal\uff09\u3002 - +MaximumNumber.description=\u8BA1\u7B97\u6570\u503C\u5217\uFF08\u6570\u5B57\u6216\u6570\u5B57\u5217\u8868\uFF09\u7684\u6700\u5927\u503C\u3002\u4EE5\u6B64\u7ED3\u679C\u521B\u5EFA\u4E00\u4E2A\u65B0\u5217\uFF08BIGDECIMAL\uFF09\u3002 BooleanLogicOperations.name=\u5408\u5e76\u5e03\u5c14\u5217 - -BooleanLogicOperations.description=\u5408\u5e76\u5e03\u5c14\u5217\uff0c\u5728\u9009\u5b9a\u7684\u4ee5\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u5217\u7684\u9009\u62e9\u5e94\u7528\u4e8e\u6bcf\u5217\u4e4b\u95f4\u7684\u903b\u8f91\u8fd0\u7b97\u3002 null\u503c\u7528\u4e3a\u5047\u3002 +BooleanLogicOperations.description=\u6309\u7167\u9009\u5B9A\u7684\u987A\u5E8F\u5408\u5E76\u5E03\u5C14\u503C\u5217\uFF0C\u4EE5\u521B\u5EFA\u4E00\u4E2A\u65B0\u7684\u5217\uFF0C\u9009\u62E9\u6BCF\u5BF9\u5217\u4E4B\u95F4\u5E94\u7528\u7684\u903B\u8F91\u64CD\u4F5C\u3002\u7A7A\u503C\u88AB\u5F53\u4F5C\u5047\u503C\u4F7F\u7528\u3002 +JoinNumberColumns.description=\u5C06\u6570\u5B57/\u6570\u5B57\u5217\u8868\u7684\u5217\u7684\u503C\u52A0\u5165\u5230\u4E00\u4E2A\u7C7B\u578B\u4E3Adouble[]\u7684\u65B0\u5217\u3002 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_zh_TW.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_zh_TW.properties new file mode 100644 index 0000000000..fa2155a884 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/Bundle_zh_TW.properties @@ -0,0 +1,24 @@ +JoinWithSeparator.name=Join values with separator +JoinWithSeparator.description=Join the values of columns of any type with an optional separator. The new column has type STRING. +JoinNumberColumns.name=Join numerical columns +JoinNumberColumns.description=Join the values of number/number list columns into a new column with the type double[]. +CreateTimeInterval.name=Create time interval +CreateTimeInterval.description=Create a time interval for each row taking 1 or 2 columns as start/end times. +AverageNumber.name=Calculate average value +AverageNumber.description=Calculate the average value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +FirstQuartileNumber.name=Calculate first quartile (Q1) +FirstQuartileNumber.description=Calculate the first quartile (Q1) value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +MedianNumber.name=Calculate median value +MedianNumber.description=Calculate the median value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +ThirdQuartileNumber.name=Calculate third quartile (Q3) +ThirdQuartileNumber.description=Calculate the third quartile (Q3) value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +InterQuartileRangeNumber.name=Calculate interquartile range (IQR) +InterQuartileRangeNumber.description=Calculate the interquartile range (IQR) value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +SumNumbers.name=Sum number values +SumNumbers.description=Calculate the sum of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +MinimumNumber.name=Calculate minimum value +MinimumNumber.description=Calculate the minimum value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +MaximumNumber.name=Calculate maximum value +MaximumNumber.description=Calculate the maximum value of numerical columns (number or number list). Create a new column (BIGDECIMAL) with the result. +BooleanLogicOperations.name=Merge boolean columns +BooleanLogicOperations.description=Merge boolean columns in the selected order to create a new column, choosing the logical operations applied between each pair of columns. A null value is used as false. diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/cs.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/cs.po deleted file mode 100644 index 832924a897..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/cs.po +++ /dev/null @@ -1,91 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# ZbynΔ›k Schwarz , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-02-28 20:48+0000\n" -"Last-Translator: ZbynΔ›k Schwarz \n" -"Language-Team: Czech (http://www.transifex.com/projects/p/gephi/language/cs/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: cs\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" - -msgid "JoinWithSeparator.name" -msgstr "Spojit hodnoty oddΔ›lovačem" - -msgid "JoinWithSeparator.description" -msgstr "SpojΓ­ hodnoty sloupcΕ― jakΓ©hokoliv typu nepovinnΓ½m oddΔ›lovačem. NovΓ½ sloupec mΓ‘ typ STRING." - -msgid "JoinNumberColumns.name" -msgstr "Spojit číselnΓ© sloupce" - -msgid "JoinNumberColumns.description" -msgstr "SpojΓ­ hodnoty číselnΓ½ch sloupcΕ―/sloupcΕ― seznamu číseldo novΓ©ho sloupce s typem LIST_BIGDECIMAL." - -msgid "CreateTimeInterval.name" -msgstr "VytvoΕ™it časovΓ½ interval" - -msgid "CreateTimeInterval.description" -msgstr "VytvoΕ™it časovΓ½ interval pro kaΕΎdΓ½ Ε™Γ‘dek, kterΓ½ pouΕΎΓ­vΓ‘ 1 nebo 2 sloupce jako doba začÑtku/konce." - -msgid "AverageNumber.name" -msgstr "Vypočítat prΕ―mΔ›rnou hodnotu" - -msgid "AverageNumber.description" -msgstr "VypočítΓ‘ prΕ―mΔ›rnou hodnotu číselnΓ½ch sloupcΕ― (číselnΓ© nebo seznam čísel). VytvoΕ™Γ­ novΓ½ sloupec (BIGDECIMAL) s vΓ½sledkem." - -msgid "FirstQuartileNumber.name" -msgstr "Vypočítat prvnΓ­ kvartil (Q1)" - -msgid "FirstQuartileNumber.description" -msgstr "VypočítΓ‘ hodnotu prvnΓ­ho kvartilu (Q1) číselnΓ½ch sloupcΕ― (číselnΓ© nebo seznam čísel). VytvoΕ™Γ­ novΓ½ sloupec (BIGDECIMAL) s vΓ½sledkem." - -msgid "MedianNumber.name" -msgstr "VypočítΓ‘ hodnotu mediΓ‘nu" - -msgid "MedianNumber.description" -msgstr "VypočítΓ‘ hodnotu mediΓ‘nu číselnΓ½ch sloupcΕ― (číselnΓ© nebo seznam čísel). VytvoΕ™Γ­ novΓ½ sloupec (BIGDECIMAL) s vΓ½sledkem." - -msgid "ThirdQuartileNumber.name" -msgstr "Vypočítat prvnΓ­ kvartil (Q3)" - -msgid "ThirdQuartileNumber.description" -msgstr "VypočítΓ‘ hodnotu prvnΓ­ho kvartilu (Q3) číselnΓ½ch sloupcΕ― (číselnΓ© nebo seznam čísel). VytvoΕ™Γ­ novΓ½ sloupec (BIGDECIMAL) s vΓ½sledkem." - -msgid "InterQuartileRangeNumber.name" -msgstr "Vypočítat mezikvartilnΓ­ rozsah (IQR)" - -msgid "InterQuartileRangeNumber.description" -msgstr "VypočítΓ‘ hodnotu mezikvartilnΓ­ho rozsahu (Q1) číselnΓ½ch sloupcΕ― (číselnΓ© nebo seznam čísel). VytvoΕ™Γ­ novΓ½ sloupec (BIGDECIMAL) s vΓ½sledkem." - -msgid "SumNumbers.name" -msgstr "Součet číselnΓ½ch hodnot" - -msgid "SumNumbers.description" -msgstr "VypočítΓ‘ součet číselnΓ½ch sloupcΕ― (číselnΓ© nebo seznam čísel). VytvoΕ™Γ­ novΓ½ sloupec (BIGDECIMAL) s vΓ½sledkem." - -msgid "MinimumNumber.name" -msgstr "Vypočítat minimΓ‘lnΓ­ hodnotu" - -msgid "MinimumNumber.description" -msgstr "VypočítΓ‘ minimΓ‘lnΓ­ hodnotu číselnΓ½ch sloupcΕ― (číselnΓ© nebo seznam čísel). VytvoΕ™Γ­ novΓ½ sloupec (BIGDECIMAL) s vΓ½sledkem." - -msgid "MaximumNumber.name" -msgstr "Vypočítat maximΓ‘lnΓ­ hodnotu" - -msgid "MaximumNumber.description" -msgstr "VypočítΓ‘ maximΓ‘lnΓ­ hodnotu číselnΓ½ch sloupcΕ― (číselnΓ© nebo seznam čísel). VytvoΕ™Γ­ novΓ½ sloupec (BIGDECIMAL) s vΓ½sledkem." - -msgid "BooleanLogicOperations.name" -msgstr "Sloučit booleovskΓ© sloupce" - -msgid "BooleanLogicOperations.description" -msgstr "Sloučí booleovskΓ© sloupce ve zvolenΓ©m poΕ™adΓ­ pro vytvoΕ™enΓ­ novΓ©ho volenΓ­m logickΓ© operace, kterΓ‘ je pouΕΎita na kaΕΎdΓ½ pΓ‘r sloupcΕ―. PrΓ‘zdnΓ‘ hodnota se pouΕΎΓ­vΓ‘ jako nepravda" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/es.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/es.po deleted file mode 100644 index 9f097001e4..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/es.po +++ /dev/null @@ -1,91 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 14:29+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/gephi/language/es/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -msgid "JoinWithSeparator.name" -msgstr "Unir valores con separador" - -msgid "JoinWithSeparator.description" -msgstr "Une los valores de columnas de cualquier tipo con el separador proporcionado (o sin separador) entre cada par de columnas. La nueva columna tendrΓ‘ tipo STRING." - -msgid "JoinNumberColumns.name" -msgstr "Unir columnas numΓ©ricas" - -msgid "JoinNumberColumns.description" -msgstr "Une los valores de varias columnas numΓ©ricas/listas de nΓΊmeros creando una nueva columna con el tipo LIST_BIGDECIMAL." - -msgid "CreateTimeInterval.name" -msgstr "Crear intΓ©rvalo de tiempo" - -msgid "CreateTimeInterval.description" -msgstr "Crea un intΓ©rvalo de tiempo para cada fila tomando 1 o 2 columnas como tiempos de inicio/final y usando los tiempos por defecto indicados." - -msgid "AverageNumber.name" -msgstr "Calcular valor medio" - -msgid "AverageNumber.description" -msgstr "Calcula el valor medio de todos los nΓΊmeros en las columnas escogidas (solamente columnas numΓ©ricas o de listas de nΓΊmeros) y crea una nueva columna (BIGDECIMAL) con el resultado." - -msgid "FirstQuartileNumber.name" -msgstr "Calcular primer cuartil (Q1)" - -msgid "FirstQuartileNumber.description" -msgstr "Calcula el primer cuartil (Q1) de todos los nΓΊmeros en las columnas escogidas (solamente columnas numΓ©ricas o de listas de nΓΊmeros) y crea una nueva columna (BIGDECIMAL) con el resultado." - -msgid "MedianNumber.name" -msgstr "Calcular mediana" - -msgid "MedianNumber.description" -msgstr "Calcula la mediana de todos los nΓΊmeros en las columnas escogidas (solamente columnas numΓ©ricas o de listas de nΓΊmeros) y crea una nueva columna (BIGDECIMAL) con el resultado." - -msgid "ThirdQuartileNumber.name" -msgstr "Calcular tercer cuartil (Q3)" - -msgid "ThirdQuartileNumber.description" -msgstr "Calcula el tercer cuartil (Q3) de todos los nΓΊmeros en las columnas escogidas (solamente columnas numΓ©ricas o de listas de nΓΊmeros) y crea una nueva columna (BIGDECIMAL) con el resultado." - -msgid "InterQuartileRangeNumber.name" -msgstr "Calcular rango intercuartΓ­lico (IQR)" - -msgid "InterQuartileRangeNumber.description" -msgstr "Calcula el rango intercuartΓ­lico (IQR) de todos los nΓΊmeros en las columnas escogidas (solamente columnas numΓ©ricas o de listas de nΓΊmeros) y crea una nueva columna (BIGDECIMAL) con el resultado." - -msgid "SumNumbers.name" -msgstr "Calcular suma" - -msgid "SumNumbers.description" -msgstr "Calcula la suma de todos los nΓΊmeros en las columnas escogidas (solamente columnas numΓ©ricas o de listas de nΓΊmeros) y crea una nueva columna (BIGDECIMAL) con el resultado." - -msgid "MinimumNumber.name" -msgstr "Calcular valor mΓ­nimo" - -msgid "MinimumNumber.description" -msgstr "Calcula el valor mΓ­nimo de todos los nΓΊmeros en las columnas escogidas (solamente columnas numΓ©ricas o de listas de nΓΊmeros) y crea una nueva columna (BIGDECIMAL) con el resultado." - -msgid "MaximumNumber.name" -msgstr "Calcular valor mΓ‘ximo" - -msgid "MaximumNumber.description" -msgstr "Calcula el valor mΓ‘ximo de todos los nΓΊmeros en las columnas escogidas (solamente columnas numΓ©ricas o de listas de nΓΊmeros) y crea una nueva columna (BIGDECIMAL) con el resultado." - -msgid "BooleanLogicOperations.name" -msgstr "Mezcla lΓ³gica de columnas booleanas" - -msgid "BooleanLogicOperations.description" -msgstr "Mezcla varias columnas booleanas en el orden seleccionado para crear una nueva columna, pudiendo elegir las operaciones lΓ³gicas realizadas entre cada par de columnas. Si cualquier valor es nulo, 'false' serΓ‘ usado en su lugar." diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/fr.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/fr.po deleted file mode 100644 index 4fe89ee5a3..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/fr.po +++ /dev/null @@ -1,91 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 14:29+0000\n" -"Last-Translator: gephi \n" -"Language-Team: French (http://www.transifex.com/projects/p/gephi/language/fr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "JoinWithSeparator.name" -msgstr "Jointure avec sΓ©parateur" - -msgid "JoinWithSeparator.description" -msgstr "Fusionne les valeurs de n'importe quelles colonnes avec un sΓ©parateur (optionnel) entre elles. La colonne ainsi créée est de type STRING." - -msgid "JoinNumberColumns.name" -msgstr "Jointure numΓ©rique" - -msgid "JoinNumberColumns.description" -msgstr "Créé une colonne de liste de nombres de type LIST_BIGDECIMAL." - -msgid "CreateTimeInterval.name" -msgstr "CrΓ©er un intervalle temporel" - -msgid "CreateTimeInterval.description" -msgstr "Créé un intervalle temporel pour chaque ligne. Un ou deux colonnes servent de dΓ©but/fin." - -msgid "AverageNumber.name" -msgstr "Calcule la moyenne" - -msgid "AverageNumber.description" -msgstr "Calcule la valeur moyenne d'une colonne numΓ©rique. Créé une colonne de type BIGDECIMAL contenant le rΓ©sultat." - -msgid "FirstQuartileNumber.name" -msgstr "Calcule le premier quartile (Q1)" - -msgid "FirstQuartileNumber.description" -msgstr "Calcule le premier quartile (Q1) d'une colonne numΓ©rique. Créé une colonne de type BIGDECIMAL contenant le rΓ©sultat." - -msgid "MedianNumber.name" -msgstr "Calcule la mΓ©diane" - -msgid "MedianNumber.description" -msgstr "Calcule la valeur mΓ©diane d'une colonne numΓ©rique. Créé une colonne de type BIGDECIMAL contenant le rΓ©sultat." - -msgid "ThirdQuartileNumber.name" -msgstr "Calcule le troisiΓ¨me quartile (Q3)" - -msgid "ThirdQuartileNumber.description" -msgstr "Calcule le troisiΓ¨me quartile (Q3) d'une colonne numΓ©rique. Créé une colonne de type BIGDECIMAL contenant le rΓ©sultat." - -msgid "InterQuartileRangeNumber.name" -msgstr "Calcule l'Γ©cart interquartile (IQR)" - -msgid "InterQuartileRangeNumber.description" -msgstr "Calcule l'Γ©cart interquartile (IQR) d'une colonne numΓ©rique. Créé une colonne de type BIGDECIMAL contenant le rΓ©sultat." - -msgid "SumNumbers.name" -msgstr "Calcule la somme" - -msgid "SumNumbers.description" -msgstr "Calcule la somme d'une colonne numΓ©rique. Créé une colonne de type BIGDECIMAL contenant le rΓ©sultat." - -msgid "MinimumNumber.name" -msgstr "Calcule le minimum" - -msgid "MinimumNumber.description" -msgstr "Calcule le minimum d'une colonne numΓ©rique. Créé une colonne de type BIGDECIMAL contenant le rΓ©sultat." - -msgid "MaximumNumber.name" -msgstr "Calcule la valeur maximale" - -msgid "MaximumNumber.description" -msgstr "Calcule la valeur maximale d'une colonne numΓ©rique, et créé une nouvelle colonne de type BIGDECIMAL contenant le rΓ©sultat." - -msgid "BooleanLogicOperations.name" -msgstr "Fusion de colonnes boolΓ©ennes" - -msgid "BooleanLogicOperations.description" -msgstr "Fusionne des colonnes boolΓ©ennes dans une nouvelle, selon une opΓ©ration logique entre chaque pair de colonnes. Les valeurs nulles sont interprΓ©tΓ©es comme fausses." diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ja.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ja.po deleted file mode 100644 index 07b57ba586..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ja.po +++ /dev/null @@ -1,91 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-09-02 11:15+0000\n" -"Last-Translator: Siro Kida \n" -"Language-Team: Japanese (http://www.transifex.com/projects/p/gephi/language/ja/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ja\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "JoinWithSeparator.name" -msgstr "εŒΊεˆ‡γ‚Šε­δ»˜γγε€€γ‚’θΏ½εŠ " - -msgid "JoinWithSeparator.description" -msgstr "γ‚ͺプションγεŒΊεˆ‡γ‚Šε­γ‚’ζŒγ€δ»»ζ„γεž‹γεˆ—γε€€γ‚’η΅εˆγ—γΎγ™γ€‚ζ–°γ—γ„εˆ—γεž‹γ―STRINGです。" - -msgid "JoinNumberColumns.name" -msgstr "ζ•°ε€€γεˆ—γ‚’θΏ½εŠ " - -msgid "JoinNumberColumns.description" -msgstr "LIST_BIGDECIMALεž‹γ‚’ζŒγ€ζ–°γ—γ„εˆ—γ«η•ͺ号/η•ͺ号γƒͺγ‚Ήγƒˆγεˆ—γε€€γ‚’η΅εˆγ—γΎγ™γ€‚" - -msgid "CreateTimeInterval.name" -msgstr "ζ™‚ι–“ι–“ιš”γ‚’δ½œζˆ" - -msgid "CreateTimeInterval.description" -msgstr "ι–‹ε§‹/η΅‚δΊ†ζ™‚εˆ»γ¨γ—γ¦1または2εˆ—γ‚’ε γ‚γ‚‹ε„θ‘Œη”¨γ«ζ™‚ι–“ι–“ιš”γ‚’δ½œζˆγ—γΎγ™γ€‚" - -msgid "AverageNumber.name" -msgstr "εΉ³ε‡ε€€γ‚’θ¨ˆη—" - -msgid "AverageNumber.description" -msgstr "ζ•°ε€€εˆ—(ζ•°ε€€γΎγŸγ―ζ•°ε€€γγƒͺγ‚Ήγƒˆ)γεΉ³ε‡ε€€γ‚’θ¨ˆη—γ™γ‚‹γ€‚η΅ζžœγ‚’ε…₯γ‚ŒγŸζ–°θ¦εˆ— (BIGDECIMAL)γ‚’δ½œζˆγ—γΎγ™γ€‚" - -msgid "FirstQuartileNumber.name" -msgstr "η¬¬δΈ€ε››εˆ†δ½(Q1)γ‚’θ¨ˆη—" - -msgid "FirstQuartileNumber.description" -msgstr "ζ•°ε€€εˆ—(ζ•°ε€€γΎγŸγ―ζ•°ε€€γγƒͺγ‚Ήγƒˆ)γη¬¬δΈ€ε››εˆ†δ½(Q1)γ‚’θ¨ˆη—γ™γ‚‹γ€‚η΅ζžœγ‚’ε…₯γ‚ŒγŸζ–°θ¦εˆ— (BIGDECIMAL)γ‚’δ½œζˆγ—γΎγ™γ€‚" - -msgid "MedianNumber.name" -msgstr "δΈ­ε€ε€€γ‚’θ¨ˆη—" - -msgid "MedianNumber.description" -msgstr "ζ•°ε€€εˆ—(ζ•°ε€€γΎγŸγ―ζ•°ε€€γγƒͺγ‚Ήγƒˆ)γδΈ­ε€ε€€γ‚’θ¨ˆη—γ™γ‚‹γ€‚η΅ζžœγ‚’ε…₯γ‚ŒγŸζ–°θ¦εˆ— (BIGDECIMAL)γ‚’δ½œζˆγ—γΎγ™γ€‚" - -msgid "ThirdQuartileNumber.name" -msgstr "η¬¬δΈ‰ε››εˆ†δ½(Q3)γ‚’θ¨ˆη—" - -msgid "ThirdQuartileNumber.description" -msgstr "ζ•°ε€€εˆ—(ζ•°ε€€γΎγŸγ―ζ•°ε€€γγƒͺγ‚Ήγƒˆ)γη¬¬δΈ‰ε››εˆ†δ½(Q3)γ‚’θ¨ˆη—γ™γ‚‹γ€‚η΅ζžœγ‚’ε…₯γ‚ŒγŸζ–°θ¦εˆ— (BIGDECIMAL)γ‚’δ½œζˆγ—γΎγ™γ€‚" - -msgid "InterQuartileRangeNumber.name" -msgstr "ε››εˆ†δ½η―„ε›²γ‚’θ¨ˆη— (IQR)" - -msgid "InterQuartileRangeNumber.description" -msgstr "ζ•°ε€€εˆ—(ζ•°ε€€γΎγŸγ―ζ•°ε€€γγƒͺγ‚Ήγƒˆ)γε››εˆ†δ½η―„ε›² (IQR)γ‚’θ¨ˆη—γ™γ‚‹γ€‚η΅ζžœγ‚’ε…₯γ‚ŒγŸζ–°θ¦εˆ— (BIGDECIMAL)γ‚’δ½œζˆγ—γΎγ™γ€‚" - -msgid "SumNumbers.name" -msgstr "ζ•°ε€€γεˆθ¨ˆ" - -msgid "SumNumbers.description" -msgstr "ζ•°ε€€εˆ—(ζ•°ε€€γΎγŸγ―ζ•°ε€€γγƒͺγ‚Ήγƒˆ)γζ•°ε€€γεˆθ¨ˆγ‚’θ¨ˆη—γ™γ‚‹γ€‚η΅ζžœγ‚’ε…₯γ‚ŒγŸζ–°θ¦εˆ— (BIGDECIMAL)γ‚’δ½œζˆγ—γΎγ™γ€‚" - -msgid "MinimumNumber.name" -msgstr "ζœ€ε°ε€€γ‚’θ¨ˆη—" - -msgid "MinimumNumber.description" -msgstr "ζ•°ε€€εˆ—(ζ•°ε€€γΎγŸγ―ζ•°ε€€γγƒͺγ‚Ήγƒˆ)γζœ€ε°ε€€γ‚’θ¨ˆη—γ™γ‚‹γ€‚η΅ζžœγ‚’ε…₯γ‚ŒγŸζ–°θ¦εˆ— (BIGDECIMAL)γ‚’δ½œζˆγ—γΎγ™γ€‚" - -msgid "MaximumNumber.name" -msgstr "ζœ€ε€§ε€€γ‚’θ¨ˆη—" - -msgid "MaximumNumber.description" -msgstr "ζ•°ε€€εˆ—(ζ•°ε€€γΎγŸγ―ζ•°ε€€γγƒͺγ‚Ήγƒˆ)γζœ€ε€§ε€€γ‚’θ¨ˆη—γ™γ‚‹γ€‚η΅ζžœγ‚’ε…₯γ‚ŒγŸζ–°θ¦εˆ— (BIGDECIMAL)γ‚’δ½œζˆγ—γΎγ™γ€‚" - -msgid "BooleanLogicOperations.name" -msgstr "ブール倀γεˆ—γ‚’η΅±εˆ" - -msgid "BooleanLogicOperations.description" -msgstr "ζ–°γ—γ„εˆ—γ‚’δ½œγ‚‹γŸγ‚γ«ιΈζŠžγ—γŸι †γ«γ€εˆ—γε„γƒšγ‚’ι–“γ«ι©η”¨γ•γ‚ŒγŸθ«–η†ζΌ”η—γ‚’ιΈζŠžγ—γ€θ«–η†εž‹εˆ—γ‚’η΅±εˆγ—γΎγ™γ€‚null倀は偽とみγͺします。" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/org-gephi-datalab-plugin-manipulators-columns-merge.pot b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/org-gephi-datalab-plugin-manipulators-columns-merge.pot deleted file mode 100644 index 5e1b6d37a7..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/org-gephi-datalab-plugin-manipulators-columns-merge.pot +++ /dev/null @@ -1,112 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# Gephi Team , 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: Gephi 0.8\n" -"Report-Msgid-Bugs-To: gephi.team@lists.launchpad.net\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-05 14:52+0200\n" -"Last-Translator: Mathieu Bastian \n" -"Language-Team: English \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "JoinWithSeparator.name" -msgstr "Join values with separator" - -msgid "JoinWithSeparator.description" -msgstr "" -"Join the values of columns of any type with an optional separator. The new " -"column has type STRING." - -msgid "JoinNumberColumns.name" -msgstr "Join numerical columns" - -msgid "JoinNumberColumns.description" -msgstr "" -"Join the values of number/number list columns into a new column with the " -"type LIST_BIGDECIMAL." - -msgid "CreateTimeInterval.name" -msgstr "Create time interval" - -msgid "CreateTimeInterval.description" -msgstr "" -"Create a time interval for each row taking 1 or 2 columns as start/end times." - -msgid "AverageNumber.name" -msgstr "Calculate average value" - -msgid "AverageNumber.description" -msgstr "" -"Calculate the average value of numerical columns (number or number list). " -"Create a new column (BIGDECIMAL) with the result." - -msgid "FirstQuartileNumber.name" -msgstr "Calculate first quartile (Q1)" - -msgid "FirstQuartileNumber.description" -msgstr "" -"Calculate the first quartile (Q1) value of numerical columns (number or " -"number list). Create a new column (BIGDECIMAL) with the result." - -msgid "MedianNumber.name" -msgstr "Calculate median value" - -msgid "MedianNumber.description" -msgstr "" -"Calculate the median value of numerical columns (number or number list). " -"Create a new column (BIGDECIMAL) with the result." - -msgid "ThirdQuartileNumber.name" -msgstr "Calculate third quartile (Q3)" - -msgid "ThirdQuartileNumber.description" -msgstr "" -"Calculate the third quartile (Q3) value of numerical columns (number or " -"number list). Create a new column (BIGDECIMAL) with the result." - -msgid "InterQuartileRangeNumber.name" -msgstr "Calculate interquartile range (IQR)" - -msgid "InterQuartileRangeNumber.description" -msgstr "" -"Calculate the interquartile range (IQR) value of numerical columns (number " -"or number list). Create a new column (BIGDECIMAL) with the result." - -msgid "SumNumbers.name" -msgstr "Sum number values" - -msgid "SumNumbers.description" -msgstr "" -"Calculate the sum of numerical columns (number or number list). Create a new " -"column (BIGDECIMAL) with the result." - -msgid "MinimumNumber.name" -msgstr "Calculate minimum value" - -msgid "MinimumNumber.description" -msgstr "" -"Calculate the minimum value of numerical columns (number or number list). " -"Create a new column (BIGDECIMAL) with the result." - -msgid "MaximumNumber.name" -msgstr "Calculate maximum value" - -msgid "MaximumNumber.description" -msgstr "" -"Calculate the maximum value of numerical columns (number or number list). " -"Create a new column (BIGDECIMAL) with the result." - -msgid "BooleanLogicOperations.name" -msgstr "Merge boolean columns" - -msgid "BooleanLogicOperations.description" -msgstr "" -"Merge boolean columns in the selected order to create a new column, choosing " -"the logical operations applied between each pair of columns. A null value is " -"used as false." diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/pt_BR.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/pt_BR.po deleted file mode 100644 index 9e68c3bfa5..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/pt_BR.po +++ /dev/null @@ -1,91 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# CΓ©lio CJr , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-08 12:08+0000\n" -"Last-Translator: CΓ©lio Faria Jr. \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/gephi/language/pt_BR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "JoinWithSeparator.name" -msgstr "Unir valores com separador" - -msgid "JoinWithSeparator.description" -msgstr "Une os valores das colunas de qualquer tipo com um separador opcional. A nova coluna serΓ‘ do tipo STRING." - -msgid "JoinNumberColumns.name" -msgstr "Unir colunas numΓ©ricas" - -msgid "JoinNumberColumns.description" -msgstr "Une os valores de vΓ‘rias columnas numΓ©ricas/listas de nΓΊmeros criando uma nova coluna do tipo LIST_BIGDECIMAL." - -msgid "CreateTimeInterval.name" -msgstr "Criar intervalo de tempo" - -msgid "CreateTimeInterval.description" -msgstr "Cria um intervalo de tempo para cada linha, usando 1 ou 2 colunas como tempos de inΓ­cio/fim." - -msgid "AverageNumber.name" -msgstr "Calcular valor mΓ©dio" - -msgid "AverageNumber.description" -msgstr "Calcula o valor mΓ©dio de todos os nΓΊmeros nas colunas selecionadas (somente colunas numΓ©ricas ou de listas de nΓΊmeros) e cria uma nova coluna (BIGDECIMAL) com o resultado." - -msgid "FirstQuartileNumber.name" -msgstr "Calcular primeiro quartil (Q1)" - -msgid "FirstQuartileNumber.description" -msgstr "Calcula o primeiro quartil (Q1) de todos os nΓΊmeros nas colunas selecionadas (somente colunas numΓ©ricas ou de listas de nΓΊmeros) e cria uma nova coluna (BIGDECIMAL) com o resultado." - -msgid "MedianNumber.name" -msgstr "Calcular mediana" - -msgid "MedianNumber.description" -msgstr "Calcula a mediana de todos os nΓΊmeros nas colunas selecionadas (somente colunas numΓ©ricas ou de listas de nΓΊmeros) e cria uma nova coluna (BIGDECIMAL) com o resultado." - -msgid "ThirdQuartileNumber.name" -msgstr "Calcule terceiro quartil (Q3)" - -msgid "ThirdQuartileNumber.description" -msgstr "Calcula o terceiro quartil (Q3) de todos os nΓΊmeros nas colunas selecionadas (somente colunas numΓ©ricas ou de listas de nΓΊmeros) e cria uma nova coluna (BIGDECIMAL) com o resultado." - -msgid "InterQuartileRangeNumber.name" -msgstr "Calcular intervalo interquartil (IQR)" - -msgid "InterQuartileRangeNumber.description" -msgstr "Calcula o intervalo de valores interquartil (IQR) de todos os nΓΊmeros nas colunas selecionadas (somente colunas numΓ©ricas ou de listas de nΓΊmeros) e cria uma nova coluna (BIGDECIMAL) com o resultado." - -msgid "SumNumbers.name" -msgstr "Calcular soma" - -msgid "SumNumbers.description" -msgstr "Calcula a soma de todos os nΓΊmeros nas colunas selecionadas (somente colunas numΓ©ricas ou de listas de nΓΊmeros) e cria uma nova coluna (BIGDECIMAL) com o resultado." - -msgid "MinimumNumber.name" -msgstr "Calcular valor mΓ­nimo" - -msgid "MinimumNumber.description" -msgstr "Calcula o valor mΓ­nimo de todos os nΓΊmeros nas colunas selecionadas (somente colunas numΓ©ricas ou de listas de nΓΊmeros) e cria uma nova coluna (BIGDECIMAL) com o resultado." - -msgid "MaximumNumber.name" -msgstr "Calcular valor mΓ‘ximo" - -msgid "MaximumNumber.description" -msgstr "Calcula o valor mΓ‘ximo de todos os nΓΊmeros nas colunas selecionadas (somente colunas numΓ©ricas ou de listas de nΓΊmeros) e cria uma nova coluna (BIGDECIMAL) com o resultado." - -msgid "BooleanLogicOperations.name" -msgstr "Mesclar logicamente colunas booleanas" - -msgid "BooleanLogicOperations.description" -msgstr "Mesclar colunas booleanas na ordem selecionada para criar uma nova coluna, escolhendo as operaΓ§Γ΅es lΓ³gicas aplicadas a cada par de colunas. Valores nulos serΓ£o considerados como 'falso'." diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ru.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ru.po deleted file mode 100644 index acff3c73cb..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ru.po +++ /dev/null @@ -1,91 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 14:29+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Russian (http://www.transifex.com/projects/p/gephi/language/ru/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -msgid "JoinWithSeparator.name" -msgstr "ОбъСдинСниС столбцов Ρ‡Π΅Ρ€Π΅Π· Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ" - -msgid "JoinWithSeparator.description" -msgstr "ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ значСния столбцов ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, вставляя ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, пустой) ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌΠΈ двумя значСниями. Новый столбСц ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ STRING." - -msgid "JoinNumberColumns.name" -msgstr "ОбъСдинСниС столбцов с числами ΠΈΠ»ΠΈ списками чисСл" - -msgid "JoinNumberColumns.description" -msgstr "ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ значСния столбцов с числами ΠΈΠ»ΠΈ списками чисСл Π² Π½ΠΎΠ²Ρ‹ΠΉ столбСц, значСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ списками чисСл ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΈΠΏ LIST_BIGDECIMAL." - -msgid "CreateTimeInterval.name" -msgstr "Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ" - -msgid "CreateTimeInterval.description" -msgstr "Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° основС ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π΄Π²ΡƒΡ… столбцов, рассматривая ΠΈΡ… значСния ΠΊΠ°ΠΊ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π° ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ." - -msgid "AverageNumber.name" -msgstr "Расчёт срСднСго значСния" - -msgid "AverageNumber.description" -msgstr "РассчитываСт срСднСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ячССк Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… столбцах (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для столбцов с числами ΠΈ списками чисСл) ΠΈ создаёт Π½ΠΎΠ²Ρ‹ΠΉ столбСц (BIGDECIMAL) с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌΠΈ значСниями." - -msgid "FirstQuartileNumber.name" -msgstr "Расчёт ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ квартиля (Q1)" - -msgid "FirstQuartileNumber.description" -msgstr "РассчитываСт ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠ²Π°Ρ€Ρ‚ΠΈΠ»ΡŒ (Q1) Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… столбцах (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для столбцов с числами ΠΈ списками чисСл) ΠΈ создаёт Π½ΠΎΠ²Ρ‹ΠΉ столбСц (BIGDECIMAL) с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌΠΈ значСниями." - -msgid "MedianNumber.name" -msgstr "Расчёт ΠΌΠ΅Π΄ΠΈΠ°Π½Ρ‹" - -msgid "MedianNumber.description" -msgstr "РассчитываСт ΠΌΠ΅Π΄ΠΈΠ°Π½Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… столбцах (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для столбцов с числами ΠΈ списками чисСл) ΠΈ создаёт Π½ΠΎΠ²Ρ‹ΠΉ столбСц (BIGDECIMAL) с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌΠΈ значСниями." - -msgid "ThirdQuartileNumber.name" -msgstr "РассчитываСт Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ΠΊΠ²Π°Ρ€Ρ‚ΠΈΠ»ΡŒ (Q3) Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… столбцах (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для столбцов с числами ΠΈ списками чисСл) ΠΈ создаёт Π½ΠΎΠ²Ρ‹ΠΉ столбСц (BIGDECIMAL) с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌΠΈ значСниями." - -msgid "ThirdQuartileNumber.description" -msgstr "РассчитываСт Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ΠΊΠ²Π°Ρ€Ρ‚ΠΈΠ»ΡŒ (Q3) Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… столбцах (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для столбцов с числами ΠΈ списками чисСл) ΠΈ создаёт Π½ΠΎΠ²Ρ‹ΠΉ столбСц (BIGDECIMAL) с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌΠΈ значСниями." - -msgid "InterQuartileRangeNumber.name" -msgstr "Расчёт ΠΌΠ΅ΠΆΠΊΠ²Π°Ρ€Ρ‚ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ°Ρ…Π°" - -msgid "InterQuartileRangeNumber.description" -msgstr "РассчитываСт ΠΌΠ΅ΠΆΠΊΠ²Π°Ρ€Ρ‚ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ°Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… столбцах (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для столбцов с числами ΠΈ списками чисСл) ΠΈ создаёт Π½ΠΎΠ²Ρ‹ΠΉ столбСц (BIGDECIMAL) с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌΠΈ значСниями." - -msgid "SumNumbers.name" -msgstr "Расчёт суммы" - -msgid "SumNumbers.description" -msgstr "РассчитываСт сумму Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… столбцах (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для столбцов с числами ΠΈ списками чисСл) ΠΈ создаёт Π½ΠΎΠ²Ρ‹ΠΉ столбСц (BIGDECIMAL) с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌΠΈ значСниями." - -msgid "MinimumNumber.name" -msgstr "Расчёт минимального значСния" - -msgid "MinimumNumber.description" -msgstr "Π˜Ρ‰Π΅Ρ‚ минимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… столбцах (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для столбцов с числами ΠΈ списками чисСл) ΠΈ создаёт Π½ΠΎΠ²Ρ‹ΠΉ столбСц (BIGDECIMAL) с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌΠΈ значСниями." - -msgid "MaximumNumber.name" -msgstr "Расчёт максимального значСния" - -msgid "MaximumNumber.description" -msgstr "Π˜Ρ‰Π΅Ρ‚ максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… столбцах (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для столбцов с числами ΠΈ списками чисСл) ΠΈ создаёт Π½ΠΎΠ²Ρ‹ΠΉ столбСц (BIGDECIMAL) с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌΠΈ значСниями." - -msgid "BooleanLogicOperations.name" -msgstr "ЛогичСскоС объСдинСниС столбцов" - -msgid "BooleanLogicOperations.description" -msgstr "ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ нСсколько столбцов с логичСскими значСниями Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ порядкС для создания Π½ΠΎΠ²ΠΎΠ³ΠΎ столбца, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ логичСский ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ для объСдинСния ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°Ρ€Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ значСния ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ false." diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_ar.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_ar.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_ar.properties @@ -0,0 +1 @@ + diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_ca.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_ca.properties new file mode 100644 index 0000000000..7cc7bf1536 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_ca.properties @@ -0,0 +1,24 @@ +BooleanLogicOperationsUI.descriptionLabel.text=
    Tria les operacions lςgiques entre cada parell de columnes
    +BooleanLogicOperationsUI.titleLabel.text=Tνtol de la nova columna +JoinWithSeparatorUI.titleLabel.text=Tνtol de la nova columna +JoinWithSeparatorUI.separatorLabel.text=Text separador: +JoinWithSeparatorUI.separatorText.text= +BooleanLogicOperationsUI.titleTextField.text= +JoinWithSeparatorUI.titleTextField.text= +GeneralColumnTitleChooserUI.titleLabel.text=Tνtol de la nova columna +GeneralColumnTitleChooserUI.titleTextField.text= +CreateTimeIntervalUI.startColumnLabel.text=Start time column: +CreateTimeIntervalUI.endColumnLabel.text=End time column: +CreateTimeIntervalUI.header.title=Time Interval creation options +CreateTimeIntervalUI.header.description=Tria les columnes per utilitzar-les com a temps d'inici o finalitzaciσ.
    Tambι pots fixar temps d'inici o finalitzaciσ per defecte, que s'utilitzaran si hi ha algun error o falta alguna dada; si no estΰ configurat, s'utilitzarΰ l'infinit +CreateTimeIntervalUI.parseDatesRadioButton.text=Parse dates +CreateTimeIntervalUI.parseNumbersRadioButton.text=Parse numbers +CreateTimeIntervalUI.dateDefaultStartLabel.text=Temps d'inici per defecte +CreateTimeIntervalUI.dateDefaultEndLabel.text=Temps de finalitzaciσ per defecte: +CreateTimeIntervalUI.dateFormatLabel.text=Format de la data: +CreateTimeIntervalUI.defaultStartNumberText.text= +CreateTimeIntervalUI.defaultEndNumberText.text= +CreateTimeIntervalUI.defaultStartNumberLabel.text=Temps d'inici per defecte +CreateTimeIntervalUI.defaultEndNumberLabel.text=Temps de finalitzaciσ per defecte: +CreateTimeIntervalUI.invalid.dateformat=El format de data no ιs vΰlid +CreateTimeIntervalUI.invalid.number=El nombre no ιs vΰlid diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_cs.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_cs.properties index c3538e0a61..58bfd2523a 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_cs.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_cs.properties @@ -1,43 +1,24 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Zbyn\u011bk Schwarz , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-12-31 01\:16+0000\nLast-Translator\: Eduardo Ramos \nLanguage-Team\: Czech (http\://www.transifex.com/projects/p/gephi/language/cs/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: cs\nPlural-Forms\: nplurals\=3; plural\=(n\=\=1) ? 0 \: (n>\=2 && n<\=4) ? 1 \: 2;\n - -BooleanLogicOperationsUI.descriptionLabel.text=
    Zvolte logick\u00e9 operace mezi ka\u017ed\u00fdm p\u00e1rem sloupc\u016f
    - -BooleanLogicOperationsUI.titleLabel.text=Nov\u00fd n\u00e1zev sloupce\: - -JoinWithSeparatorUI.titleLabel.text=Nov\u00fd n\u00e1zev sloupce\: - -JoinWithSeparatorUI.separatorLabel.text=Text odd\u011blova\u010de - -GeneralColumnTitleChooserUI.titleLabel.text=Nov\u00fd n\u00e1zev sloupce\: - -CreateTimeIntervalUI.startColumnLabel.text=\u010cas \u010dasu spu\u0161t\u011bn\u00ed\: - -CreateTimeIntervalUI.endColumnLabel.text=Sloupec \u010dasu dokon\u010den\u00ed\: - -CreateTimeIntervalUI.header.title=Mo\u017enosti vytvo\u0159en\u00ed \u010dasov\u00e9ho intervalu - -CreateTimeIntervalUI.header.description=Zvolte sloupce, kter\u00e9 budou pou\u017eity jako \u010dasy spu\u0161t\u011bn\u00ed/dokon\u010den\u00ed.
    Tak\u00e9 m\u016f\u017eete zvolit v\u00fdchoz\u00ed pou\u017eit\u00e9 \u010dasy spu\u0161t\u011bn\u00ed a dokon\u010den\u00ed kdy\u017e hodnoty nejsou spr\u00e1vn\u011b nebo chyb\u011bj\u00ed, jinak bude m\u00edsto toho pou\u017eito nekone\u010dno. - -CreateTimeIntervalUI.parseDatesRadioButton.text=Zpracovat data - -CreateTimeIntervalUI.parseNumbersRadioButton.text=Zpracovat \u010d\u00edsla - -CreateTimeIntervalUI.dateDefaultStartLabel.text=V\u00fdchoz\u00ed \u010das spu\u0161t\u011bn\u00ed\: - -CreateTimeIntervalUI.dateDefaultEndLabel.text=V\u00fdchoz\u00ed \u010das dokon\u010den\u00ed\: - -CreateTimeIntervalUI.dateFormatLabel.text=Form\u00e1t data\: - -CreateTimeIntervalUI.defaultStartNumberLabel.text=V\u00fdchoz\u00ed \u010das spu\u0161t\u011bn\u00ed\: - -CreateTimeIntervalUI.defaultEndNumberLabel.text=V\u00fdchoz\u00ed \u010das dokon\u010den\u00ed\: - -!CreateTimeIntervalUI.invalid.dateformat= - -!CreateTimeIntervalUI.invalid.number= +BooleanLogicOperationsUI.descriptionLabel.text=
    Zvolte logickι operace mezi ka\u017edύm pαrem sloupc\u016f
    +BooleanLogicOperationsUI.titleLabel.text=Novύ nαzev sloupce: +JoinWithSeparatorUI.titleLabel.text=Novύ nαzev sloupce: +JoinWithSeparatorUI.separatorLabel.text=Text odd\u011blova\u010de +JoinWithSeparatorUI.separatorText.text= +BooleanLogicOperationsUI.titleTextField.text= +JoinWithSeparatorUI.titleTextField.text= +GeneralColumnTitleChooserUI.titleLabel.text=Novύ nαzev sloupce: +GeneralColumnTitleChooserUI.titleTextField.text= +CreateTimeIntervalUI.startColumnLabel.text=\u010cas \u010dasu spu\u0161t\u011bnν: +CreateTimeIntervalUI.endColumnLabel.text=Sloupec \u010dasu dokon\u010denν: +CreateTimeIntervalUI.header.title=Mo\u017enosti vytvo\u0159enν \u010dasovιho intervalu +CreateTimeIntervalUI.header.description=Zvolte sloupce, kterι budou pou\u017eity jako \u010dasy spu\u0161t\u011bnν/dokon\u010denν.
    Takι m\u016f\u017eete zvolit vύchozν pou\u017eitι \u010dasy spu\u0161t\u011bnν a dokon\u010denν kdy\u017e hodnoty nejsou sprαvn\u011b nebo chyb\u011bjν, jinak bude mνsto toho pou\u017eito nekone\u010dno. +CreateTimeIntervalUI.parseDatesRadioButton.text=Zpracovat data +CreateTimeIntervalUI.parseNumbersRadioButton.text=Zpracovat \u010dνsla +CreateTimeIntervalUI.dateDefaultStartLabel.text=Vύchozν \u010das spu\u0161t\u011bnν: +CreateTimeIntervalUI.dateDefaultEndLabel.text=Vύchozν \u010das dokon\u010denν: +CreateTimeIntervalUI.dateFormatLabel.text=Formαt data: +CreateTimeIntervalUI.defaultStartNumberText.text= +CreateTimeIntervalUI.defaultEndNumberText.text= +CreateTimeIntervalUI.defaultStartNumberLabel.text=Vύchozν \u010das spu\u0161t\u011bnν: +CreateTimeIntervalUI.defaultEndNumberLabel.text=Vύchozν \u010das dokon\u010denν: +CreateTimeIntervalUI.invalid.dateformat=Neplatnύ formαt data +CreateTimeIntervalUI.invalid.number=Neplatnι \u010dνslo diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_de.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_de.properties new file mode 100644 index 0000000000..21db07c3ca --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_de.properties @@ -0,0 +1,24 @@ +BooleanLogicOperationsUI.descriptionLabel.text=
    Wδhlen Sie die logischen Operationen zwischen jedem Spaltenpaar
    +BooleanLogicOperationsUI.titleLabel.text=Titel der neuen Spalte: +JoinWithSeparatorUI.titleLabel.text=Titel der neuen Spalte: +JoinWithSeparatorUI.separatorLabel.text=Trenner-Text: +JoinWithSeparatorUI.separatorText.text= +BooleanLogicOperationsUI.titleTextField.text= +JoinWithSeparatorUI.titleTextField.text= +GeneralColumnTitleChooserUI.titleLabel.text=Titel der neuen Spalte: +GeneralColumnTitleChooserUI.titleTextField.text= +CreateTimeIntervalUI.startColumnLabel.text=Startzeit Spalte: +CreateTimeIntervalUI.endColumnLabel.text=Endzeit Spalte: +CreateTimeIntervalUI.header.title=Optionen Zeitintervall-Erzeugung +CreateTimeIntervalUI.header.description=Wδhlen Sie Spalten, die als Start-/Endzeit verwendet werden.
    Sie kφnnen Default-Start- und Endzeiten festlegen, die verwendet werden, wenn Werte fehlen oder fehlerhaft sind. Ansonsten wird stattdessen "unendlich" verwendet. +CreateTimeIntervalUI.parseDatesRadioButton.text=Parse Datum +CreateTimeIntervalUI.parseNumbersRadioButton.text=Parse Zahlen +CreateTimeIntervalUI.dateDefaultStartLabel.text=Standardwert fόr Beginn: +CreateTimeIntervalUI.dateDefaultEndLabel.text=Standardwert fόr Ende: +CreateTimeIntervalUI.dateFormatLabel.text=Datumsformat: +CreateTimeIntervalUI.defaultStartNumberText.text= +CreateTimeIntervalUI.defaultEndNumberText.text= +CreateTimeIntervalUI.defaultStartNumberLabel.text=Standardwert fόr Beginn: +CreateTimeIntervalUI.defaultEndNumberLabel.text=Standardwert fόr Ende: +CreateTimeIntervalUI.invalid.dateformat=Ungόltiges Datumsformat +CreateTimeIntervalUI.invalid.number=Ungόltige Zahl diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_es.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_es.properties index b6e517117b..472585c90b 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_es.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_es.properties @@ -1,44 +1,24 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Eduardo Ramos , 2012. -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-12-31 01\:26+0000\nLast-Translator\: Eduardo Ramos \nLanguage-Team\: Spanish (http\://www.transifex.com/projects/p/gephi/language/es/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: es\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n - -BooleanLogicOperationsUI.descriptionLabel.text=
    Elige las operaciones l\u00f3gicas para utilizar entre cada par de columnas
    - -BooleanLogicOperationsUI.titleLabel.text=T\u00edtulo de la nueva columna\: - -JoinWithSeparatorUI.titleLabel.text=T\u00edtulo de la nueva columna\: - -JoinWithSeparatorUI.separatorLabel.text=Texto separador\: - -GeneralColumnTitleChooserUI.titleLabel.text=T\u00edtulo de la nueva columna\: - -CreateTimeIntervalUI.startColumnLabel.text=Columna de tiempo inicial\: - -CreateTimeIntervalUI.endColumnLabel.text=Columna de tiempo final\: - -CreateTimeIntervalUI.header.title=Opciones de creaci\u00f3n de intervalo temporal - -CreateTimeIntervalUI.header.description=Escoge las columnas para utilizar como tiempos iniciales y/o tiempos finales.
    Tambi\u00e9n puedes escoger tiempos iniciales y finales por defecto para utilizar cuando los valores no son correctos o vacios, si no se usar\u00e1 infinito en su lugar. - -CreateTimeIntervalUI.parseDatesRadioButton.text=Analizar fechas - -CreateTimeIntervalUI.parseNumbersRadioButton.text=Analizar n\u00fameros - -CreateTimeIntervalUI.dateDefaultStartLabel.text=Tiempo inicial por defecto\: - -CreateTimeIntervalUI.dateDefaultEndLabel.text=Tiempo final por defecto\: - -CreateTimeIntervalUI.dateFormatLabel.text=Formato de fechas\: - -CreateTimeIntervalUI.defaultStartNumberLabel.text=Tiempo inicial por defecto\: - -CreateTimeIntervalUI.defaultEndNumberLabel.text=Tiempo final por defecto\: - -CreateTimeIntervalUI.invalid.dateformat=Forma de fecha inv\u00e1lido - -CreateTimeIntervalUI.invalid.number=N\u00famero inv\u00e1lido +BooleanLogicOperationsUI.descriptionLabel.text=
    Elige las operaciones lσgicas para utilizar entre cada par de columnas
    +BooleanLogicOperationsUI.titleLabel.text=Tνtulo de la nueva columna: +JoinWithSeparatorUI.titleLabel.text=Tνtulo de la nueva columna: +JoinWithSeparatorUI.separatorLabel.text=Texto separador: +JoinWithSeparatorUI.separatorText.text= +BooleanLogicOperationsUI.titleTextField.text= +JoinWithSeparatorUI.titleTextField.text= +GeneralColumnTitleChooserUI.titleLabel.text=Tνtulo de la nueva columna: +GeneralColumnTitleChooserUI.titleTextField.text= +CreateTimeIntervalUI.startColumnLabel.text=Columna de tiempo inicial: +CreateTimeIntervalUI.endColumnLabel.text=Columna de tiempo final: +CreateTimeIntervalUI.header.title=Opciones de creaciσn de intervalo temporal +CreateTimeIntervalUI.header.description=Escoge las columnas para utilizar como tiempos iniciales y/o tiempos finales.
    Tambiιn puedes escoger tiempos iniciales y finales por defecto para utilizar cuando los valores no son correctos o vacios, si no se usarα infinito en su lugar. +CreateTimeIntervalUI.parseDatesRadioButton.text=Analizar fechas +CreateTimeIntervalUI.parseNumbersRadioButton.text=Analizar nϊmeros +CreateTimeIntervalUI.dateDefaultStartLabel.text=Tiempo inicial por defecto: +CreateTimeIntervalUI.dateDefaultEndLabel.text=Tiempo final por defecto: +CreateTimeIntervalUI.dateFormatLabel.text=Formato de fechas: +CreateTimeIntervalUI.defaultStartNumberText.text= +CreateTimeIntervalUI.defaultEndNumberText.text= +CreateTimeIntervalUI.defaultStartNumberLabel.text=Tiempo inicial por defecto: +CreateTimeIntervalUI.defaultEndNumberLabel.text=Tiempo final por defecto: +CreateTimeIntervalUI.invalid.dateformat=Forma de fecha invαlido +CreateTimeIntervalUI.invalid.number=Nϊmero invαlido diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_fr.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_fr.properties index 61e7833c62..c98e6a290f 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_fr.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_fr.properties @@ -1,43 +1,24 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-12-31 01\:16+0000\nLast-Translator\: Eduardo Ramos \nLanguage-Team\: French (http\://www.transifex.com/projects/p/gephi/language/fr/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fr\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -BooleanLogicOperationsUI.descriptionLabel.text=
    Op\u00e9ration logique entre chaque pair de colonnes
    - -BooleanLogicOperationsUI.titleLabel.text=Titre de la nouvelle colonne \: - -JoinWithSeparatorUI.titleLabel.text=Titre de la nouvelle colonne \: - -JoinWithSeparatorUI.separatorLabel.text=S\u00e9parateur \: - -GeneralColumnTitleChooserUI.titleLabel.text=Titre de la nouvelle colonne \: - -CreateTimeIntervalUI.startColumnLabel.text=Temps de d\u00e9but \: - -CreateTimeIntervalUI.endColumnLabel.text=Temps de fin \: - -CreateTimeIntervalUI.header.title=Options du nouvel intervalle temporel - -CreateTimeIntervalUI.header.description=Colonnes de temps de d\u00e9but et de fin.
    Choisissez des valeurs par d\u00e9faut pour les valeurs manquantes ou incorrectes, ou l'infini sera utilis\u00e9. - -CreateTimeIntervalUI.parseDatesRadioButton.text=Extraire les dates - -CreateTimeIntervalUI.parseNumbersRadioButton.text=Extraire les nombres - -CreateTimeIntervalUI.dateDefaultStartLabel.text=D\u00e9faut par d\u00e9faut \: - -CreateTimeIntervalUI.dateDefaultEndLabel.text=Fin par d\u00e9faut \: - -CreateTimeIntervalUI.dateFormatLabel.text=Format temporel \: - -CreateTimeIntervalUI.defaultStartNumberLabel.text=D\u00e9but par d\u00e9faut \: - -CreateTimeIntervalUI.defaultEndNumberLabel.text=Fin par d\u00e9faut \: - -!CreateTimeIntervalUI.invalid.dateformat= - -!CreateTimeIntervalUI.invalid.number= +BooleanLogicOperationsUI.descriptionLabel.text=
    Opιration logique entre chaque pair de colonnes
    +BooleanLogicOperationsUI.titleLabel.text=Titre de la nouvelle colonne : +JoinWithSeparatorUI.titleLabel.text=Titre de la nouvelle colonne : +JoinWithSeparatorUI.separatorLabel.text=Sιparateur : +JoinWithSeparatorUI.separatorText.text= +BooleanLogicOperationsUI.titleTextField.text= +JoinWithSeparatorUI.titleTextField.text= +GeneralColumnTitleChooserUI.titleLabel.text=Titre de la nouvelle colonne : +GeneralColumnTitleChooserUI.titleTextField.text= +CreateTimeIntervalUI.startColumnLabel.text=Temps de dιbut : +CreateTimeIntervalUI.endColumnLabel.text=Temps de fin : +CreateTimeIntervalUI.header.title=Options du nouvel intervalle temporel +CreateTimeIntervalUI.header.description=Colonnes de temps de dιbut et de fin.
    Choisissez des valeurs par dιfaut pour les valeurs manquantes ou incorrectes, ou l'infini sera utilisι. +CreateTimeIntervalUI.parseDatesRadioButton.text=Extraire les dates +CreateTimeIntervalUI.parseNumbersRadioButton.text=Extraire les nombres +CreateTimeIntervalUI.dateDefaultStartLabel.text=Dιfaut par dιfaut : +CreateTimeIntervalUI.dateDefaultEndLabel.text=Fin par dιfaut : +CreateTimeIntervalUI.dateFormatLabel.text=Format temporel : +CreateTimeIntervalUI.defaultStartNumberText.text= +CreateTimeIntervalUI.defaultEndNumberText.text= +CreateTimeIntervalUI.defaultStartNumberLabel.text=Dιbut par dιfaut : +CreateTimeIntervalUI.defaultEndNumberLabel.text=Fin par dιfaut : +CreateTimeIntervalUI.invalid.dateformat=Format de date invalide +CreateTimeIntervalUI.invalid.number=Nombre invalide diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_he.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_he.properties new file mode 100644 index 0000000000..2299a6a219 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_he.properties @@ -0,0 +1,24 @@ +BooleanLogicOperationsUI.descriptionLabel.text=
    Choose the logical operations between each pair of columns
    +BooleanLogicOperationsUI.titleLabel.text=New column title: +JoinWithSeparatorUI.titleLabel.text=New column title: +JoinWithSeparatorUI.separatorLabel.text=Separator text: +JoinWithSeparatorUI.separatorText.text= +BooleanLogicOperationsUI.titleTextField.text= +JoinWithSeparatorUI.titleTextField.text= +GeneralColumnTitleChooserUI.titleLabel.text=New column title: +GeneralColumnTitleChooserUI.titleTextField.text= +CreateTimeIntervalUI.startColumnLabel.text=Start time column: +CreateTimeIntervalUI.endColumnLabel.text=End time column: +CreateTimeIntervalUI.header.title=Time Interval creation options +CreateTimeIntervalUI.header.description=Choose columns to use as start and/or end times.
    Also you can choose default start and end times to use when values are not correct or missing, else infinity will be used instead. +CreateTimeIntervalUI.parseDatesRadioButton.text=Parse dates +CreateTimeIntervalUI.parseNumbersRadioButton.text=Parse numbers +CreateTimeIntervalUI.dateDefaultStartLabel.text=Default start time: +CreateTimeIntervalUI.dateDefaultEndLabel.text=Default end time: +CreateTimeIntervalUI.dateFormatLabel.text=Date format: +CreateTimeIntervalUI.defaultStartNumberText.text= +CreateTimeIntervalUI.defaultEndNumberText.text= +CreateTimeIntervalUI.defaultStartNumberLabel.text=Default start time: +CreateTimeIntervalUI.defaultEndNumberLabel.text=Default end time: +CreateTimeIntervalUI.invalid.dateformat=Invalid date format +CreateTimeIntervalUI.invalid.number=Invalid number diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_hu.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_hu.properties new file mode 100644 index 0000000000..c76b5abb9a --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_hu.properties @@ -0,0 +1,20 @@ + + +GeneralColumnTitleChooserUI.titleLabel.text=\u00DAj oszlop c\u00EDme: +CreateTimeIntervalUI.endColumnLabel.text=V\u00E9gid\u0151s oszlop: +CreateTimeIntervalUI.dateFormatLabel.text=D\u00E1tum form\u00E1tuma: +CreateTimeIntervalUI.invalid.number=\u00C9rv\u00E9nytelen sz\u00E1m +CreateTimeIntervalUI.invalid.dateformat=\u00C9rv\u00E9nytelen d\u00E1tumform\u00E1tum +CreateTimeIntervalUI.parseNumbersRadioButton.text=Sz\u00E1mok elemz\u00E9se +CreateTimeIntervalUI.header.description=V\u00E1lassza ki a kezd\u00E9si \u00E9s/vagy befejez\u00E9si id\u0151pontk\u00E9nt haszn\u00E1lni k\u00EDv\u00E1nt oszlopokat.
    Kiv\u00E1laszthatja az alap\u00E9rtelmezett kezd\u00E9si \u00E9s befejez\u00E9si id\u0151pontokat is, ha az \u00E9rt\u00E9kek nem helyesek vagy hi\u00E1nyoznak, k\u00FCl\u00F6nben a v\u00E9gtelent haszn\u00E1lja a rendszer. +CreateTimeIntervalUI.dateDefaultStartLabel.text=Alap\u00E9rtelmezett kezd\u00E9si id\u0151: +CreateTimeIntervalUI.defaultStartNumberLabel.text=Alap\u00E9rtelmezett kezd\u00E9si id\u0151: +CreateTimeIntervalUI.dateDefaultEndLabel.text=Alap\u00E9rtelmezett befejez\u00E9si id\u0151: +CreateTimeIntervalUI.defaultEndNumberLabel.text=Alap\u00E9rtelmezett befejez\u00E9si id\u0151: +CreateTimeIntervalUI.startColumnLabel.text=Kezd\u0151 id\u0151pont oszlop: +BooleanLogicOperationsUI.descriptionLabel.text=
    V\u00E1lassza ki az egyes oszlopp\u00E1rok k\u00F6z\u00F6tti logikai m\u0171veleteket
    +CreateTimeIntervalUI.header.title=Id\u0151 intervallum l\u00E9trehoz\u00E1si lehet\u0151s\u00E9gek +BooleanLogicOperationsUI.titleLabel.text=\u00DAj oszlop c\u00EDme: +CreateTimeIntervalUI.parseDatesRadioButton.text=D\u00E1tumok elemz\u00E9se +JoinWithSeparatorUI.separatorLabel.text=Elv\u00E1laszt\u00F3 sz\u00F6veg: +JoinWithSeparatorUI.titleLabel.text=\u00DAj oszlop c\u00EDme: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_it.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_it.properties new file mode 100644 index 0000000000..2299a6a219 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_it.properties @@ -0,0 +1,24 @@ +BooleanLogicOperationsUI.descriptionLabel.text=
    Choose the logical operations between each pair of columns
    +BooleanLogicOperationsUI.titleLabel.text=New column title: +JoinWithSeparatorUI.titleLabel.text=New column title: +JoinWithSeparatorUI.separatorLabel.text=Separator text: +JoinWithSeparatorUI.separatorText.text= +BooleanLogicOperationsUI.titleTextField.text= +JoinWithSeparatorUI.titleTextField.text= +GeneralColumnTitleChooserUI.titleLabel.text=New column title: +GeneralColumnTitleChooserUI.titleTextField.text= +CreateTimeIntervalUI.startColumnLabel.text=Start time column: +CreateTimeIntervalUI.endColumnLabel.text=End time column: +CreateTimeIntervalUI.header.title=Time Interval creation options +CreateTimeIntervalUI.header.description=Choose columns to use as start and/or end times.
    Also you can choose default start and end times to use when values are not correct or missing, else infinity will be used instead. +CreateTimeIntervalUI.parseDatesRadioButton.text=Parse dates +CreateTimeIntervalUI.parseNumbersRadioButton.text=Parse numbers +CreateTimeIntervalUI.dateDefaultStartLabel.text=Default start time: +CreateTimeIntervalUI.dateDefaultEndLabel.text=Default end time: +CreateTimeIntervalUI.dateFormatLabel.text=Date format: +CreateTimeIntervalUI.defaultStartNumberText.text= +CreateTimeIntervalUI.defaultEndNumberText.text= +CreateTimeIntervalUI.defaultStartNumberLabel.text=Default start time: +CreateTimeIntervalUI.defaultEndNumberLabel.text=Default end time: +CreateTimeIntervalUI.invalid.dateformat=Invalid date format +CreateTimeIntervalUI.invalid.number=Invalid number diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_ja.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_ja.properties index 69facbc5b1..a9b0fe4b35 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_ja.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_ja.properties @@ -1,43 +1,24 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-12-31 01\:16+0000\nLast-Translator\: Eduardo Ramos \nLanguage-Team\: Japanese (http\://www.transifex.com/projects/p/gephi/language/ja/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ja\nPlural-Forms\: nplurals\=1; plural\=0;\n - -BooleanLogicOperationsUI.descriptionLabel.text=
    \u5217\u306e\u5404\u7d44\u9593\u306e\u8ad6\u7406\u6f14\u7b97\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044
    - -BooleanLogicOperationsUI.titleLabel.text=\u65b0\u898f\u5217\u30bf\u30a4\u30c8\u30eb\: - -JoinWithSeparatorUI.titleLabel.text=\u65b0\u898f\u5217\u30bf\u30a4\u30c8\u30eb\: - -JoinWithSeparatorUI.separatorLabel.text=\u30bb\u30d1\u30ec\u30fc\u30bf\u30fb\u30c6\u30ad\u30b9\u30c8\: - -GeneralColumnTitleChooserUI.titleLabel.text=\u65b0\u898f\u5217\u30bf\u30a4\u30c8\u30eb\: - -CreateTimeIntervalUI.startColumnLabel.text=\u958b\u59cb\u6642\u9593\u5217\: - -CreateTimeIntervalUI.endColumnLabel.text=\u7d42\u4e86\u6642\u9593\u5217\: - -CreateTimeIntervalUI.header.title=\u6642\u9593\u9593\u9694\u4f5c\u6210\u30aa\u30d7\u30b7\u30e7\u30f3 - -CreateTimeIntervalUI.header.description=\u958b\u59cb\u304a\u3088\u3073/\u307e\u305f\u306f\u7d42\u4e86\u6642\u523b\u3068\u3057\u3066\u4f7f\u200b\u200b\u7528\u3059\u308b\u5217\u3092\u9078\u629e\u3057\u307e\u3059\u3002
    \u5024\u304c\u6b63\u3057\u304f\u306a\u3044\u304b\u6b20\u843d\u3057\u3066\u3044\u308b\u3068\u304d\u306b\u4f7f\u7528\u3059\u308b\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u958b\u59cb\u6642\u523b\u3068\u7d42\u4e86\u6642\u523b\u3092\u9078\u629e\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u304c\u3001\u305d\u3046\u3067\u306a\u3051\u308c\u3070\u6c38\u9060\u3067\u4ee3\u7528\u3055\u308c\u307e\u3059\u3002 - -CreateTimeIntervalUI.parseDatesRadioButton.text=\u65e5\u4ed8\u306e\u89e3\u6790 - -CreateTimeIntervalUI.parseNumbersRadioButton.text=\u6570\u306e\u89e3\u6790 - -CreateTimeIntervalUI.dateDefaultStartLabel.text=\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u958b\u59cb\u6642\u523b\: - -CreateTimeIntervalUI.dateDefaultEndLabel.text=\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u7d42\u4e86\u6642\u9593\: - -CreateTimeIntervalUI.dateFormatLabel.text=\u65e5\u4ed8\u306e\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\: - -CreateTimeIntervalUI.defaultStartNumberLabel.text=\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u958b\u59cb\u6642\u523b\: - -CreateTimeIntervalUI.defaultEndNumberLabel.text=\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u7d42\u4e86\u6642\u9593\: - -!CreateTimeIntervalUI.invalid.dateformat= - -!CreateTimeIntervalUI.invalid.number= +BooleanLogicOperationsUI.descriptionLabel.text=
    \u5217\u306e\u5404\u7d44\u9593\u306e\u8ad6\u7406\u6f14\u7b97\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044
    +BooleanLogicOperationsUI.titleLabel.text=\u65b0\u898f\u5217\u30bf\u30a4\u30c8\u30eb: +JoinWithSeparatorUI.titleLabel.text=\u65b0\u898f\u5217\u30bf\u30a4\u30c8\u30eb: +JoinWithSeparatorUI.separatorLabel.text=\u30bb\u30d1\u30ec\u30fc\u30bf\u30fb\u30c6\u30ad\u30b9\u30c8: +JoinWithSeparatorUI.separatorText.text= +BooleanLogicOperationsUI.titleTextField.text= +JoinWithSeparatorUI.titleTextField.text= +GeneralColumnTitleChooserUI.titleLabel.text=\u65b0\u898f\u5217\u30bf\u30a4\u30c8\u30eb: +GeneralColumnTitleChooserUI.titleTextField.text= +CreateTimeIntervalUI.startColumnLabel.text=\u958b\u59cb\u6642\u9593\u5217: +CreateTimeIntervalUI.endColumnLabel.text=\u7d42\u4e86\u6642\u9593\u5217: +CreateTimeIntervalUI.header.title=\u6642\u9593\u9593\u9694\u4f5c\u6210\u30aa\u30d7\u30b7\u30e7\u30f3 +CreateTimeIntervalUI.header.description=\u958b\u59cb\u304a\u3088\u3073/\u307e\u305f\u306f\u7d42\u4e86\u6642\u523b\u3068\u3057\u3066\u4f7f\u200b\u200b\u7528\u3059\u308b\u5217\u3092\u9078\u629e\u3057\u307e\u3059\u3002
    \u5024\u304c\u6b63\u3057\u304f\u306a\u3044\u304b\u6b20\u843d\u3057\u3066\u3044\u308b\u3068\u304d\u306b\u4f7f\u7528\u3059\u308b\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u958b\u59cb\u6642\u523b\u3068\u7d42\u4e86\u6642\u523b\u3092\u9078\u629e\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u304c\u3001\u305d\u3046\u3067\u306a\u3051\u308c\u3070\u6c38\u9060\u3067\u4ee3\u7528\u3055\u308c\u307e\u3059\u3002 +CreateTimeIntervalUI.parseDatesRadioButton.text=\u65e5\u4ed8\u306e\u89e3\u6790 +CreateTimeIntervalUI.parseNumbersRadioButton.text=\u6570\u306e\u89e3\u6790 +CreateTimeIntervalUI.dateDefaultStartLabel.text=\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u958b\u59cb\u6642\u523b: +CreateTimeIntervalUI.dateDefaultEndLabel.text=\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u7d42\u4e86\u6642\u9593: +CreateTimeIntervalUI.dateFormatLabel.text=\u65e5\u4ed8\u306e\u30d5\u30a9\u30fc\u30de\u30c3\u30c8: +CreateTimeIntervalUI.defaultStartNumberText.text= +CreateTimeIntervalUI.defaultEndNumberText.text= +CreateTimeIntervalUI.defaultStartNumberLabel.text=\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u958b\u59cb\u6642\u523b: +CreateTimeIntervalUI.defaultEndNumberLabel.text=\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u7d42\u4e86\u6642\u9593: +# CreateTimeIntervalUI.invalid.dateformat=Invalid date format +# CreateTimeIntervalUI.invalid.number=Invalid number diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_ko.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_ko.properties new file mode 100644 index 0000000000..85e6380238 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_ko.properties @@ -0,0 +1,20 @@ + + +GeneralColumnTitleChooserUI.titleLabel.text=\uC0C8\uB85C\uC6B4 \uC5F4 \uC81C\uBAA9: +CreateTimeIntervalUI.endColumnLabel.text=\uB05D \uC2DC\uAC04 \uC5F4: +CreateTimeIntervalUI.dateFormatLabel.text=\uB0A0\uC9DC \uD3EC\uB9F7: +CreateTimeIntervalUI.invalid.number=\uC798\uBABB\uB41C \uC22B\uC790 +CreateTimeIntervalUI.invalid.dateformat=\uC798\uBABB\uB41C \uB0A0\uC9DC \uD3EC\uB9F7 +CreateTimeIntervalUI.parseNumbersRadioButton.text=\uC22B\uC790 \uD574\uC11D +CreateTimeIntervalUI.header.description=\uC2DC\uC791 \uC2DC\uAC04 \uBC0F/\uB610\uB294 \uC885\uB8CC \uC2DC\uAC04\uC73C\uB85C \uC0AC\uC6A9\uD560 \uC5F4\uC744 \uC120\uD0DD\uD558\uC138\uC694.
    \uB610\uD55C \uAC12\uC774 \uC815\uD655\uD558\uC9C0 \uC54A\uAC70\uB098 \uB204\uB77D\uB41C \uACBD\uC6B0 \uC0AC\uC6A9\uD560 \uAE30\uBCF8 \uC2DC\uC791 \uC2DC\uAC04\uACFC \uC885\uB8CC \uC2DC\uAC04\uC744 \uC120\uD0DD\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4, \uC544\uB2C8\uBA74 \uBB34\uD55C\uAC12\uC774 \uB300\uC2E0 \uC0AC\uC6A9\uB429\uB2C8\uB2E4. +CreateTimeIntervalUI.dateDefaultStartLabel.text=\uC2DC\uC791 \uC2DC\uAC04 \uAE30\uBCF8\uAC12: +CreateTimeIntervalUI.defaultStartNumberLabel.text=\uC2DC\uC791 \uC2DC\uAC04 \uAE30\uBCF8\uAC12: +CreateTimeIntervalUI.dateDefaultEndLabel.text=\uB05D \uC2DC\uAC04 \uAE30\uBCF8\uAC12: +CreateTimeIntervalUI.defaultEndNumberLabel.text=\uB05D \uC2DC\uAC04 \uAE30\uBCF8\uAC12: +CreateTimeIntervalUI.startColumnLabel.text=\uC2DC\uC791 \uC2DC\uAC04 \uC5F4: +BooleanLogicOperationsUI.descriptionLabel.text=
    \uAC01 \uC5F4 \uC30D \uC0AC\uC774\uC758 \uB17C\uB9AC \uC5F0\uC0B0\uC744 \uC120\uD0DD
    +CreateTimeIntervalUI.header.title=\uC2DC\uAC04 \uAC04\uACA9 \uC0DD\uC131 \uC635\uC158 +BooleanLogicOperationsUI.titleLabel.text=\uC0C8 \uC5F4 \uC81C\uBAA9: +CreateTimeIntervalUI.parseDatesRadioButton.text=\uB0A0\uC9DC \uD574\uC11D +JoinWithSeparatorUI.separatorLabel.text=\uAD6C\uBD84\uC790 \uD14D\uC2A4\uD2B8: +JoinWithSeparatorUI.titleLabel.text=\uC0C8\uB85C\uC6B4 \uC5F4 \uC81C\uBAA9: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_nl.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_nl.properties new file mode 100644 index 0000000000..23622af037 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_nl.properties @@ -0,0 +1,24 @@ +BooleanLogicOperationsUI.descriptionLabel.text=
    Choose the logical operations between each pair of columns
    +BooleanLogicOperationsUI.titleLabel.text=Nieuwe kolomtitel: +JoinWithSeparatorUI.titleLabel.text=Nieuwe kolomtitel: +JoinWithSeparatorUI.separatorLabel.text=Separator text: +JoinWithSeparatorUI.separatorText.text= +BooleanLogicOperationsUI.titleTextField.text= +JoinWithSeparatorUI.titleTextField.text= +GeneralColumnTitleChooserUI.titleLabel.text=Nieuwe kolomtitel: +GeneralColumnTitleChooserUI.titleTextField.text= +CreateTimeIntervalUI.startColumnLabel.text=Start time column: +CreateTimeIntervalUI.endColumnLabel.text=End time column: +CreateTimeIntervalUI.header.title=Time Interval creation options +CreateTimeIntervalUI.header.description=Choose columns to use as start and/or end times.
    Also you can choose default start and end times to use when values are not correct or missing, else infinity will be used instead. +CreateTimeIntervalUI.parseDatesRadioButton.text=Data parseren +CreateTimeIntervalUI.parseNumbersRadioButton.text=Parse numbers +CreateTimeIntervalUI.dateDefaultStartLabel.text=Default start time: +CreateTimeIntervalUI.dateDefaultEndLabel.text=Default end time: +CreateTimeIntervalUI.dateFormatLabel.text=Date format: +CreateTimeIntervalUI.defaultStartNumberText.text= +CreateTimeIntervalUI.defaultEndNumberText.text= +CreateTimeIntervalUI.defaultStartNumberLabel.text=Default start time: +CreateTimeIntervalUI.defaultEndNumberLabel.text=Default end time: +CreateTimeIntervalUI.invalid.dateformat=Ongeldig datumformaat +CreateTimeIntervalUI.invalid.number=Invalid number diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_pt.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_pt.properties new file mode 100644 index 0000000000..1b3f6de059 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_pt.properties @@ -0,0 +1,18 @@ +CreateTimeIntervalUI.dateDefaultEndLabel.text=Tempo final padr\u00E3o: +CreateTimeIntervalUI.dateFormatLabel.text=Formato de data: +CreateTimeIntervalUI.defaultStartNumberLabel.text=Tempo inicial padr\u00E3o: +CreateTimeIntervalUI.defaultEndNumberLabel.text=Tempo final padr\u00E3o: +BooleanLogicOperationsUI.descriptionLabel.text=
    Escolha as opera\u00E7\u00F5es l\u00F3gicas entre cada par de colunas
    +BooleanLogicOperationsUI.titleLabel.text=T\u00EDtulo da nova coluna: +JoinWithSeparatorUI.titleLabel.text=T\u00EDtulo da nova coluna: +JoinWithSeparatorUI.separatorLabel.text=Texto separador: +GeneralColumnTitleChooserUI.titleLabel.text=T\u00EDtulo da nova coluna: +CreateTimeIntervalUI.startColumnLabel.text=Coluna de tempo inicial: +CreateTimeIntervalUI.endColumnLabel.text=Coluna de tempo final: +CreateTimeIntervalUI.header.title=Op\u00E7\u00F5es de cria\u00E7\u00E3o de Intervalo de Tempo +CreateTimeIntervalUI.header.description=Escolha as columas para utilizar como tempos iniciais e/ou finais.
    Tamb\u00E9m pode escolher tempos iniciais e finais padr\u00E3o para utilizar quando os valores sejam vazios ou n\u00E3o sejam fornecidos. Caso os valores padr\u00E3o n\u00E3o sejam fornecidos, ser\u00E1 usado "infinito". +CreateTimeIntervalUI.parseDatesRadioButton.text=Analisar datas +CreateTimeIntervalUI.parseNumbersRadioButton.text=Analisar n\u00FAmeros +CreateTimeIntervalUI.dateDefaultStartLabel.text=Tempo inicial padr\u00E3o: +CreateTimeIntervalUI.invalid.dateformat=Formato inv\u00E1lido de data +CreateTimeIntervalUI.invalid.number=N\u00FAmero inv\u00E1lido diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_pt_BR.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_pt_BR.properties index 80f4d2c3d2..fb75d17181 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_pt_BR.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_pt_BR.properties @@ -1,43 +1,24 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# C\u00e9lio CJr , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-12-31 01\:16+0000\nLast-Translator\: Eduardo Ramos \nLanguage-Team\: Portuguese (Brazil) (http\://www.transifex.com/projects/p/gephi/language/pt_BR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt_BR\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -BooleanLogicOperationsUI.descriptionLabel.text=
    Escolha as opera\u00e7\u00f5es l\u00f3gicas entre cada par de colunas
    - -BooleanLogicOperationsUI.titleLabel.text=T\u00edtulo da nova coluna\: - -JoinWithSeparatorUI.titleLabel.text=T\u00edtulo da nova coluna\: - -JoinWithSeparatorUI.separatorLabel.text=Texto separador\: - -GeneralColumnTitleChooserUI.titleLabel.text=T\u00edtulo da nova coluna\: - -CreateTimeIntervalUI.startColumnLabel.text=Coluna de tempo inicial\: - -CreateTimeIntervalUI.endColumnLabel.text=Coluna de tempo final\: - -CreateTimeIntervalUI.header.title=Op\u00e7\u00f5es de cria\u00e7\u00e3o de Intervalo de Tempo - -CreateTimeIntervalUI.header.description=Escolha as columas para utilizar como tempos iniciais e/ou finais.
    Voc\u00ea tamb\u00e9m pode escolher tempos iniciais e finais padr\u00e3o para utilizar quando os valores sejam vazios ou n\u00e3o sejam fornecidos. Caso os valores padr\u00e3o n\u00e3o sejam fornecidos, ser\u00e1 usado "infinito". - -CreateTimeIntervalUI.parseDatesRadioButton.text=Analisar datas - -CreateTimeIntervalUI.parseNumbersRadioButton.text=Analisar n\u00fameros - -CreateTimeIntervalUI.dateDefaultStartLabel.text=Tempo inicial padr\u00e3o\: - -CreateTimeIntervalUI.dateDefaultEndLabel.text=Tempo final padr\u00e3o\: - -CreateTimeIntervalUI.dateFormatLabel.text=Formato de data\: - -CreateTimeIntervalUI.defaultStartNumberLabel.text=Tempo inicial padr\u00e3o\: - -CreateTimeIntervalUI.defaultEndNumberLabel.text=Tempo final padr\u00e3o\: - -!CreateTimeIntervalUI.invalid.dateformat= - -!CreateTimeIntervalUI.invalid.number= +BooleanLogicOperationsUI.descriptionLabel.text=
    Escolha as operaηυes lσgicas entre cada par de colunas
    +BooleanLogicOperationsUI.titleLabel.text=Tνtulo da nova coluna: +JoinWithSeparatorUI.titleLabel.text=Tνtulo da nova coluna: +JoinWithSeparatorUI.separatorLabel.text=Texto separador: +JoinWithSeparatorUI.separatorText.text= +BooleanLogicOperationsUI.titleTextField.text= +JoinWithSeparatorUI.titleTextField.text= +GeneralColumnTitleChooserUI.titleLabel.text=Tνtulo da nova coluna: +GeneralColumnTitleChooserUI.titleTextField.text= +CreateTimeIntervalUI.startColumnLabel.text=Coluna de tempo inicial: +CreateTimeIntervalUI.endColumnLabel.text=Coluna de tempo final: +CreateTimeIntervalUI.header.title=Opηυes de criaηγo de Intervalo de Tempo +CreateTimeIntervalUI.header.description=Escolha as columas para utilizar como tempos iniciais e/ou finais.
    Vocκ tambιm pode escolher tempos iniciais e finais padrγo para utilizar quando os valores sejam vazios ou nγo sejam fornecidos. Caso os valores padrγo nγo sejam fornecidos, serα usado "infinito". +CreateTimeIntervalUI.parseDatesRadioButton.text=Analisar datas +CreateTimeIntervalUI.parseNumbersRadioButton.text=Analisar nϊmeros +CreateTimeIntervalUI.dateDefaultStartLabel.text=Tempo inicial padrγo: +CreateTimeIntervalUI.dateDefaultEndLabel.text=Tempo final padrγo: +CreateTimeIntervalUI.dateFormatLabel.text=Formato de data: +CreateTimeIntervalUI.defaultStartNumberText.text= +CreateTimeIntervalUI.defaultEndNumberText.text= +CreateTimeIntervalUI.defaultStartNumberLabel.text=Tempo inicial padrγo: +CreateTimeIntervalUI.defaultEndNumberLabel.text=Tempo final padrγo: +CreateTimeIntervalUI.invalid.dateformat=Formato invαlido de data +CreateTimeIntervalUI.invalid.number=Nϊmero invαlido diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_ro.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_ro.properties new file mode 100644 index 0000000000..c59eaa14c2 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_ro.properties @@ -0,0 +1,20 @@ + + +BooleanLogicOperationsUI.titleLabel.text=Titlul noii coloane: +CreateTimeIntervalUI.parseDatesRadioButton.text=Parseaz\u0103 date +BooleanLogicOperationsUI.descriptionLabel.text=
    Alege opera\u021Biile logice dintre fiecare pereche de coloane
    +CreateTimeIntervalUI.endColumnLabel.text=Coloan\u0103 timp de sf\u00E2r\u0219it: +CreateTimeIntervalUI.dateDefaultStartLabel.text=Timp implicit de \u00EEnceput: +CreateTimeIntervalUI.dateDefaultEndLabel.text=Timp implicit de sf\u00E2r\u0219it: +CreateTimeIntervalUI.dateFormatLabel.text=Format dat\u0103: +CreateTimeIntervalUI.defaultStartNumberLabel.text=Timp implicit de \u00EEnceput: +CreateTimeIntervalUI.defaultEndNumberLabel.text=Timp implicit de sf\u00E2r\u0219it: +CreateTimeIntervalUI.invalid.dateformat=Format de dat\u0103 nevalid +CreateTimeIntervalUI.invalid.number=Num\u0103r nevalid +JoinWithSeparatorUI.separatorLabel.text=Text separator: +JoinWithSeparatorUI.titleLabel.text=Titlul noii coloane: +GeneralColumnTitleChooserUI.titleLabel.text=Titlul noii coloane: +CreateTimeIntervalUI.parseNumbersRadioButton.text=Parseaz\u0103 numere +CreateTimeIntervalUI.startColumnLabel.text=Coloan\u0103 timp de \u00EEnceput: +CreateTimeIntervalUI.header.description=Alege coloanele de folosit ca timpi de \u00EEnceput \u0219i/sau sf\u00E2r\u0219it.
    Po\u021Bi alege \u0219i timpii implici\u021Bi pentru cazul \u00EEn care valorile nu sunt corecte sau lipsesc, altfel se va folosi infinitul. +CreateTimeIntervalUI.header.title=Op\u021Biuni de creare interval de timp diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_ru.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_ru.properties index 4995687c7f..4a88b90ce3 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_ru.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_ru.properties @@ -1,43 +1,24 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-12-31 01\:16+0000\nLast-Translator\: Eduardo Ramos \nLanguage-Team\: Russian (http\://www.transifex.com/projects/p/gephi/language/ru/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ru\nPlural-Forms\: nplurals\=3; plural\=(n%10\=\=1 && n%100\!\=11 ? 0 \: n%10>\=2 && n%10<\=4 && (n%100<10 || n%100>\=20) ? 1 \: 2);\n - -BooleanLogicOperationsUI.descriptionLabel.text=
    \u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043a \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u0430\u0440\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432
    - -BooleanLogicOperationsUI.titleLabel.text=\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u043d\u043e\u0432\u043e\u0433\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430\: - -JoinWithSeparatorUI.titleLabel.text=\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u043d\u043e\u0432\u043e\u0433\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430\: - -JoinWithSeparatorUI.separatorLabel.text=\u0420\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c\: - -GeneralColumnTitleChooserUI.titleLabel.text=\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u043d\u043e\u0432\u043e\u0433\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430\: - -CreateTimeIntervalUI.startColumnLabel.text=\u0421\u0442\u043e\u043b\u0431\u0435\u0446 \u0441 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c\: - -CreateTimeIntervalUI.endColumnLabel.text=\u0421\u0442\u043e\u043b\u0431\u0435\u0446 \u0441 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c\: - -CreateTimeIntervalUI.header.title=\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 - -CreateTimeIntervalUI.header.description=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u0430 \u0438/\u0438\u043b\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u043e\u0432.
    \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u044b \u0432 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u043a\u043e\u0433\u0434\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u0445 \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b \u0438\u043b\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442, \u0438\u043d\u0430\u0447\u0435 \u0432 \u044d\u0442\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0441\u0442\u044c. - -CreateTimeIntervalUI.parseDatesRadioButton.text=\u0420\u0430\u0437\u0431\u043e\u0440 \u0434\u0430\u0442\u044b - -CreateTimeIntervalUI.parseNumbersRadioButton.text=\u0420\u0430\u0437\u0431\u043e\u0440 \u0447\u0438\u0441\u0435\u043b - -CreateTimeIntervalUI.dateDefaultStartLabel.text=\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u043b\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0430\u0447\u0430\u043b\u0430\: - -CreateTimeIntervalUI.dateDefaultEndLabel.text=\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u043b\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f\: - -CreateTimeIntervalUI.dateFormatLabel.text=\u0424\u043e\u0440\u043c\u0430\u0442 \u0434\u0430\u0442\u044b\: - -CreateTimeIntervalUI.defaultStartNumberLabel.text=\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u043b\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0430\u0447\u0430\u043b\u0430\: - -CreateTimeIntervalUI.defaultEndNumberLabel.text=\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u043b\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f\: - -!CreateTimeIntervalUI.invalid.dateformat= - -!CreateTimeIntervalUI.invalid.number= +BooleanLogicOperationsUI.descriptionLabel.text=
    \u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043a \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u0430\u0440\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432
    +BooleanLogicOperationsUI.titleLabel.text=\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u043d\u043e\u0432\u043e\u0433\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430: +JoinWithSeparatorUI.titleLabel.text=\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u043d\u043e\u0432\u043e\u0433\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430: +JoinWithSeparatorUI.separatorLabel.text=\u0420\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c: +JoinWithSeparatorUI.separatorText.text= +BooleanLogicOperationsUI.titleTextField.text= +JoinWithSeparatorUI.titleTextField.text= +GeneralColumnTitleChooserUI.titleLabel.text=\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u043d\u043e\u0432\u043e\u0433\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430: +GeneralColumnTitleChooserUI.titleTextField.text= +CreateTimeIntervalUI.startColumnLabel.text=\u0421\u0442\u043e\u043b\u0431\u0435\u0446 \u0441 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c: +CreateTimeIntervalUI.endColumnLabel.text=\u0421\u0442\u043e\u043b\u0431\u0435\u0446 \u0441 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c: +CreateTimeIntervalUI.header.title=\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 +CreateTimeIntervalUI.header.description=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u0430 \u0438/\u0438\u043b\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u043e\u0432.
    \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u044b \u0432 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u043a\u043e\u0433\u0434\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u0445 \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b \u0438\u043b\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442, \u0438\u043d\u0430\u0447\u0435 \u0432 \u044d\u0442\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0441\u0442\u044c. +CreateTimeIntervalUI.parseDatesRadioButton.text=\u0420\u0430\u0437\u0431\u043e\u0440 \u0434\u0430\u0442\u044b +CreateTimeIntervalUI.parseNumbersRadioButton.text=\u0420\u0430\u0437\u0431\u043e\u0440 \u0447\u0438\u0441\u0435\u043b +CreateTimeIntervalUI.dateDefaultStartLabel.text=\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u043b\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0430\u0447\u0430\u043b\u0430: +CreateTimeIntervalUI.dateDefaultEndLabel.text=\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u043b\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f: +CreateTimeIntervalUI.dateFormatLabel.text=\u0424\u043e\u0440\u043c\u0430\u0442 \u0434\u0430\u0442\u044b: +CreateTimeIntervalUI.defaultStartNumberText.text= +CreateTimeIntervalUI.defaultEndNumberText.text= +CreateTimeIntervalUI.defaultStartNumberLabel.text=\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u043b\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0430\u0447\u0430\u043b\u0430: +CreateTimeIntervalUI.defaultEndNumberLabel.text=\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u043b\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f: +# CreateTimeIntervalUI.invalid.dateformat=Invalid date format +# CreateTimeIntervalUI.invalid.number=Invalid number diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_th.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_th.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_th.properties @@ -0,0 +1 @@ + diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_tr.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_tr.properties new file mode 100644 index 0000000000..1bb97916a5 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_tr.properties @@ -0,0 +1,24 @@ +BooleanLogicOperationsUI.descriptionLabel.text=
    Her bir sόtun ηifti aras\u0131ndaki mant\u0131ksal operatφrleri seηiniz
    +BooleanLogicOperationsUI.titleLabel.text=Yeni sόtun ba\u015fl\u0131\u011f\u0131: +JoinWithSeparatorUI.titleLabel.text=Yeni sόtun ba\u015fl\u0131\u011f\u0131: +JoinWithSeparatorUI.separatorLabel.text=Ay\u0131s\u0131c\u0131 metin: +JoinWithSeparatorUI.separatorText.text= +BooleanLogicOperationsUI.titleTextField.text= +JoinWithSeparatorUI.titleTextField.text= +GeneralColumnTitleChooserUI.titleLabel.text=Yeni sόtun ba\u015fl\u0131\u011f\u0131: +GeneralColumnTitleChooserUI.titleTextField.text= +CreateTimeIntervalUI.startColumnLabel.text=Ba\u015flang\u0131η zaman\u0131 sόtunu: +CreateTimeIntervalUI.endColumnLabel.text=Biti\u015f zaman\u0131 sόtunu: +CreateTimeIntervalUI.header.title=Time Interval creation options +CreateTimeIntervalUI.header.description=Choose columns to use as start and/or end times.
    Also you can choose default start and end times to use when values are not correct or missing, else infinity will be used instead. +CreateTimeIntervalUI.parseDatesRadioButton.text=Parse dates +CreateTimeIntervalUI.parseNumbersRadioButton.text=Parse numbers +CreateTimeIntervalUI.dateDefaultStartLabel.text=Varsay\u0131lan ba\u015flama zaman\u0131: +CreateTimeIntervalUI.dateDefaultEndLabel.text=Varsay\u0131lan biti\u015f zaman\u0131: +CreateTimeIntervalUI.dateFormatLabel.text=Tarih format\u0131: +CreateTimeIntervalUI.defaultStartNumberText.text= +CreateTimeIntervalUI.defaultEndNumberText.text= +CreateTimeIntervalUI.defaultStartNumberLabel.text=Varsay\u0131lan ba\u015flama zaman\u0131: +CreateTimeIntervalUI.defaultEndNumberLabel.text=Varsay\u0131lan biti\u015f zaman\u0131: +CreateTimeIntervalUI.invalid.dateformat=Invalid date format +CreateTimeIntervalUI.invalid.number=Hatal\u0131 say\u0131 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_uk.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_uk.properties new file mode 100644 index 0000000000..e7c1d5ed5d --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_uk.properties @@ -0,0 +1,24 @@ +CreateTimeIntervalUI.dateDefaultStartLabel.text=\u0427\u0430\u0441 \u043F\u043E\u0447\u0430\u0442\u043A\u0443 \u0437\u0430 \u0443\u043C\u043E\u0432\u0447\u0430\u043D\u043D\u044F\u043C: +CreateTimeIntervalUI.header.description=\u0412\u0438\u0431\u0435\u0440\u0456\u0442\u044C \u0441\u0442\u043E\u0432\u043F\u0446\u0456 \u0434\u043B\u044F \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u0430\u043D\u043D\u044F \u044F\u043A \u0447\u0430\u0441 \u043F\u043E\u0447\u0430\u0442\u043A\u0443 \u0442\u0430/\u0430\u0431\u043E \u0437\u0430\u043A\u0456\u043D\u0447\u0435\u043D\u043D\u044F.
    \u0422\u0430\u043A\u043E\u0436 \u0432\u0438 \u043C\u043E\u0436\u0435\u0442\u0435 \u0432\u0438\u0431\u0440\u0430\u0442\u0438 \u0447\u0430\u0441 \u043F\u043E\u0447\u0430\u0442\u043A\u0443 \u0442\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043D\u044F \u0437\u0430 \u0437\u0430\u043C\u043E\u0432\u0447\u0443\u0432\u0430\u043D\u043D\u044F\u043C \u0434\u043B\u044F \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u0430\u043D\u043D\u044F, \u044F\u043A\u0449\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u043D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0430\u0431\u043E \u0432\u0456\u0434\u0441\u0443\u0442\u043D\u0456, \u0456\u043D\u0430\u043A\u0448\u0435 \u0437\u0430\u043C\u0456\u0441\u0442\u044C \u0446\u044C\u043E\u0433\u043E \u0431\u0443\u0434\u0435 \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u0430\u043D\u043E \u043D\u0435\u0441\u043A\u0456\u043D\u0447\u0435\u043D\u043D\u0456\u0441\u0442\u044C. +CreateTimeIntervalUI.parseNumbersRadioButton.text=\u0420\u043E\u0437\u0431\u0435\u0440\u0456\u0442\u044C \u0447\u0438\u0441\u043B\u0430 +BooleanLogicOperationsUI.descriptionLabel.text=
    \u0412\u0438\u0431\u0435\u0440\u0456\u0442\u044C \u043B\u043E\u0433\u0456\u0447\u043D\u0456 \u043E\u043F\u0435\u0440\u0430\u0446\u0456\u0457 \u043C\u0456\u0436 \u043A\u043E\u0436\u043D\u043E\u044E \u043F\u0430\u0440\u043E\u044E \u0441\u0442\u043E\u0432\u043F\u0446\u0456\u0432
    +BooleanLogicOperationsUI.titleLabel.text=\u041D\u043E\u0432\u0430 \u043D\u0430\u0437\u0432\u0430 \u0441\u0442\u043E\u0432\u043F\u0446\u044F: +JoinWithSeparatorUI.titleLabel.text=\u041D\u043E\u0432\u0430 \u043D\u0430\u0437\u0432\u0430 \u0441\u0442\u043E\u0432\u043F\u0446\u044F: +JoinWithSeparatorUI.separatorLabel.text=\u0420\u043E\u0437\u0434\u0456\u043B\u044C\u043D\u0438\u0439 \u0442\u0435\u043A\u0441\u0442: +JoinWithSeparatorUI.separatorText.text=\u0406 +BooleanLogicOperationsUI.titleTextField.text=\u0406 +JoinWithSeparatorUI.titleTextField.text=\u0406 +CreateTimeIntervalUI.startColumnLabel.text=\u041A\u043E\u043B\u043E\u043D\u043A\u0430 \u0447\u0430\u0441\u0443 \u043F\u043E\u0447\u0430\u0442\u043A\u0443: +CreateTimeIntervalUI.endColumnLabel.text=\u0421\u0442\u043E\u0432\u043F\u0435\u0446\u044C \u0447\u0430\u0441\u0443 \u0437\u0430\u043A\u0456\u043D\u0447\u0435\u043D\u043D\u044F: +CreateTimeIntervalUI.header.title=\u041F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0438 \u0441\u0442\u0432\u043E\u0440\u0435\u043D\u043D\u044F \u0456\u043D\u0442\u0435\u0440\u0432\u0430\u043B\u0443 \u0447\u0430\u0441\u0443 +CreateTimeIntervalUI.dateDefaultEndLabel.text=\u0427\u0430\u0441 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043D\u044F \u0437\u0430 \u0443\u043C\u043E\u0432\u0447\u0430\u043D\u043D\u044F\u043C: +CreateTimeIntervalUI.defaultStartNumberText.text=\u0406 +CreateTimeIntervalUI.defaultStartNumberLabel.text=\u0427\u0430\u0441 \u043F\u043E\u0447\u0430\u0442\u043A\u0443 \u0437\u0430 \u0443\u043C\u043E\u0432\u0447\u0430\u043D\u043D\u044F\u043C: +CreateTimeIntervalUI.defaultEndNumberLabel.text=\u0427\u0430\u0441 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043D\u044F \u0437\u0430 \u0443\u043C\u043E\u0432\u0447\u0430\u043D\u043D\u044F\u043C: +CreateTimeIntervalUI.invalid.dateformat=\u041D\u0435\u0434\u0456\u0439\u0441\u043D\u0438\u0439 \u0444\u043E\u0440\u043C\u0430\u0442 \u0434\u0430\u0442\u0438 +CreateTimeIntervalUI.invalid.number=\u041D\u0435\u0432\u0456\u0440\u043D\u0438\u0439 \u043D\u043E\u043C\u0435\u0440 +GeneralColumnTitleChooserUI.titleLabel.text=\u041D\u043E\u0432\u0430 \u043D\u0430\u0437\u0432\u0430 \u0441\u0442\u043E\u0432\u043F\u0446\u044F: +CreateTimeIntervalUI.parseDatesRadioButton.text=\u0420\u043E\u0437\u0431\u0435\u0440\u0456\u0442\u044C \u0434\u0430\u0442\u0438 +CreateTimeIntervalUI.defaultEndNumberText.text=\u0406 +CreateTimeIntervalUI.dateFormatLabel.text=\u0424\u043E\u0440\u043C\u0430\u0442 \u0434\u0430\u0442\u0438: +GeneralColumnTitleChooserUI.titleTextField.text=\u0406 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_zh_CN.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_zh_CN.properties index e8abf6d9e9..a986559fe5 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_zh_CN.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_zh_CN.properties @@ -1,42 +1,24 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-12-31 01\:16+0000\nLast-Translator\: Eduardo Ramos \nLanguage-Team\: Chinese (China) (http\://www.transifex.com/projects/p/gephi/language/zh_CN/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: zh_CN\nPlural-Forms\: nplurals\=1; plural\=0;\n - -BooleanLogicOperationsUI.descriptionLabel.text=
    \u9009\u62e9\u6bcf\u5217\u4e4b\u95f4\u7684\u903b\u8f91\u8fd0\u7b97
    - -BooleanLogicOperationsUI.titleLabel.text=\u65b0\u5217\u7684\u6807\u9898\uff1a - -JoinWithSeparatorUI.titleLabel.text=\u65b0\u5217\u7684\u6807\u9898\uff1a - -JoinWithSeparatorUI.separatorLabel.text=\u5206\u9694\u7b26\u7684\u6587\u672c\uff1a - -GeneralColumnTitleChooserUI.titleLabel.text=\u65b0\u5217\u7684\u6807\u9898\uff1a - -CreateTimeIntervalUI.startColumnLabel.text=\u542f\u52a8\u65f6\u95f4\u5217\uff1a - -CreateTimeIntervalUI.endColumnLabel.text=\u7ed3\u675f\u65f6\u95f4\u5217\uff1a - -CreateTimeIntervalUI.header.title=\u65f6\u95f4\u95f4\u9694\u521b\u5efa\u9009\u9879 - -CreateTimeIntervalUI.header.description=\u9009\u62e9\u5217\u4f7f\u7528\u4f5c\u4e3a\u542f\u52a8\u548c/\u6216\u7ed3\u675f\u65f6\u95f4\u3002
    \u60a8\u4e5f\u53ef\u4ee5\u9009\u62e9\u9ed8\u8ba4\u7684\u5f00\u59cb\u548c\u7ed3\u675f\u65f6\u95f4\u65f6\u4f7f\u7528\u7684\u503c\u4e0d\u6b63\u786e\u6216\u4e22\u5931\uff0c\u5426\u5219\u5c06\u88ab\u7528\u6765\u4ee3\u66ff\u65e0\u7a77\u3002 - -CreateTimeIntervalUI.parseDatesRadioButton.text=\u89e3\u6790\u65e5\u671f - -CreateTimeIntervalUI.parseNumbersRadioButton.text=\u89e3\u6790\u6570\u5b57 - -CreateTimeIntervalUI.dateDefaultStartLabel.text=\u9ed8\u8ba4\u7684\u5f00\u59cb\u65f6\u95f4\uff1a - -CreateTimeIntervalUI.dateDefaultEndLabel.text=\u9ed8\u8ba4\u7684\u7ed3\u675f\u65f6\u95f4\uff1a - -CreateTimeIntervalUI.dateFormatLabel.text=\u65e5\u671f\u683c\u5f0f\uff1a - -CreateTimeIntervalUI.defaultStartNumberLabel.text=\u9ed8\u8ba4\u7684\u5f00\u59cb\u65f6\u95f4\uff1a - -CreateTimeIntervalUI.defaultEndNumberLabel.text=\u9ed8\u8ba4\u7684\u7ed3\u675f\u65f6\u95f4\uff1a - -!CreateTimeIntervalUI.invalid.dateformat= - -!CreateTimeIntervalUI.invalid.number= +BooleanLogicOperationsUI.descriptionLabel.text=
    \u9009\u62e9\u6bcf\u5217\u4e4b\u95f4\u7684\u903b\u8f91\u8fd0\u7b97
    +BooleanLogicOperationsUI.titleLabel.text=\u65b0\u5217\u7684\u6807\u9898\uff1a +JoinWithSeparatorUI.titleLabel.text=\u65b0\u5217\u7684\u6807\u9898\uff1a +JoinWithSeparatorUI.separatorLabel.text=\u5206\u9694\u7b26\u7684\u6587\u672c\uff1a +JoinWithSeparatorUI.separatorText.text= +BooleanLogicOperationsUI.titleTextField.text= +JoinWithSeparatorUI.titleTextField.text= +GeneralColumnTitleChooserUI.titleLabel.text=\u65b0\u5217\u7684\u6807\u9898\uff1a +GeneralColumnTitleChooserUI.titleTextField.text= +CreateTimeIntervalUI.startColumnLabel.text=\u542f\u52a8\u65f6\u95f4\u5217\uff1a +CreateTimeIntervalUI.endColumnLabel.text=\u7ed3\u675f\u65f6\u95f4\u5217\uff1a +CreateTimeIntervalUI.header.title=\u65f6\u95f4\u95f4\u9694\u521b\u5efa\u9009\u9879 +CreateTimeIntervalUI.header.description=\u9009\u62e9\u5217\u4f7f\u7528\u4f5c\u4e3a\u542f\u52a8\u548c/\u6216\u7ed3\u675f\u65f6\u95f4\u3002
    \u60a8\u4e5f\u53ef\u4ee5\u9009\u62e9\u9ed8\u8ba4\u7684\u5f00\u59cb\u548c\u7ed3\u675f\u65f6\u95f4\u65f6\u4f7f\u7528\u7684\u503c\u4e0d\u6b63\u786e\u6216\u4e22\u5931\uff0c\u5426\u5219\u5c06\u88ab\u7528\u6765\u4ee3\u66ff\u65e0\u7a77\u3002 +CreateTimeIntervalUI.parseDatesRadioButton.text=\u89e3\u6790\u65e5\u671f +CreateTimeIntervalUI.parseNumbersRadioButton.text=\u89e3\u6790\u6570\u5b57 +CreateTimeIntervalUI.dateDefaultStartLabel.text=\u9ed8\u8ba4\u7684\u5f00\u59cb\u65f6\u95f4\uff1a +CreateTimeIntervalUI.dateDefaultEndLabel.text=\u9ed8\u8ba4\u7684\u7ed3\u675f\u65f6\u95f4\uff1a +CreateTimeIntervalUI.dateFormatLabel.text=\u65e5\u671f\u683c\u5f0f\uff1a +CreateTimeIntervalUI.defaultStartNumberText.text= +CreateTimeIntervalUI.defaultEndNumberText.text= +CreateTimeIntervalUI.defaultStartNumberLabel.text=\u9ed8\u8ba4\u7684\u5f00\u59cb\u65f6\u95f4\uff1a +CreateTimeIntervalUI.defaultEndNumberLabel.text=\u9ed8\u8ba4\u7684\u7ed3\u675f\u65f6\u95f4\uff1a +CreateTimeIntervalUI.invalid.dateformat=\u65e5\u671f\u683c\u5f0f\u65e0\u6548 +CreateTimeIntervalUI.invalid.number=\u65e0\u6548\u7684\u53f7\u7801 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_zh_TW.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_zh_TW.properties new file mode 100644 index 0000000000..2299a6a219 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/Bundle_zh_TW.properties @@ -0,0 +1,24 @@ +BooleanLogicOperationsUI.descriptionLabel.text=
    Choose the logical operations between each pair of columns
    +BooleanLogicOperationsUI.titleLabel.text=New column title: +JoinWithSeparatorUI.titleLabel.text=New column title: +JoinWithSeparatorUI.separatorLabel.text=Separator text: +JoinWithSeparatorUI.separatorText.text= +BooleanLogicOperationsUI.titleTextField.text= +JoinWithSeparatorUI.titleTextField.text= +GeneralColumnTitleChooserUI.titleLabel.text=New column title: +GeneralColumnTitleChooserUI.titleTextField.text= +CreateTimeIntervalUI.startColumnLabel.text=Start time column: +CreateTimeIntervalUI.endColumnLabel.text=End time column: +CreateTimeIntervalUI.header.title=Time Interval creation options +CreateTimeIntervalUI.header.description=Choose columns to use as start and/or end times.
    Also you can choose default start and end times to use when values are not correct or missing, else infinity will be used instead. +CreateTimeIntervalUI.parseDatesRadioButton.text=Parse dates +CreateTimeIntervalUI.parseNumbersRadioButton.text=Parse numbers +CreateTimeIntervalUI.dateDefaultStartLabel.text=Default start time: +CreateTimeIntervalUI.dateDefaultEndLabel.text=Default end time: +CreateTimeIntervalUI.dateFormatLabel.text=Date format: +CreateTimeIntervalUI.defaultStartNumberText.text= +CreateTimeIntervalUI.defaultEndNumberText.text= +CreateTimeIntervalUI.defaultStartNumberLabel.text=Default start time: +CreateTimeIntervalUI.defaultEndNumberLabel.text=Default end time: +CreateTimeIntervalUI.invalid.dateformat=Invalid date format +CreateTimeIntervalUI.invalid.number=Invalid number diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/cs.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/cs.po deleted file mode 100644 index 391c0ee03a..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/cs.po +++ /dev/null @@ -1,73 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# ZbynΔ›k Schwarz , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-12-31 01:16+0000\n" -"Last-Translator: Eduardo Ramos \n" -"Language-Team: Czech (http://www.transifex.com/projects/p/gephi/language/cs/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: cs\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" - -msgid "BooleanLogicOperationsUI.descriptionLabel.text" -msgstr "
    Zvolte logickΓ© operace mezi kaΕΎdΓ½m pΓ‘rem sloupcΕ―
    " - -msgid "BooleanLogicOperationsUI.titleLabel.text" -msgstr "NovΓ½ nΓ‘zev sloupce:" - -msgid "JoinWithSeparatorUI.titleLabel.text" -msgstr "NovΓ½ nΓ‘zev sloupce:" - -msgid "JoinWithSeparatorUI.separatorLabel.text" -msgstr "Text oddΔ›lovače" - -msgid "GeneralColumnTitleChooserUI.titleLabel.text" -msgstr "NovΓ½ nΓ‘zev sloupce:" - -msgid "CreateTimeIntervalUI.startColumnLabel.text" -msgstr "Čas času spuΕ‘tΔ›nΓ­:" - -msgid "CreateTimeIntervalUI.endColumnLabel.text" -msgstr "Sloupec času dokončenΓ­:" - -msgid "CreateTimeIntervalUI.header.title" -msgstr "MoΕΎnosti vytvoΕ™enΓ­ časovΓ©ho intervalu" - -msgid "CreateTimeIntervalUI.header.description" -msgstr "Zvolte sloupce, kterΓ© budou pouΕΎity jako časy spuΕ‘tΔ›nΓ­/dokončenΓ­.
    TakΓ© mΕ―ΕΎete zvolit vΓ½chozΓ­ pouΕΎitΓ© časy spuΕ‘tΔ›nΓ­ a dokončenΓ­ kdyΕΎ hodnoty nejsou sprΓ‘vnΔ› nebo chybΔ›jΓ­, jinak bude mΓ­sto toho pouΕΎito nekonečno." - -msgid "CreateTimeIntervalUI.parseDatesRadioButton.text" -msgstr "Zpracovat data" - -msgid "CreateTimeIntervalUI.parseNumbersRadioButton.text" -msgstr "Zpracovat čísla" - -msgid "CreateTimeIntervalUI.dateDefaultStartLabel.text" -msgstr "VΓ½chozΓ­ čas spuΕ‘tΔ›nΓ­:" - -msgid "CreateTimeIntervalUI.dateDefaultEndLabel.text" -msgstr "VΓ½chozΓ­ čas dokončenΓ­:" - -msgid "CreateTimeIntervalUI.dateFormatLabel.text" -msgstr "FormΓ‘t data:" - -msgid "CreateTimeIntervalUI.defaultStartNumberLabel.text" -msgstr "VΓ½chozΓ­ čas spuΕ‘tΔ›nΓ­:" - -msgid "CreateTimeIntervalUI.defaultEndNumberLabel.text" -msgstr "VΓ½chozΓ­ čas dokončenΓ­:" - -msgid "CreateTimeIntervalUI.invalid.dateformat" -msgstr "" - -msgid "CreateTimeIntervalUI.invalid.number" -msgstr "" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/es.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/es.po deleted file mode 100644 index b72c4a2bb4..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/es.po +++ /dev/null @@ -1,74 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Eduardo Ramos , 2012. -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-12-31 01:26+0000\n" -"Last-Translator: Eduardo Ramos \n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/gephi/language/es/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -msgid "BooleanLogicOperationsUI.descriptionLabel.text" -msgstr "
    Elige las operaciones lΓ³gicas para utilizar entre cada par de columnas
    " - -msgid "BooleanLogicOperationsUI.titleLabel.text" -msgstr "TΓ­tulo de la nueva columna:" - -msgid "JoinWithSeparatorUI.titleLabel.text" -msgstr "TΓ­tulo de la nueva columna:" - -msgid "JoinWithSeparatorUI.separatorLabel.text" -msgstr "Texto separador:" - -msgid "GeneralColumnTitleChooserUI.titleLabel.text" -msgstr "TΓ­tulo de la nueva columna:" - -msgid "CreateTimeIntervalUI.startColumnLabel.text" -msgstr "Columna de tiempo inicial:" - -msgid "CreateTimeIntervalUI.endColumnLabel.text" -msgstr "Columna de tiempo final:" - -msgid "CreateTimeIntervalUI.header.title" -msgstr "Opciones de creaciΓ³n de intervalo temporal" - -msgid "CreateTimeIntervalUI.header.description" -msgstr "Escoge las columnas para utilizar como tiempos iniciales y/o tiempos finales.
    TambiΓ©n puedes escoger tiempos iniciales y finales por defecto para utilizar cuando los valores no son correctos o vacios, si no se usarΓ‘ infinito en su lugar." - -msgid "CreateTimeIntervalUI.parseDatesRadioButton.text" -msgstr "Analizar fechas" - -msgid "CreateTimeIntervalUI.parseNumbersRadioButton.text" -msgstr "Analizar nΓΊmeros" - -msgid "CreateTimeIntervalUI.dateDefaultStartLabel.text" -msgstr "Tiempo inicial por defecto:" - -msgid "CreateTimeIntervalUI.dateDefaultEndLabel.text" -msgstr "Tiempo final por defecto:" - -msgid "CreateTimeIntervalUI.dateFormatLabel.text" -msgstr "Formato de fechas:" - -msgid "CreateTimeIntervalUI.defaultStartNumberLabel.text" -msgstr "Tiempo inicial por defecto:" - -msgid "CreateTimeIntervalUI.defaultEndNumberLabel.text" -msgstr "Tiempo final por defecto:" - -msgid "CreateTimeIntervalUI.invalid.dateformat" -msgstr "Forma de fecha invΓ‘lido" - -msgid "CreateTimeIntervalUI.invalid.number" -msgstr "NΓΊmero invΓ‘lido" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/fr.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/fr.po deleted file mode 100644 index 02cd695ee4..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/fr.po +++ /dev/null @@ -1,73 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-12-31 01:16+0000\n" -"Last-Translator: Eduardo Ramos \n" -"Language-Team: French (http://www.transifex.com/projects/p/gephi/language/fr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "BooleanLogicOperationsUI.descriptionLabel.text" -msgstr "
    OpΓ©ration logique entre chaque pair de colonnes
    " - -msgid "BooleanLogicOperationsUI.titleLabel.text" -msgstr "Titre de la nouvelle colonne :" - -msgid "JoinWithSeparatorUI.titleLabel.text" -msgstr "Titre de la nouvelle colonne :" - -msgid "JoinWithSeparatorUI.separatorLabel.text" -msgstr "SΓ©parateur :" - -msgid "GeneralColumnTitleChooserUI.titleLabel.text" -msgstr "Titre de la nouvelle colonne :" - -msgid "CreateTimeIntervalUI.startColumnLabel.text" -msgstr "Temps de dΓ©but :" - -msgid "CreateTimeIntervalUI.endColumnLabel.text" -msgstr "Temps de fin :" - -msgid "CreateTimeIntervalUI.header.title" -msgstr "Options du nouvel intervalle temporel" - -msgid "CreateTimeIntervalUI.header.description" -msgstr "Colonnes de temps de dΓ©but et de fin.
    Choisissez des valeurs par dΓ©faut pour les valeurs manquantes ou incorrectes, ou l'infini sera utilisΓ©." - -msgid "CreateTimeIntervalUI.parseDatesRadioButton.text" -msgstr "Extraire les dates" - -msgid "CreateTimeIntervalUI.parseNumbersRadioButton.text" -msgstr "Extraire les nombres" - -msgid "CreateTimeIntervalUI.dateDefaultStartLabel.text" -msgstr "DΓ©faut par dΓ©faut :" - -msgid "CreateTimeIntervalUI.dateDefaultEndLabel.text" -msgstr "Fin par dΓ©faut :" - -msgid "CreateTimeIntervalUI.dateFormatLabel.text" -msgstr "Format temporel :" - -msgid "CreateTimeIntervalUI.defaultStartNumberLabel.text" -msgstr "DΓ©but par dΓ©faut :" - -msgid "CreateTimeIntervalUI.defaultEndNumberLabel.text" -msgstr "Fin par dΓ©faut :" - -msgid "CreateTimeIntervalUI.invalid.dateformat" -msgstr "" - -msgid "CreateTimeIntervalUI.invalid.number" -msgstr "" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/ja.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/ja.po deleted file mode 100644 index e440f588e1..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/ja.po +++ /dev/null @@ -1,73 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-12-31 01:16+0000\n" -"Last-Translator: Eduardo Ramos \n" -"Language-Team: Japanese (http://www.transifex.com/projects/p/gephi/language/ja/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ja\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "BooleanLogicOperationsUI.descriptionLabel.text" -msgstr "
    εˆ—γε„η΅„ι–“γθ«–理演η—γ‚’ιΈζŠžγ—γ¦γγ γ•γ„
    " - -msgid "BooleanLogicOperationsUI.titleLabel.text" -msgstr "ζ–°θ¦εˆ—γ‚Ώγ‚€γƒˆγƒ«:" - -msgid "JoinWithSeparatorUI.titleLabel.text" -msgstr "ζ–°θ¦εˆ—γ‚Ώγ‚€γƒˆγƒ«:" - -msgid "JoinWithSeparatorUI.separatorLabel.text" -msgstr "γ‚»γƒ‘γƒ¬γƒΌγ‚Ώγƒ»γƒ†γ‚­γ‚Ήγƒˆ:" - -msgid "GeneralColumnTitleChooserUI.titleLabel.text" -msgstr "ζ–°θ¦εˆ—γ‚Ώγ‚€γƒˆγƒ«:" - -msgid "CreateTimeIntervalUI.startColumnLabel.text" -msgstr "ι–‹ε§‹ζ™‚ι–“εˆ—:" - -msgid "CreateTimeIntervalUI.endColumnLabel.text" -msgstr "η΅‚δΊ†ζ™‚ι–“εˆ—:" - -msgid "CreateTimeIntervalUI.header.title" -msgstr "ζ™‚ι–“ι–“ιš”δ½œζˆγ‚ͺプション" - -msgid "CreateTimeIntervalUI.header.description" -msgstr "ι–‹ε§‹γŠγ‚ˆγ³/γΎγŸγ―η΅‚δΊ†ζ™‚εˆ»γ¨γ—γ¦δ½Ώβ€‹β€‹η”¨γ™γ‚‹εˆ—γ‚’ιΈζŠžγ—γΎγ™γ€‚
    ε€€γŒζ­£γ—γγͺγ„γ‹ζ¬ θ½γ—γ¦γ„γ‚‹γ¨γγ«δ½Ώη”¨γ™γ‚‹γƒ‡γƒ•γ‚©γƒ«γƒˆγι–‹ε§‹ζ™‚εˆ»γ¨η΅‚δΊ†ζ™‚εˆ»γ‚’ιΈζŠžγ™γ‚‹γ“γ¨γŒγ§γγΎγ™γŒγ€γγ†γ§γͺγ‘γ‚Œγ°ζ°Έι γ§δ»£η”¨γ•γ‚ŒγΎγ™γ€‚" - -msgid "CreateTimeIntervalUI.parseDatesRadioButton.text" -msgstr "ζ—₯付γθ§£ζž" - -msgid "CreateTimeIntervalUI.parseNumbersRadioButton.text" -msgstr "ζ•°γθ§£ζž" - -msgid "CreateTimeIntervalUI.dateDefaultStartLabel.text" -msgstr "γƒ‡γƒ•γ‚©γƒ«γƒˆγι–‹ε§‹ζ™‚εˆ»:" - -msgid "CreateTimeIntervalUI.dateDefaultEndLabel.text" -msgstr "γƒ‡γƒ•γ‚©γƒ«γƒˆγη΅‚δΊ†ζ™‚ι–“:" - -msgid "CreateTimeIntervalUI.dateFormatLabel.text" -msgstr "ζ—₯付γγƒ•γ‚©γƒΌγƒžγƒƒγƒˆ:" - -msgid "CreateTimeIntervalUI.defaultStartNumberLabel.text" -msgstr "γƒ‡γƒ•γ‚©γƒ«γƒˆγι–‹ε§‹ζ™‚εˆ»:" - -msgid "CreateTimeIntervalUI.defaultEndNumberLabel.text" -msgstr "γƒ‡γƒ•γ‚©γƒ«γƒˆγη΅‚δΊ†ζ™‚ι–“:" - -msgid "CreateTimeIntervalUI.invalid.dateformat" -msgstr "" - -msgid "CreateTimeIntervalUI.invalid.number" -msgstr "" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/org-gephi-datalab-plugin-manipulators-columns-merge-ui.pot b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/org-gephi-datalab-plugin-manipulators-columns-merge-ui.pot deleted file mode 100644 index e5de2aea8d..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/org-gephi-datalab-plugin-manipulators-columns-merge-ui.pot +++ /dev/null @@ -1,75 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# Gephi Team , 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: Gephi 0.8\n" -"Report-Msgid-Bugs-To: gephi.team@lists.launchpad.net\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-05 14:52+0200\n" -"Last-Translator: Mathieu Bastian \n" -"Language-Team: English \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "BooleanLogicOperationsUI.descriptionLabel.text" -msgstr "" -"
    Choose the logical operations between each pair of columns" - -msgid "BooleanLogicOperationsUI.titleLabel.text" -msgstr "New column title:" - -msgid "JoinWithSeparatorUI.titleLabel.text" -msgstr "New column title:" - -msgid "JoinWithSeparatorUI.separatorLabel.text" -msgstr "Separator text:" - -msgid "GeneralColumnTitleChooserUI.titleLabel.text" -msgstr "New column title:" - -msgid "CreateTimeIntervalUI.startColumnLabel.text" -msgstr "Start time column:" - -msgid "CreateTimeIntervalUI.endColumnLabel.text" -msgstr "End time column:" - -msgid "CreateTimeIntervalUI.header.title" -msgstr "Time Interval creation options" - -msgid "CreateTimeIntervalUI.header.description" -msgstr "" -"Choose columns to use as start and/or end times.
    Also you can " -"choose default start and end times to use when values are not correct or " -"missing, else infinity will be used instead." - -msgid "CreateTimeIntervalUI.parseDatesRadioButton.text" -msgstr "Parse dates" - -msgid "CreateTimeIntervalUI.parseNumbersRadioButton.text" -msgstr "Parse numbers" - -msgid "CreateTimeIntervalUI.dateDefaultStartLabel.text" -msgstr "Default start time:" - -msgid "CreateTimeIntervalUI.dateDefaultEndLabel.text" -msgstr "Default end time:" - -msgid "CreateTimeIntervalUI.dateFormatLabel.text" -msgstr "Date format:" - -msgid "CreateTimeIntervalUI.defaultStartNumberLabel.text" -msgstr "Default start time:" - -msgid "CreateTimeIntervalUI.defaultEndNumberLabel.text" -msgstr "Default end time:" - -msgid "CreateTimeIntervalUI.invalid.dateformat" -msgstr "Invalid date format" - -msgid "CreateTimeIntervalUI.invalid.number" -msgstr "Invalid number" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/pt_BR.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/pt_BR.po deleted file mode 100644 index 77a9a3ab3c..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/pt_BR.po +++ /dev/null @@ -1,73 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# CΓ©lio CJr , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-12-31 01:16+0000\n" -"Last-Translator: Eduardo Ramos \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/gephi/language/pt_BR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "BooleanLogicOperationsUI.descriptionLabel.text" -msgstr "
    Escolha as operaΓ§Γ΅es lΓ³gicas entre cada par de colunas
    " - -msgid "BooleanLogicOperationsUI.titleLabel.text" -msgstr "TΓ­tulo da nova coluna:" - -msgid "JoinWithSeparatorUI.titleLabel.text" -msgstr "TΓ­tulo da nova coluna:" - -msgid "JoinWithSeparatorUI.separatorLabel.text" -msgstr "Texto separador:" - -msgid "GeneralColumnTitleChooserUI.titleLabel.text" -msgstr "TΓ­tulo da nova coluna:" - -msgid "CreateTimeIntervalUI.startColumnLabel.text" -msgstr "Coluna de tempo inicial:" - -msgid "CreateTimeIntervalUI.endColumnLabel.text" -msgstr "Coluna de tempo final:" - -msgid "CreateTimeIntervalUI.header.title" -msgstr "OpΓ§Γ΅es de criaΓ§Γ£o de Intervalo de Tempo" - -msgid "CreateTimeIntervalUI.header.description" -msgstr "Escolha as columas para utilizar como tempos iniciais e/ou finais.
    VocΓͺ tambΓ©m pode escolher tempos iniciais e finais padrΓ£o para utilizar quando os valores sejam vazios ou nΓ£o sejam fornecidos. Caso os valores padrΓ£o nΓ£o sejam fornecidos, serΓ‘ usado \"infinito\"." - -msgid "CreateTimeIntervalUI.parseDatesRadioButton.text" -msgstr "Analisar datas" - -msgid "CreateTimeIntervalUI.parseNumbersRadioButton.text" -msgstr "Analisar nΓΊmeros" - -msgid "CreateTimeIntervalUI.dateDefaultStartLabel.text" -msgstr "Tempo inicial padrΓ£o:" - -msgid "CreateTimeIntervalUI.dateDefaultEndLabel.text" -msgstr "Tempo final padrΓ£o:" - -msgid "CreateTimeIntervalUI.dateFormatLabel.text" -msgstr "Formato de data:" - -msgid "CreateTimeIntervalUI.defaultStartNumberLabel.text" -msgstr "Tempo inicial padrΓ£o:" - -msgid "CreateTimeIntervalUI.defaultEndNumberLabel.text" -msgstr "Tempo final padrΓ£o:" - -msgid "CreateTimeIntervalUI.invalid.dateformat" -msgstr "" - -msgid "CreateTimeIntervalUI.invalid.number" -msgstr "" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/ru.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/ru.po deleted file mode 100644 index c30ce63249..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/ru.po +++ /dev/null @@ -1,73 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-12-31 01:16+0000\n" -"Last-Translator: Eduardo Ramos \n" -"Language-Team: Russian (http://www.transifex.com/projects/p/gephi/language/ru/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -msgid "BooleanLogicOperationsUI.descriptionLabel.text" -msgstr "
    Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ логичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ для примСнСния ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°Ρ€Π΅ столбцов
    " - -msgid "BooleanLogicOperationsUI.titleLabel.text" -msgstr "Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π½ΠΎΠ²ΠΎΠ³ΠΎ столбца:" - -msgid "JoinWithSeparatorUI.titleLabel.text" -msgstr "Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π½ΠΎΠ²ΠΎΠ³ΠΎ столбца:" - -msgid "JoinWithSeparatorUI.separatorLabel.text" -msgstr "Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ:" - -msgid "GeneralColumnTitleChooserUI.titleLabel.text" -msgstr "Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π½ΠΎΠ²ΠΎΠ³ΠΎ столбца:" - -msgid "CreateTimeIntervalUI.startColumnLabel.text" -msgstr "Π‘Ρ‚ΠΎΠ»Π±Π΅Ρ† с Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ:" - -msgid "CreateTimeIntervalUI.endColumnLabel.text" -msgstr "Π‘Ρ‚ΠΎΠ»Π±Π΅Ρ† с Ρ„ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ:" - -msgid "CreateTimeIntervalUI.header.title" -msgstr "ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ создания ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ" - -msgid "CreateTimeIntervalUI.header.description" -msgstr "Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ столбцы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат Π²Ρ€Π΅ΠΌΠ΅Π½Π° Π½Π°Ρ‡Π°Π»Π° ΠΈ/ΠΈΠ»ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠ².
    ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Π² случаях, ΠΊΠΎΠ³Π΄Π° значСния Π² столбцах Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ ΠΈΠ»ΠΈ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚, ΠΈΠ½Π°Ρ‡Π΅ Π² этих случаях Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π±Π΅ΡΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΡΡ‚ΡŒ." - -msgid "CreateTimeIntervalUI.parseDatesRadioButton.text" -msgstr "Π Π°Π·Π±ΠΎΡ€ Π΄Π°Ρ‚Ρ‹" - -msgid "CreateTimeIntervalUI.parseNumbersRadioButton.text" -msgstr "Π Π°Π·Π±ΠΎΡ€ чисСл" - -msgid "CreateTimeIntervalUI.dateDefaultStartLabel.text" -msgstr "Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π°Ρ‡Π°Π»Π°:" - -msgid "CreateTimeIntervalUI.dateDefaultEndLabel.text" -msgstr "Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ:" - -msgid "CreateTimeIntervalUI.dateFormatLabel.text" -msgstr "Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π΄Π°Ρ‚Ρ‹:" - -msgid "CreateTimeIntervalUI.defaultStartNumberLabel.text" -msgstr "Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π°Ρ‡Π°Π»Π°:" - -msgid "CreateTimeIntervalUI.defaultEndNumberLabel.text" -msgstr "Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ:" - -msgid "CreateTimeIntervalUI.invalid.dateformat" -msgstr "" - -msgid "CreateTimeIntervalUI.invalid.number" -msgstr "" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/zh_CN.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/zh_CN.po deleted file mode 100644 index 6638bf6214..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/ui/zh_CN.po +++ /dev/null @@ -1,72 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-12-31 01:16+0000\n" -"Last-Translator: Eduardo Ramos \n" -"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/gephi/language/zh_CN/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "BooleanLogicOperationsUI.descriptionLabel.text" -msgstr "
    ι€‰ζ‹©ζ―εˆ—δΉ‹ι—΄ηš„ι€»θΎ‘θΏη—
    " - -msgid "BooleanLogicOperationsUI.titleLabel.text" -msgstr "ζ–°εˆ—ηš„ζ ‡ι’˜οΌš" - -msgid "JoinWithSeparatorUI.titleLabel.text" -msgstr "ζ–°εˆ—ηš„ζ ‡ι’˜οΌš" - -msgid "JoinWithSeparatorUI.separatorLabel.text" -msgstr "εˆ†ιš”η¬¦ηš„ζ–‡ζœ¬οΌš" - -msgid "GeneralColumnTitleChooserUI.titleLabel.text" -msgstr "ζ–°εˆ—ηš„ζ ‡ι’˜οΌš" - -msgid "CreateTimeIntervalUI.startColumnLabel.text" -msgstr "ε―εŠ¨ζ—Άι—΄εˆ—οΌš" - -msgid "CreateTimeIntervalUI.endColumnLabel.text" -msgstr "η»“ζŸζ—Άι—΄εˆ—οΌš" - -msgid "CreateTimeIntervalUI.header.title" -msgstr "ζ—Άι—΄ι—΄ιš”εˆ›ε»Ίι€‰ι‘Ή" - -msgid "CreateTimeIntervalUI.header.description" -msgstr "ι€‰ζ‹©εˆ—δ½Ώη”¨δ½œδΈΊε―εŠ¨ε’Œ/ζˆ–η»“ζŸζ—Άι—΄γ€‚
    ζ‚¨δΉŸε―δ»₯ι€‰ζ‹©ι»˜θ€ηš„εΌ€ε§‹ε’Œη»“ζŸζ—Άι—΄ζ—Άδ½Ώη”¨ηš„ε€ΌδΈζ­£η‘ζˆ–δΈ’ε€±οΌŒε¦εˆ™ε°†θ’«η”¨ζ₯代替无穷。 " - -msgid "CreateTimeIntervalUI.parseDatesRadioButton.text" -msgstr "解析ζ—₯期" - -msgid "CreateTimeIntervalUI.parseNumbersRadioButton.text" -msgstr "θ§£ζžζ•°ε­—" - -msgid "CreateTimeIntervalUI.dateDefaultStartLabel.text" -msgstr "默θ€ηš„εΌ€ε§‹ζ—Άι—΄οΌš" - -msgid "CreateTimeIntervalUI.dateDefaultEndLabel.text" -msgstr "默θ€ηš„η»“ζŸζ—Άι—΄οΌš" - -msgid "CreateTimeIntervalUI.dateFormatLabel.text" -msgstr "ζ—₯期格式:" - -msgid "CreateTimeIntervalUI.defaultStartNumberLabel.text" -msgstr "默θ€ηš„εΌ€ε§‹ζ—Άι—΄οΌš" - -msgid "CreateTimeIntervalUI.defaultEndNumberLabel.text" -msgstr "默θ€ηš„η»“ζŸζ—Άι—΄οΌš" - -msgid "CreateTimeIntervalUI.invalid.dateformat" -msgstr "" - -msgid "CreateTimeIntervalUI.invalid.number" -msgstr "" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/zh_CN.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/zh_CN.po deleted file mode 100644 index 90d3c77453..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/merge/zh_CN.po +++ /dev/null @@ -1,90 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-08 00:19+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/gephi/language/zh_CN/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "JoinWithSeparator.name" -msgstr "加ε…₯ζ•°ε€ΌοΌŒεˆ†ιš”η¬¦ιš”εΌ€" - -msgid "JoinWithSeparator.description" -msgstr "用一δΈͺε―ι€‰ηš„εˆ†ιš”η¬¦εŠ ε…₯δ»»δ½•η±»εž‹ηš„εˆ—ηš„ε€Όγ€‚ζ–°εˆ—η±»εž‹δΈΊε­—η¬¦δΈ²γ€‚" - -msgid "JoinNumberColumns.name" -msgstr "加ε…₯ζ•°ε€Όεˆ—" - -msgid "JoinNumberColumns.description" -msgstr "加ε…₯εˆ°δΈ€δΈͺεŒη±»εž‹LIST_BIGDECIMALηš„ζ–°εˆ—ηΌ–ε·/εˆ—θ‘¨δΈ­ηš„εˆ—ηš„ε€Όγ€‚" - -msgid "CreateTimeInterval.name" -msgstr "εˆ›ε»Ίζ—Άι—΄ι—΄ιš”" - -msgid "CreateTimeInterval.description" -msgstr "δΈΊ1ζˆ–2εˆ—ηš„ζ―δΈ€θ‘Œεˆ›ε»Ίζ—Άι—΄ι—΄ιš”δΈΊεΌ€ε§‹/η»“ζŸζ—Άι—΄γ€‚" - -msgid "AverageNumber.name" -msgstr "θ‘η—平均值" - -msgid "AverageNumber.description" -msgstr "θ‘η—εΉ³ε‡ε€Όηš„ζ•°ε€Όεˆ—οΌˆζ•°ε­—ζˆ–ζ•°ε­—εˆ—θ‘¨οΌ‰γ€‚η”¨ζ­€η»“ζžœεˆ›ε»ΊδΈ€δΈͺζ–°εˆ—οΌˆBigDecimal)。" - -msgid "FirstQuartileNumber.name" -msgstr "θ‘η—η¬¬δΈ€ε››εˆ†δ½ζ•°οΌˆQ1οΌ‰" - -msgid "FirstQuartileNumber.description" -msgstr "θ‘η—η¬¬δΈ€ε››εˆ†δ½ζ•°οΌˆQ1οΌ‰ε€Όηš„ζ•°ε€Όεˆ—οΌˆζ•°ε­—ζˆ–ζ•°ε­—εˆ—θ‘¨οΌ‰γ€‚η”¨ζ­€η»“ζžœεˆ›ε»ΊδΈ€δΈͺζ–°εˆ—οΌˆBigDecimal)。" - -msgid "MedianNumber.name" -msgstr "θ‘η—δΈ­ι—΄ε€Ό" - -msgid "MedianNumber.description" -msgstr "δΈ­ε€Όθ‘η—ηš„ζ•°ε€Όεˆ—οΌˆζ•°ε­—ζˆ–ζ•°ε­—εˆ—θ‘¨οΌ‰γ€‚δ»₯ζ­€η»“ζžœεˆ›ε»ΊδΈ€δΈͺζ–°εˆ—οΌˆBigDecimal)。" - -msgid "ThirdQuartileNumber.name" -msgstr "θ‘η—η¬¬δΈ‰ε››εˆ†δ½ζ•°οΌˆQ3οΌ‰" - -msgid "ThirdQuartileNumber.description" -msgstr "θ‘η—ζ•°ε€Όεˆ—οΌˆζ•°ε­—ζˆ–ζ•°ε­—εˆ—θ‘¨οΌ‰η¬¬δΈ‰ε››εˆ†δ½ζ•°οΌˆQ3οΌ‰ηš„δ»·ε€Όγ€‚δ»₯ζ­€η»“ζžœεˆ›ε»ΊδΈ€δΈͺζ–°εˆ—οΌˆBigDecimal)。" - -msgid "InterQuartileRangeNumber.name" -msgstr "θ‘η—ε››εˆ†δ½θ·οΌˆIQRοΌ‰" - -msgid "InterQuartileRangeNumber.description" -msgstr "θ‘η—ζ•°ε€Όεˆ—οΌˆζ•°ε­—ζˆ–ζ•°ε­—εˆ—θ‘¨οΌ‰ηš„ε››εˆ†δ½θ·οΌˆIQR)值。δ»₯ζ­€η»“ζžœεˆ›ε»ΊδΈ€δΈͺζ–°εˆ—οΌˆBigDecimal)。" - -msgid "SumNumbers.name" -msgstr "ζ•°ε€Όζ€»ε’Œ" - -msgid "SumNumbers.description" -msgstr "θ‘η—ηš„ζ•°ε€Όεˆ—οΌˆζ•°ε­—ζˆ–ζ•°ε­—εˆ—θ‘¨οΌ‰ηš„ζ€»ε’Œγ€‚δ»₯ζ­€η»“ζžœεˆ›ε»ΊδΈ€δΈͺζ–°εˆ—οΌˆBigDecimal)。" - -msgid "MinimumNumber.name" -msgstr "θ‘η—ζœ€ε°ε€Ό" - -msgid "MinimumNumber.description" -msgstr "θ‘η—ηš„ζ•°ε€Όεˆ—οΌˆζ•°ε­—ζˆ–ζ•°ε­—εˆ—θ‘¨οΌ‰ηš„ζœ€δ½Žε€Όγ€‚δ»₯ζ­€η»“ζžœεˆ›ε»ΊδΈ€δΈͺζ–°εˆ—οΌˆBigDecimal)。" - -msgid "MaximumNumber.name" -msgstr "θ‘η—ζœ€ε€§ε€Ό" - -msgid "MaximumNumber.description" -msgstr "θ‘η—ηš„ζ•°ε€Όεˆ—οΌˆζ•°ε­—ζˆ–ζ•°ε­—εˆ—θ‘¨οΌ‰ηš„ζœ€ε€§ε€Όγ€‚δ»₯ζ­€η»“ζžœεˆ›ε»ΊδΈ€δΈͺζ–°εˆ—οΌˆBigDecimal)。" - -msgid "BooleanLogicOperations.name" -msgstr "εˆεΉΆεΈƒε°”εˆ—" - -msgid "BooleanLogicOperations.description" -msgstr "εˆεΉΆεΈƒε°”εˆ—οΌŒεœ¨ι€‰εšηš„δ»₯εˆ›ε»ΊδΈ€δΈͺζ–°ηš„εˆ—ηš„ι€‰ζ‹©εΊ”η”¨δΊŽζ―εˆ—δΉ‹ι—΄ηš„ι€»θΎ‘θΏη—。 null值用为假。" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/org-gephi-datalab-plugin-manipulators-columns.pot b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/org-gephi-datalab-plugin-manipulators-columns.pot deleted file mode 100644 index b10933012c..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/org-gephi-datalab-plugin-manipulators-columns.pot +++ /dev/null @@ -1,87 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# Gephi Team , 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: Gephi 0.8\n" -"Report-Msgid-Bugs-To: gephi.team@lists.launchpad.net\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-05 14:52+0200\n" -"Last-Translator: Mathieu Bastian \n" -"Language-Team: English \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "DeleteColumn.name" -msgstr "Delete column" - -msgid "DeleteColumn.confirmation.message" -msgstr "Confirm to delete ''{0}''?" - -msgid "ClearColumnData.name" -msgstr "Clear column" - -msgid "ClearColumnData.confirmation.message" -msgstr "Confirm to clear ''{0}''?" - -msgid "CopyDataToOtherColumn.name" -msgstr "Copy data to other column" - -msgid "FillColumnWithValue.name" -msgstr "Fill column with a value" - -msgid "FillColumnWithValue.inputDialog.text" -msgstr "Choose a value to fill all rows:" - -msgid "DuplicateColumn.name" -msgstr "Duplicate column" - -msgid "ColumnValuesFrequency.name" -msgstr "Calculate values frequency" - -msgid "ColumnValuesFrequency.description" -msgstr "Calculate the frequency of each value appearance." - -msgid "ColumnValuesFrequency.report.header" -msgstr "

    Values frequencies report ''{0}''

    " - -msgid "ColumnValuesFrequency.report.piechart.title" -msgstr "Values frequencies pie chart" - -msgid "ColumnValuesFrequency.report.piechart.not-shown" -msgstr "There are more than 100 different values, pie chart is not shown." - -msgid "NumberColumnStatisticsReport.name" -msgstr "Calculate statistics" - -msgid "NumberColumnStatisticsReport.description" -msgstr "Calculate statistics on a number or number list column." - -msgid "CreateBooleanMatchesColumn.name" -msgstr "Create a boolean column from regex match" - -msgid "CreateBooleanMatchesColumn.description" -msgstr "" -"Create a boolean column with values indicating if each of the selected " -"values matches the regular expression." - -msgid "CreateFoundGroupsListColumn.name" -msgstr "Create column with list of regex matching groups" - -msgid "CreateFoundGroupsListColumn.description" -msgstr "" -"Create a string list column in which values are the matching groups results " -"of the regular expression." - -msgid "NegateBooleanColumn.name" -msgstr "Negate boolean values" - -msgid "ConvertColumnToDynamic.name" -msgstr "Convert column to dynamic" - -msgid "ConvertColumnToDynamic.description" -msgstr "" -"Convert an existing column to a dynamic column and optionally replace it" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/pt_BR.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/pt_BR.po deleted file mode 100644 index 5026bf2579..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/pt_BR.po +++ /dev/null @@ -1,85 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# CΓ©lio CJr , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-12-31 01:16+0000\n" -"Last-Translator: Eduardo Ramos \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/gephi/language/pt_BR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "DeleteColumn.name" -msgstr "Excluir coluna" - -msgid "DeleteColumn.confirmation.message" -msgstr "Confirma a exclusΓ£o de ''{0}''?" - -msgid "ClearColumnData.name" -msgstr "Limpar dados da coluna" - -msgid "ClearColumnData.confirmation.message" -msgstr "Confirma a limpeza dos dados da coluna ''{0}''?" - -msgid "CopyDataToOtherColumn.name" -msgstr "Copiar dados para outra coluna" - -msgid "FillColumnWithValue.name" -msgstr "Preencher coluna com um valor" - -msgid "FillColumnWithValue.inputDialog.text" -msgstr "Escolha um valor para preencher todas as linhas:" - -msgid "DuplicateColumn.name" -msgstr "Duplicar coluna" - -msgid "ColumnValuesFrequency.name" -msgstr "Calcular a frequΓͺncia de valores de coluna" - -msgid "ColumnValuesFrequency.description" -msgstr "Calcula a frequΓͺncia de ocorrΓͺncia de cada valor de uma coluna e exibe um relatΓ³rio" - -msgid "ColumnValuesFrequency.report.header" -msgstr "

    RelatΓ³rio de frequΓͺncias de valores para a coluna ''{0}''

    " - -msgid "ColumnValuesFrequency.report.piechart.title" -msgstr "GrΓ‘fico de pizza de frequΓͺncias de valores" - -msgid "ColumnValuesFrequency.report.piechart.not-shown" -msgstr "Existem mais de 100 diferentes valores, o grΓ‘fico de pizza nΓ£o serΓ‘ exibido." - -msgid "NumberColumnStatisticsReport.name" -msgstr "Calcular estatΓ­sticas" - -msgid "NumberColumnStatisticsReport.description" -msgstr "Calcula estatΓ­sticas de una coluna numΓ©rica ou de lista de nΓΊmeros e mostra um relatΓ³rio" - -msgid "CreateBooleanMatchesColumn.name" -msgstr "Criar coluna booleana a partir de uma expressΓ£o regular" - -msgid "CreateBooleanMatchesColumn.description" -msgstr "Cria uma nova coluna booleana com valores que indicam se cada valor da coluna selecionada atende Γ  expressΓ£o regular fornecida" - -msgid "CreateFoundGroupsListColumn.name" -msgstr "Criar coluna com a lista de grupos que atendem a uma expressΓ£o regular" - -msgid "CreateFoundGroupsListColumn.description" -msgstr "Cria uma nova columna de tipo lista de strings com valores preenchidos com a lista de grupos que atendem Γ  expressΓ£o regular fornecida" - -msgid "NegateBooleanColumn.name" -msgstr "Negar coluna booleana" - -msgid "ConvertColumnToDynamic.name" -msgstr "" - -msgid "ConvertColumnToDynamic.description" -msgstr "" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ru.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ru.po deleted file mode 100644 index 3868808769..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ru.po +++ /dev/null @@ -1,85 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-12-31 01:16+0000\n" -"Last-Translator: Eduardo Ramos \n" -"Language-Team: Russian (http://www.transifex.com/projects/p/gephi/language/ru/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -msgid "DeleteColumn.name" -msgstr "Π£Π΄Π°Π»ΠΈΡ‚ΡŒ столбСц" - -msgid "DeleteColumn.confirmation.message" -msgstr "Π’Ρ‹ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ столбСц ''{0}''?" - -msgid "ClearColumnData.name" -msgstr "ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ значСния Π² столбцС" - -msgid "ClearColumnData.confirmation.message" -msgstr "Π’Ρ‹ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ значСния Π² столбцС ''{0}''?" - -msgid "CopyDataToOtherColumn.name" -msgstr "Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ значСния Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ столбСц" - -msgid "FillColumnWithValue.name" -msgstr "Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ столбСц Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ" - -msgid "FillColumnWithValue.inputDialog.text" -msgstr "Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ всС ячСйки Π² столбцС" - -msgid "DuplicateColumn.name" -msgstr "Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ копию ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ" - -msgid "ColumnValuesFrequency.name" -msgstr "Π Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ частоты Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² столбцС" - -msgid "ColumnValuesFrequency.description" -msgstr "РассчитываСт частоту появлСния ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния Π² столбцС ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΎΡ‚Ρ‡Ρ‘Ρ‚" - -msgid "ColumnValuesFrequency.report.header" -msgstr "

    ΠžΡ‚Ρ‡Ρ‘Ρ‚ ΠΏΠΎ частотам Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² столбцС ''{0}''

    " - -msgid "ColumnValuesFrequency.report.piechart.title" -msgstr "ΠšΡ€ΡƒΠ³ΠΎΠ²Π°Ρ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° частот Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ" - -msgid "ColumnValuesFrequency.report.piechart.not-shown" -msgstr "Π’.ΠΊ. ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ 100 Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, круговая Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ Π±Ρ‹Π»Π° построСна." - -msgid "NumberColumnStatisticsReport.name" -msgstr "Расчёт статистики ΠΏΠΎ столбцу с числовыми значСниями" - -msgid "NumberColumnStatisticsReport.description" -msgstr "РассчитываСт статистику Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ столбцу с числами ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΎΡ‚Ρ‡Ρ‘Ρ‚" - -msgid "CreateBooleanMatchesColumn.name" -msgstr "Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ столбца с логичСскими значСниями с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ рСгулярного выраТСния" - -msgid "CreateBooleanMatchesColumn.description" -msgstr "Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ столбСц с логичСскими значСниями, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ провСряя, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‚ Π»ΠΈ значСния Π² Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ рСгулярному Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ" - -msgid "CreateFoundGroupsListColumn.name" -msgstr "Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ столбца с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ поиска ΠΏΠΎ маскС, Π·Π°Π΄Π°Π½Π½ΠΎΠΉ рСгулярным Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ" - -msgid "CreateFoundGroupsListColumn.description" -msgstr "Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ столбСц со значСниями Π³Ρ€ΡƒΠΏΠΏ, Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… рСгулярным Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ" - -msgid "NegateBooleanColumn.name" -msgstr "Π˜Π½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ столбца с логичСскими значСниями" - -msgid "ConvertColumnToDynamic.name" -msgstr "" - -msgid "ConvertColumnToDynamic.description" -msgstr "" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle.properties index 6bc031f74f..3da7ff11be 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle.properties @@ -25,12 +25,17 @@ NumberColumnStatisticsReportUI.divisionsLabel.text=Divisions: ConvertColumnToDynamicUI.descriptionLabel.text=Convert column ''{0}'' to a dynamic column ConvertColumnToDynamicUI.new.title={0}_dynamic -ConvertColumnToDynamicUI.titleLabel.text=Title: -ConvertColumnToDynamicUI.titleTextField.text= + ConvertColumnToDynamicUI.intervalOpenCheckbox.text=Open ConvertColumnToDynamicUI.intervalStartLabel.text=Interval start: -ConvertColumnToDynamicUI.intervalStartText.text=-Infinity -ConvertColumnToDynamicUI.intervalEndLabel.text=Interval end: -ConvertColumnToDynamicUI.intervalEndText.text=Infinity -ConvertColumnToDynamicUI.replaceColumnCheckbox.text=Replace column ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText=Replace original column with dynamic column instead of creating a new one +ConvertColumnToDynamicUI.replaceColumnCheckbox.text=Replace column +ConvertColumnToDynamicUI.titleTextField.text= +ConvertColumnToDynamicUI.titleLabel.text=Title: +ConvertColumnToDynamicUI.intervalEndLabel.text=Interval end: + +ConvertColumnToDynamicTimestampsUI.timestampLabel.text=Timestamp +ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.text=Replace column +ConvertColumnToDynamicTimestampsUI.titleTextField.text= +ConvertColumnToDynamicTimestampsUI.titleLabel.text=Title: +ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.toolTipText=Replace original column with dynamic column instead of creating a new one diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_ar.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_ar.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_ar.properties @@ -0,0 +1 @@ + diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_ca.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_ca.properties new file mode 100644 index 0000000000..541616bd62 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_ca.properties @@ -0,0 +1,38 @@ +CopyDataToOtherColumnUI.sourceColumnLabel.text=Copy data from ''{0}'' +CopyDataToOtherColumnUI.descriptionLabel.text=Copia a: +DuplicateColumnUI.titleLabel.text=Tνtol: +DuplicateColumnUI.typeLabel.text=Tipus: +DuplicateColumnUI.titleTextField.text= +DuplicateColumnUI.new.title={0}_cςpia +DuplicateColumnUI.descriptionLabel.text=Duplica "{0}". +GeneralCreateColumnFromRegexUI.descriptionLabel.text.boolean=Create a new boolean matches column from ''{0}'' +GeneralCreateColumnFromRegexUI.descriptionLabel.text.matching_groups=Create a new list of matching groups column from ''{0}'' +GeneralCreateColumnFromRegexUI.regexLabel.text=Regular expression: +GeneralCreateColumnFromRegexUI.regexTextField.text= +GeneralCreateColumnFromRegexUI.titleLabel.text=Tνtol: +GeneralCreateColumnFromRegexUI.titleTextField.text= +ColumnValuesFrequencyUI.configurePieChartButton.text=Configure pie chart +ColumnValuesFrequencyUI.showReportButton.text=Mostra l'informe +NumberColumnStatisticsReportUI.showReportButton.text=Mostra l'informe +NumberColumnStatisticsReportUI.configureBoxPlotButton.text=Configura el diagrama de caixa +NumberColumnStatisticsReportUI.configureScatterPlotButton.text=Configura el diagrama de dispersiσ +NumberColumnStatisticsReportUI.configureHistogramButton.text=Configura l'Historiograma +NumberColumnStatisticsReportUI.useLinesCheckBox.text=Mostra les lνnies +NumberColumnStatisticsReportUI.useLinearRegression.text=Show linear regression +NumberColumnStatisticsReportUI.divisionsLabel.text=Divisions: + + +ConvertColumnToDynamicUI.descriptionLabel.text=Convert column ''{0}'' to a dynamic column +ConvertColumnToDynamicUI.new.title={0}_dynamic +ConvertColumnToDynamicUI.intervalOpenCheckbox.text=Obre +ConvertColumnToDynamicUI.intervalStartLabel.text=L'interval comenηa: +ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText=Replace original column with dynamic column instead of creating a new one +ConvertColumnToDynamicUI.replaceColumnCheckbox.text=Reemplaηa la columna +ConvertColumnToDynamicUI.titleTextField.text= +ConvertColumnToDynamicUI.titleLabel.text=Tνtol: +ConvertColumnToDynamicUI.intervalEndLabel.text=L'interval acaba: +ConvertColumnToDynamicTimestampsUI.timestampLabel.text=Timestamp +ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.text=Replace column +ConvertColumnToDynamicTimestampsUI.titleTextField.text= +ConvertColumnToDynamicTimestampsUI.titleLabel.text=Tνtol: +ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.toolTipText=Replace original column with dynamic column instead of creating a new one diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_cs.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_cs.properties index 85c29fef76..1842890d83 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_cs.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_cs.properties @@ -1,65 +1,41 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Zbyn\u011bk Schwarz , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-12-31 01\:16+0000\nLast-Translator\: Eduardo Ramos \nLanguage-Team\: Czech (http\://www.transifex.com/projects/p/gephi/language/cs/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: cs\nPlural-Forms\: nplurals\=3; plural\=(n\=\=1) ? 0 \: (n>\=2 && n<\=4) ? 1 \: 2;\n - -CopyDataToOtherColumnUI.sourceColumnLabel.text=Kop\u00edrovat data z ''{0}'' - -CopyDataToOtherColumnUI.descriptionLabel.text=Kop\u00edrovat do\: - -DuplicateColumnUI.titleLabel.text=N\u00e1zev\: - -DuplicateColumnUI.typeLabel.text=Typ\: - -DuplicateColumnUI.new.title={0}_kopie - -DuplicateColumnUI.descriptionLabel.text=Kop\u00edrovat ''{0}''. - -GeneralCreateColumnFromRegexUI.descriptionLabel.text.boolean=Vytvo\u0159it nov\u00fd sloupec booleovsk\u00fdch shod z ''{0}'' - -GeneralCreateColumnFromRegexUI.descriptionLabel.text.matching_groups=Vytvo\u0159it nov\u00fd sloupec seznamu shoduj\u00edc\u00edch se skupin z ''{0}'' - -GeneralCreateColumnFromRegexUI.regexLabel.text=Regul\u00e1rn\u00ed v\u00fdraz\: - -GeneralCreateColumnFromRegexUI.titleLabel.text=N\u00e1zev\: - -ColumnValuesFrequencyUI.configurePieChartButton.text=Nastavit kol\u00e1\u010dov\u00fd graf - -ColumnValuesFrequencyUI.showReportButton.text=Zobrazit z\u00e1znam - -NumberColumnStatisticsReportUI.showReportButton.text=Zobrazit z\u00e1znam - -NumberColumnStatisticsReportUI.configureBoxPlotButton.text=Nastavit burzovn\u00ed graf - -NumberColumnStatisticsReportUI.configureScatterPlotButton.text=Nastavit bodov\u00fd graf - -NumberColumnStatisticsReportUI.configureHistogramButton.text=Nastavit histogram - -NumberColumnStatisticsReportUI.useLinesCheckBox.text=Zobrazit \u010d\u00e1ry - -NumberColumnStatisticsReportUI.useLinearRegression.text=Zobrazit line\u00e1rn\u00ed regresi - -NumberColumnStatisticsReportUI.divisionsLabel.text=Odd\u00edly\: - -!ConvertColumnToDynamicUI.descriptionLabel.text= - -!ConvertColumnToDynamicUI.new.title= - -!ConvertColumnToDynamicUI.titleLabel.text= - -!ConvertColumnToDynamicUI.intervalOpenCheckbox.text= - -!ConvertColumnToDynamicUI.intervalStartLabel.text= - -!ConvertColumnToDynamicUI.intervalStartText.text= - -!ConvertColumnToDynamicUI.intervalEndLabel.text= - -!ConvertColumnToDynamicUI.intervalEndText.text= - -!ConvertColumnToDynamicUI.replaceColumnCheckbox.text= - -!ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText= +CopyDataToOtherColumnUI.sourceColumnLabel.text=Kopνrovat data z ''{0}'' +CopyDataToOtherColumnUI.descriptionLabel.text=Kopνrovat do: +DuplicateColumnUI.titleLabel.text=Nαzev: +DuplicateColumnUI.typeLabel.text=Typ: +DuplicateColumnUI.titleTextField.text= +DuplicateColumnUI.new.title={0}_kopie +DuplicateColumnUI.descriptionLabel.text=Kopνrovat ''{0}''. + +GeneralCreateColumnFromRegexUI.descriptionLabel.text.boolean=Vytvo\u0159it novύ sloupec booleovskύch shod z ''{0}'' +GeneralCreateColumnFromRegexUI.descriptionLabel.text.matching_groups=Vytvo\u0159it novύ sloupec seznamu shodujνcνch se skupin z ''{0}'' +GeneralCreateColumnFromRegexUI.regexLabel.text=Regulαrnν vύraz: +GeneralCreateColumnFromRegexUI.regexTextField.text= +GeneralCreateColumnFromRegexUI.titleLabel.text=Nαzev: +GeneralCreateColumnFromRegexUI.titleTextField.text= +ColumnValuesFrequencyUI.configurePieChartButton.text=Nastavit kolα\u010dovύ graf +ColumnValuesFrequencyUI.showReportButton.text=Zobrazit zαznam +NumberColumnStatisticsReportUI.showReportButton.text=Zobrazit zαznam +NumberColumnStatisticsReportUI.configureBoxPlotButton.text=Nastavit burzovnν graf +NumberColumnStatisticsReportUI.configureScatterPlotButton.text=Nastavit bodovύ graf +NumberColumnStatisticsReportUI.configureHistogramButton.text=Nastavit histogram +NumberColumnStatisticsReportUI.useLinesCheckBox.text=Zobrazit \u010dαry +NumberColumnStatisticsReportUI.useLinearRegression.text=Zobrazit lineαrnν regresi +NumberColumnStatisticsReportUI.divisionsLabel.text=Oddνly: + + +ConvertColumnToDynamicUI.descriptionLabel.text=P\u0159evιst sloupec ''{0}'' na dynamickύ +ConvertColumnToDynamicUI.new.title={0}_dynamickύ + +ConvertColumnToDynamicUI.intervalOpenCheckbox.text=Otev\u0159enύ +ConvertColumnToDynamicUI.intervalStartLabel.text=Za\u010dαtek intervalu: +ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText=Nahradit p\u016fvodnν sloupec dynamickύm namνsto vytvα\u0159enν novιho +ConvertColumnToDynamicUI.replaceColumnCheckbox.text=Nahradit sloupec +ConvertColumnToDynamicUI.titleTextField.text= +ConvertColumnToDynamicUI.titleLabel.text=Nαzev: +ConvertColumnToDynamicUI.intervalEndLabel.text=Konec intervalu: + +# ConvertColumnToDynamicTimestampsUI.timestampLabel.text=Timestamp +# ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.text=Replace column +ConvertColumnToDynamicTimestampsUI.titleTextField.text= +# ConvertColumnToDynamicTimestampsUI.titleLabel.text=Title: +# ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.toolTipText=Replace original column with dynamic column instead of creating a new one diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_de.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_de.properties new file mode 100644 index 0000000000..e390ebb7f3 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_de.properties @@ -0,0 +1,38 @@ +CopyDataToOtherColumnUI.sourceColumnLabel.text=Daten von '{0}'' kopieren +CopyDataToOtherColumnUI.descriptionLabel.text=Kopieren nach: +DuplicateColumnUI.titleLabel.text=Titel: +DuplicateColumnUI.typeLabel.text=Type: +DuplicateColumnUI.titleTextField.text= +DuplicateColumnUI.new.title={0}_Kopie +DuplicateColumnUI.descriptionLabel.text=''{0}'' duplizieren. +GeneralCreateColumnFromRegexUI.descriptionLabel.text.boolean=Erzeuge neue boolesche Treffer-Spalte von "{0}" +GeneralCreateColumnFromRegexUI.descriptionLabel.text.matching_groups=Erzeuge eine neue Liste zutreffender Gruppen-Spalten von "{0}" +GeneralCreateColumnFromRegexUI.regexLabel.text=Regulδrer Ausdruck: +GeneralCreateColumnFromRegexUI.regexTextField.text= +GeneralCreateColumnFromRegexUI.titleLabel.text=Titel: +GeneralCreateColumnFromRegexUI.titleTextField.text= +ColumnValuesFrequencyUI.configurePieChartButton.text=Tortendiagramm konfigurieren +ColumnValuesFrequencyUI.showReportButton.text=Bericht anzeigen +NumberColumnStatisticsReportUI.showReportButton.text=Bericht anzeigen +NumberColumnStatisticsReportUI.configureBoxPlotButton.text=Boxplot konfigurieren +NumberColumnStatisticsReportUI.configureScatterPlotButton.text=Streudiagramm konfigurieren +NumberColumnStatisticsReportUI.configureHistogramButton.text=Histogramm konfigurieren +NumberColumnStatisticsReportUI.useLinesCheckBox.text=Zeilen anzeigen +NumberColumnStatisticsReportUI.useLinearRegression.text=Lineare Regression anzeigen +NumberColumnStatisticsReportUI.divisionsLabel.text=Unterteilungen: + + +ConvertColumnToDynamicUI.descriptionLabel.text=Wandle Spalte "{0}" in eine dynamische Spalte +ConvertColumnToDynamicUI.new.title={0}_dynamic +ConvertColumnToDynamicUI.intervalOpenCheckbox.text=Φffnen +ConvertColumnToDynamicUI.intervalStartLabel.text=Intervall Beginn: +ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText=Ersetze Originalspalte mit dynamischer Spalte anstatt eine neue zu erzeugen +ConvertColumnToDynamicUI.replaceColumnCheckbox.text=Ersetze Spalte +ConvertColumnToDynamicUI.titleTextField.text= +ConvertColumnToDynamicUI.titleLabel.text=Titel: +ConvertColumnToDynamicUI.intervalEndLabel.text=Intervall Ende: +ConvertColumnToDynamicTimestampsUI.timestampLabel.text=Zeitstempel +ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.text=Ersetze Spalte +ConvertColumnToDynamicTimestampsUI.titleTextField.text= +ConvertColumnToDynamicTimestampsUI.titleLabel.text=Titel: +ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.toolTipText=Ersetze originale Spalte durch dynamische Spalte anstatt eine neue zu erzeugen diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_es.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_es.properties index 3ecb324b75..d24b18baa5 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_es.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_es.properties @@ -1,66 +1,38 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Eduardo Ramos , 2012. -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-12-31 01\:37+0000\nLast-Translator\: Eduardo Ramos \nLanguage-Team\: Spanish (http\://www.transifex.com/projects/p/gephi/language/es/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: es\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n - CopyDataToOtherColumnUI.sourceColumnLabel.text=Copiar datos de ''{0}'' - -CopyDataToOtherColumnUI.descriptionLabel.text=Copiar a\: - -DuplicateColumnUI.titleLabel.text=T\u00edtulo\: - -DuplicateColumnUI.typeLabel.text=Tipo\: - +CopyDataToOtherColumnUI.descriptionLabel.text=Copiar a: +DuplicateColumnUI.titleLabel.text=Tνtulo: +DuplicateColumnUI.typeLabel.text=Tipo: +DuplicateColumnUI.titleTextField.text= DuplicateColumnUI.new.title={0}_copia - DuplicateColumnUI.descriptionLabel.text=Duplicar ''{0}''. - -GeneralCreateColumnFromRegexUI.descriptionLabel.text.boolean=Crear columna booleana a partir de expresi\u00f3n regular en ''{0}'' - -GeneralCreateColumnFromRegexUI.descriptionLabel.text.matching_groups=Creando columna de grupos que se ajustan a una expresi\u00f3n regular en ''{0}'' - -GeneralCreateColumnFromRegexUI.regexLabel.text=Expresi\u00f3n regular\: - -GeneralCreateColumnFromRegexUI.titleLabel.text=T\u00edtulo\: - -ColumnValuesFrequencyUI.configurePieChartButton.text=Configurar gr\u00e1fico de tarta - +GeneralCreateColumnFromRegexUI.descriptionLabel.text.boolean=Crear columna booleana a partir de expresiσn regular en ''{0}'' +GeneralCreateColumnFromRegexUI.descriptionLabel.text.matching_groups=Creando columna de grupos que se ajustan a una expresiσn regular en ''{0}'' +GeneralCreateColumnFromRegexUI.regexLabel.text=Expresiσn regular: +GeneralCreateColumnFromRegexUI.regexTextField.text= +GeneralCreateColumnFromRegexUI.titleLabel.text=Tνtulo: +GeneralCreateColumnFromRegexUI.titleTextField.text= +ColumnValuesFrequencyUI.configurePieChartButton.text=Configurar grαfico de tarta ColumnValuesFrequencyUI.showReportButton.text=Mostrar informe - NumberColumnStatisticsReportUI.showReportButton.text=Mostrar informe - NumberColumnStatisticsReportUI.configureBoxPlotButton.text=Configurar diagrama de cajas - -NumberColumnStatisticsReportUI.configureScatterPlotButton.text=Configurar diagrama de dispersi\u00f3n - +NumberColumnStatisticsReportUI.configureScatterPlotButton.text=Configurar diagrama de dispersiσn NumberColumnStatisticsReportUI.configureHistogramButton.text=Configurar histograma +NumberColumnStatisticsReportUI.useLinesCheckBox.text=Mostrar lνneas +NumberColumnStatisticsReportUI.useLinearRegression.text=Mostrar regresiσn lineal +NumberColumnStatisticsReportUI.divisionsLabel.text=Divisiones: -NumberColumnStatisticsReportUI.useLinesCheckBox.text=Mostrar l\u00edneas - -NumberColumnStatisticsReportUI.useLinearRegression.text=Mostrar regresi\u00f3n lineal - -NumberColumnStatisticsReportUI.divisionsLabel.text=Divisiones\: - -ConvertColumnToDynamicUI.descriptionLabel.text=Convertir columna "{0}" a din\u00e1mica +ConvertColumnToDynamicUI.descriptionLabel.text=Convertir columna "{0}" a dinαmica ConvertColumnToDynamicUI.new.title={0}_dinamico - -ConvertColumnToDynamicUI.titleLabel.text=T\u00edtulo\: - ConvertColumnToDynamicUI.intervalOpenCheckbox.text=Abierto - -ConvertColumnToDynamicUI.intervalStartLabel.text=Inicio del int\u00e9rvalo\: - -ConvertColumnToDynamicUI.intervalStartText.text=-Infinity - -ConvertColumnToDynamicUI.intervalEndLabel.text=Fin del int\u00e9rvalo\: - -ConvertColumnToDynamicUI.intervalEndText.text=Infinity - +ConvertColumnToDynamicUI.intervalStartLabel.text=Inicio del intιrvalo: +ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText=Reemplazar columna original por columna dinαmica en lugar de crear una nueva ConvertColumnToDynamicUI.replaceColumnCheckbox.text=Reemplazar columna - -ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText=Reemplazar columna original por columna din\u00e1mica en lugar de crear una nueva +ConvertColumnToDynamicUI.titleTextField.text= +ConvertColumnToDynamicUI.titleLabel.text=Tνtulo: +ConvertColumnToDynamicUI.intervalEndLabel.text=Fin del intιrvalo: +ConvertColumnToDynamicTimestampsUI.timestampLabel.text=Marca de tiempo +ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.text=Reemplazar columna +ConvertColumnToDynamicTimestampsUI.titleTextField.text= +ConvertColumnToDynamicTimestampsUI.titleLabel.text=Tνtulo: +ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.toolTipText=Reemplazar columna original por columna dinαmica en lugar de crear una nueva diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_fr.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_fr.properties index ce1d6afd0a..8cfae2d205 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_fr.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_fr.properties @@ -1,65 +1,38 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-12-31 01\:16+0000\nLast-Translator\: Eduardo Ramos \nLanguage-Team\: French (http\://www.transifex.com/projects/p/gephi/language/fr/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fr\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -CopyDataToOtherColumnUI.sourceColumnLabel.text=Copier les donn\u00e9es de ''{0}'' - -CopyDataToOtherColumnUI.descriptionLabel.text=Copier vers \: - -DuplicateColumnUI.titleLabel.text=Titre \: - -DuplicateColumnUI.typeLabel.text=Type \: - -DuplicateColumnUI.new.title={0}_copy - +CopyDataToOtherColumnUI.sourceColumnLabel.text=Copier les donnιes de ''{0}'' +CopyDataToOtherColumnUI.descriptionLabel.text=Copier vers : +DuplicateColumnUI.titleLabel.text=Titre : +DuplicateColumnUI.typeLabel.text=Type : +DuplicateColumnUI.titleTextField.text= +DuplicateColumnUI.new.title={0}_copie DuplicateColumnUI.descriptionLabel.text=Dupliquer ''{0}''. - -GeneralCreateColumnFromRegexUI.descriptionLabel.text.boolean=Cr\u00e9er une colonne bool\u00e9enne depuis ''{0}'' - -GeneralCreateColumnFromRegexUI.descriptionLabel.text.matching_groups=Cr\u00e9er une colonne de liste bool\u00e9enne depuis ''{0}'' - -GeneralCreateColumnFromRegexUI.regexLabel.text=Expression rationnelle \: - -GeneralCreateColumnFromRegexUI.titleLabel.text=Titre \: - +GeneralCreateColumnFromRegexUI.descriptionLabel.text.boolean=Crιer une colonne boolιenne depuis ''{0}'' +GeneralCreateColumnFromRegexUI.descriptionLabel.text.matching_groups=Crιer une colonne de liste boolιenne depuis ''{0}'' +GeneralCreateColumnFromRegexUI.regexLabel.text=Expression rationnelle : +GeneralCreateColumnFromRegexUI.regexTextField.text= +GeneralCreateColumnFromRegexUI.titleLabel.text=Titre : +GeneralCreateColumnFromRegexUI.titleTextField.text= ColumnValuesFrequencyUI.configurePieChartButton.text=Configurer le diagramme circulaire - ColumnValuesFrequencyUI.showReportButton.text=Afficher le rapport - NumberColumnStatisticsReportUI.showReportButton.text=Afficher le rapport - -NumberColumnStatisticsReportUI.configureBoxPlotButton.text=Configurer la bo\u00eete \u00e0 moustaches - +NumberColumnStatisticsReportUI.configureBoxPlotButton.text=Configurer la boξte ΰ moustaches NumberColumnStatisticsReportUI.configureScatterPlotButton.text=Configurer le nuage de points - NumberColumnStatisticsReportUI.configureHistogramButton.text=Configurer l'histogramme - NumberColumnStatisticsReportUI.useLinesCheckBox.text=Afficher les lignes - -NumberColumnStatisticsReportUI.useLinearRegression.text=Afficher la r\u00e9gression lin\u00e9aire - -NumberColumnStatisticsReportUI.divisionsLabel.text=Divisions \: - -!ConvertColumnToDynamicUI.descriptionLabel.text= - -!ConvertColumnToDynamicUI.new.title= - -!ConvertColumnToDynamicUI.titleLabel.text= - -!ConvertColumnToDynamicUI.intervalOpenCheckbox.text= - -!ConvertColumnToDynamicUI.intervalStartLabel.text= - -!ConvertColumnToDynamicUI.intervalStartText.text= - -!ConvertColumnToDynamicUI.intervalEndLabel.text= - -!ConvertColumnToDynamicUI.intervalEndText.text= - -!ConvertColumnToDynamicUI.replaceColumnCheckbox.text= - -!ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText= +NumberColumnStatisticsReportUI.useLinearRegression.text=Afficher la rιgression linιaire +NumberColumnStatisticsReportUI.divisionsLabel.text=Divisions : + + +ConvertColumnToDynamicUI.descriptionLabel.text=Convertir la colonne "{0}" en dynamique. +ConvertColumnToDynamicUI.new.title={0}_dynamique +ConvertColumnToDynamicUI.intervalOpenCheckbox.text=Ouvrir +ConvertColumnToDynamicUI.intervalStartLabel.text=Dιbut de l'intervalle : +ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText=Remplacer la colonne originale par une colonne dynamique au lieu d'en crιer une nouvelle. +ConvertColumnToDynamicUI.replaceColumnCheckbox.text=Remplacer colonne +ConvertColumnToDynamicUI.titleTextField.text= +ConvertColumnToDynamicUI.titleLabel.text=Titre : +ConvertColumnToDynamicUI.intervalEndLabel.text=Fin de l'intervalle : +ConvertColumnToDynamicTimestampsUI.timestampLabel.text=Timestamp +ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.text=Remplacer colonne +ConvertColumnToDynamicTimestampsUI.titleTextField.text= +ConvertColumnToDynamicTimestampsUI.titleLabel.text=Titre : +ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.toolTipText=Remplacer la colonne originale par une colonne dynamique au lieu d'en crιer une nouvelle. diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_he.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_he.properties new file mode 100644 index 0000000000..c6b2fe64e5 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_he.properties @@ -0,0 +1,38 @@ +CopyDataToOtherColumnUI.sourceColumnLabel.text=\u05d4\u05e2\u05ea\u05e7\u05ea \u05e0\u05ea\u05d5\u05e0\u05d9\u05dd \u05de "{0}" +CopyDataToOtherColumnUI.descriptionLabel.text=\u05d4\u05e2\u05ea\u05e7 \u05d0\u05dc: +DuplicateColumnUI.titleLabel.text=\u05db\u05d5\u05ea\u05e8\u05ea: +DuplicateColumnUI.typeLabel.text=\u05e1\u05d5\u05d2: +DuplicateColumnUI.titleTextField.text= +DuplicateColumnUI.new.title=\u05d4\u05e2\u05ea\u05e7_{0} +DuplicateColumnUI.descriptionLabel.text=\u05e9\u05db\u05e4\u05dc "{0}" +GeneralCreateColumnFromRegexUI.descriptionLabel.text.boolean=\u05e6\u05d5\u05e8 \u05d8\u05d5\u05e8 \u05d4\u05ea\u05d0\u05de\u05d5\u05ea \u05d4\u05d5\u05dc\u05d9\u05d0\u05e0\u05d9 \u05de "{0}" +GeneralCreateColumnFromRegexUI.descriptionLabel.text.matching_groups=\u05d9\u05e6\u05d9\u05e8\u05ea \u05d8\u05d5\u05e8 \u05d4\u05ea\u05d0\u05de\u05ea \u05e7\u05d1\u05d5\u05e6\u05d5\u05ea \u05de "{0}" +GeneralCreateColumnFromRegexUI.regexLabel.text=\u05d1\u05d9\u05d8\u05d5\u05d9 \u05e8\u05d2\u05d5\u05dc\u05e8\u05d9: +GeneralCreateColumnFromRegexUI.regexTextField.text= +GeneralCreateColumnFromRegexUI.titleLabel.text=\u05db\u05d5\u05ea\u05e8\u05ea:\u05db\u05d5\u05ea\u05e8\u05ea: +GeneralCreateColumnFromRegexUI.titleTextField.text= +ColumnValuesFrequencyUI.configurePieChartButton.text=\u05d4\u05e2\u05d3\u05e4\u05d5\u05ea \u05d2\u05e8\u05e3 \u05e4\u05d0\u05d9 +ColumnValuesFrequencyUI.showReportButton.text=\u05d4\u05e6\u05d2 \u05d3\u05d5\u05d7 +NumberColumnStatisticsReportUI.showReportButton.text=\u05d4\u05e6\u05d2 \u05d3\u05d5\u05d7 +NumberColumnStatisticsReportUI.configureBoxPlotButton.text=\u05d4\u05e2\u05d3\u05e4\u05d5\u05ea \u05d2\u05e8\u05e3 boxplot +NumberColumnStatisticsReportUI.configureScatterPlotButton.text=\u05d4\u05e2\u05d3\u05e4\u05d5\u05ea \u05d2\u05e8\u05e3 \u05e0\u05e7\u05d5\u05d3\u05d5\u05ea +NumberColumnStatisticsReportUI.configureHistogramButton.text=\u05d4\u05e2\u05d3\u05e4\u05d5\u05ea \u05d4\u05d9\u05e1\u05d8\u05d5\u05d2\u05e8\u05de\u05d4 +NumberColumnStatisticsReportUI.useLinesCheckBox.text=\u05d4\u05e8\u05d0\u05d4 \u05e7\u05d5\u05d9\u05dd +NumberColumnStatisticsReportUI.useLinearRegression.text=\u05d4\u05e6\u05d2 \u05e8\u05d2\u05e8\u05e1\u05d9\u05d4 \u05dc\u05d9\u05e0\u05d0\u05e8\u05d9\u05ea +NumberColumnStatisticsReportUI.divisionsLabel.text=\u05d7\u05dc\u05d5\u05e7\u05d5\u05ea: + + +ConvertColumnToDynamicUI.descriptionLabel.text=\u05d4\u05de\u05e8 \u05d8\u05d5\u05e8 "{0}" \u05dc\u05d8\u05d5\u05e8 \u05d3\u05d9\u05e0\u05d0\u05de\u05d9 +ConvertColumnToDynamicUI.new.title={0}_\u05d3\u05d9\u05e0\u05d0\u05de\u05d9 +ConvertColumnToDynamicUI.intervalOpenCheckbox.text=\u05e4\u05ea\u05d7 +ConvertColumnToDynamicUI.intervalStartLabel.text=\u05d4\u05ea\u05d7\u05dc\u05ea \u05d4\u05de\u05e7\u05d8\u05e2 +ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText=\u05d4\u05d7\u05dc\u05e3 \u05d4\u05d8\u05d5\u05e8 \u05d4\u05de\u05e7\u05d5\u05e8\u05d9 \u05e2\u05dd \u05d8\u05d5\u05e8 \u05d3\u05d9\u05e0\u05d0\u05de\u05d9 \u05d1\u05de\u05e7\u05d5\u05dd \u05dc\u05d9\u05e6\u05d5\u05e8 \u05d7\u05d3\u05e9 +ConvertColumnToDynamicUI.replaceColumnCheckbox.text=\u05d4\u05d7\u05dc\u05e3 \u05d8\u05d5\u05e8 +ConvertColumnToDynamicUI.titleTextField.text= +ConvertColumnToDynamicUI.titleLabel.text=\u05db\u05d5\u05ea\u05e8\u05ea: +ConvertColumnToDynamicUI.intervalEndLabel.text=\u05e1\u05d9\u05d5\u05dd \u05d4\u05de\u05e7\u05d8\u05e2: +ConvertColumnToDynamicTimestampsUI.timestampLabel.text=Timestamp +ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.text=Replace column +ConvertColumnToDynamicTimestampsUI.titleTextField.text= +ConvertColumnToDynamicTimestampsUI.titleLabel.text=Title: +ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.toolTipText=Replace original column with dynamic column instead of creating a new one diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_hu.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_hu.properties new file mode 100644 index 0000000000..f12a788b68 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_hu.properties @@ -0,0 +1,3 @@ + + +CopyDataToOtherColumnUI.sourceColumnLabel.text=Adatok m\u00E1sol\u00E1sa innen: ''{0}'' diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_it.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_it.properties new file mode 100644 index 0000000000..e3c3f7c6c5 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_it.properties @@ -0,0 +1,38 @@ +CopyDataToOtherColumnUI.sourceColumnLabel.text=Copy data from ''{0}'' +CopyDataToOtherColumnUI.descriptionLabel.text=Copy to: +DuplicateColumnUI.titleLabel.text=Title: +DuplicateColumnUI.typeLabel.text=Type: +DuplicateColumnUI.titleTextField.text= +DuplicateColumnUI.new.title={0}_copy +DuplicateColumnUI.descriptionLabel.text=Duplicate ''{0}''. +GeneralCreateColumnFromRegexUI.descriptionLabel.text.boolean=Create a new boolean matches column from ''{0}'' +GeneralCreateColumnFromRegexUI.descriptionLabel.text.matching_groups=Create a new list of matching groups column from ''{0}'' +GeneralCreateColumnFromRegexUI.regexLabel.text=Regular expression: +GeneralCreateColumnFromRegexUI.regexTextField.text= +GeneralCreateColumnFromRegexUI.titleLabel.text=Title: +GeneralCreateColumnFromRegexUI.titleTextField.text= +ColumnValuesFrequencyUI.configurePieChartButton.text=Configure pie chart +ColumnValuesFrequencyUI.showReportButton.text=Show report +NumberColumnStatisticsReportUI.showReportButton.text=Show report +NumberColumnStatisticsReportUI.configureBoxPlotButton.text=Configure box plot +NumberColumnStatisticsReportUI.configureScatterPlotButton.text=Configure scatter plot +NumberColumnStatisticsReportUI.configureHistogramButton.text=Configure histogram +NumberColumnStatisticsReportUI.useLinesCheckBox.text=Show lines +NumberColumnStatisticsReportUI.useLinearRegression.text=Show linear regression +NumberColumnStatisticsReportUI.divisionsLabel.text=Divisions: + + +ConvertColumnToDynamicUI.descriptionLabel.text=Convert column ''{0}'' to a dynamic column +ConvertColumnToDynamicUI.new.title={0}_dynamic +ConvertColumnToDynamicUI.intervalOpenCheckbox.text=Open +ConvertColumnToDynamicUI.intervalStartLabel.text=Interval start: +ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText=Replace original column with dynamic column instead of creating a new one +ConvertColumnToDynamicUI.replaceColumnCheckbox.text=Replace column +ConvertColumnToDynamicUI.titleTextField.text= +ConvertColumnToDynamicUI.titleLabel.text=Title: +ConvertColumnToDynamicUI.intervalEndLabel.text=Interval end: +ConvertColumnToDynamicTimestampsUI.timestampLabel.text=Timestamp +ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.text=Replace column +ConvertColumnToDynamicTimestampsUI.titleTextField.text= +ConvertColumnToDynamicTimestampsUI.titleLabel.text=Title: +ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.toolTipText=Replace original column with dynamic column instead of creating a new one diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_ja.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_ja.properties index 43058d23af..36c67e5a24 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_ja.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_ja.properties @@ -1,65 +1,41 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-12-31 01\:16+0000\nLast-Translator\: Eduardo Ramos \nLanguage-Team\: Japanese (http\://www.transifex.com/projects/p/gephi/language/ja/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ja\nPlural-Forms\: nplurals\=1; plural\=0;\n - -CopyDataToOtherColumnUI.sourceColumnLabel.text=''{0}''\u304b\u3089\u30c7\u30fc\u30bf\u3092\u30b3\u30d4\u30fc - -CopyDataToOtherColumnUI.descriptionLabel.text=\u30b3\u30d4\u30fc\: - -DuplicateColumnUI.titleLabel.text=\u30bf\u30a4\u30c8\u30eb\: - -DuplicateColumnUI.typeLabel.text=\u7a2e\u985e\: - -DuplicateColumnUI.new.title={0}_\u30b3\u30d4\u30fc - -DuplicateColumnUI.descriptionLabel.text=''{0}''\u3092\u8907\u5199 - -GeneralCreateColumnFromRegexUI.descriptionLabel.text.boolean=''{0}''\u304b\u3089\u65b0\u898f\u8ad6\u7406\u578b\u306e\u4e00\u81f4\u3059\u308b\u5217\u3092\u4f5c\u6210 - -GeneralCreateColumnFromRegexUI.descriptionLabel.text.matching_groups=''{0}''\u304b\u3089\u306e\u30b0\u30eb\u30fc\u30d7\u306e\u5217\u3092\u30de\u30c3\u30c1\u30f3\u30b0\u306e\u65b0\u898f\u30ea\u30b9\u30c8\u3092\u4f5c\u6210 - -GeneralCreateColumnFromRegexUI.regexLabel.text=\u6b63\u898f\u8868\u73fe\: - -GeneralCreateColumnFromRegexUI.titleLabel.text=\u30bf\u30a4\u30c8\u30eb\: - -ColumnValuesFrequencyUI.configurePieChartButton.text=\u5186\u30b0\u30e9\u30d5\u306e\u8a2d\u5b9a - -ColumnValuesFrequencyUI.showReportButton.text=\u5831\u544a\u3092\u95b2\u89a7 - -NumberColumnStatisticsReportUI.showReportButton.text=\u5831\u544a\u3092\u95b2\u89a7 - -NumberColumnStatisticsReportUI.configureBoxPlotButton.text=\u7bb1\u30d2\u30b2\u56f3\u306e\u8a2d\u5b9a - -NumberColumnStatisticsReportUI.configureScatterPlotButton.text=\u6563\u5e03\u56f3\u306e\u8a2d\u5b9a - -NumberColumnStatisticsReportUI.configureHistogramButton.text=\u30d2\u30b9\u30c8\u30b0\u30e9\u30e0\u306e\u8a2d\u5b9a - -NumberColumnStatisticsReportUI.useLinesCheckBox.text=\u7dda\u3092\u8868\u793a - -NumberColumnStatisticsReportUI.useLinearRegression.text=\u56de\u5e30\u76f4\u7dda\u306e\u8868\u793a - -NumberColumnStatisticsReportUI.divisionsLabel.text=\u90e8\u9580\: - -!ConvertColumnToDynamicUI.descriptionLabel.text= - -!ConvertColumnToDynamicUI.new.title= - -!ConvertColumnToDynamicUI.titleLabel.text= - -!ConvertColumnToDynamicUI.intervalOpenCheckbox.text= - -!ConvertColumnToDynamicUI.intervalStartLabel.text= - -!ConvertColumnToDynamicUI.intervalStartText.text= - -!ConvertColumnToDynamicUI.intervalEndLabel.text= - -!ConvertColumnToDynamicUI.intervalEndText.text= - -!ConvertColumnToDynamicUI.replaceColumnCheckbox.text= - -!ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText= +CopyDataToOtherColumnUI.sourceColumnLabel.text=''{0}''\u304b\u3089\u30c7\u30fc\u30bf\u3092\u30b3\u30d4\u30fc +CopyDataToOtherColumnUI.descriptionLabel.text=\u30b3\u30d4\u30fc: +DuplicateColumnUI.titleLabel.text=\u30bf\u30a4\u30c8\u30eb: +DuplicateColumnUI.typeLabel.text=\u7a2e\u985e: +DuplicateColumnUI.titleTextField.text= +DuplicateColumnUI.new.title={0}_\u30b3\u30d4\u30fc +DuplicateColumnUI.descriptionLabel.text=''{0}''\u3092\u8907\u5199 + +GeneralCreateColumnFromRegexUI.descriptionLabel.text.boolean=''{0}''\u304b\u3089\u65b0\u898f\u8ad6\u7406\u578b\u306e\u4e00\u81f4\u3059\u308b\u5217\u3092\u4f5c\u6210 +GeneralCreateColumnFromRegexUI.descriptionLabel.text.matching_groups=''{0}''\u304b\u3089\u306e\u30b0\u30eb\u30fc\u30d7\u306e\u5217\u3092\u30de\u30c3\u30c1\u30f3\u30b0\u306e\u65b0\u898f\u30ea\u30b9\u30c8\u3092\u4f5c\u6210 +GeneralCreateColumnFromRegexUI.regexLabel.text=\u6b63\u898f\u8868\u73fe: +GeneralCreateColumnFromRegexUI.regexTextField.text= +GeneralCreateColumnFromRegexUI.titleLabel.text=\u30bf\u30a4\u30c8\u30eb: +GeneralCreateColumnFromRegexUI.titleTextField.text= +ColumnValuesFrequencyUI.configurePieChartButton.text=\u5186\u30b0\u30e9\u30d5\u306e\u8a2d\u5b9a +ColumnValuesFrequencyUI.showReportButton.text=\u5831\u544a\u3092\u95b2\u89a7 +NumberColumnStatisticsReportUI.showReportButton.text=\u5831\u544a\u3092\u95b2\u89a7 +NumberColumnStatisticsReportUI.configureBoxPlotButton.text=\u7bb1\u30d2\u30b2\u56f3\u306e\u8a2d\u5b9a +NumberColumnStatisticsReportUI.configureScatterPlotButton.text=\u6563\u5e03\u56f3\u306e\u8a2d\u5b9a +NumberColumnStatisticsReportUI.configureHistogramButton.text=\u30d2\u30b9\u30c8\u30b0\u30e9\u30e0\u306e\u8a2d\u5b9a +NumberColumnStatisticsReportUI.useLinesCheckBox.text=\u7dda\u3092\u8868\u793a +NumberColumnStatisticsReportUI.useLinearRegression.text=\u56de\u5e30\u76f4\u7dda\u306e\u8868\u793a +NumberColumnStatisticsReportUI.divisionsLabel.text=\u90e8\u9580: + + +# ConvertColumnToDynamicUI.descriptionLabel.text=Convert column ''{0}'' to a dynamic column +# ConvertColumnToDynamicUI.new.title={0}_dynamic + +# ConvertColumnToDynamicUI.intervalOpenCheckbox.text=Open +# ConvertColumnToDynamicUI.intervalStartLabel.text=Interval start: +# ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText=Replace original column with dynamic column instead of creating a new one +# ConvertColumnToDynamicUI.replaceColumnCheckbox.text=Replace column +ConvertColumnToDynamicUI.titleTextField.text= +ConvertColumnToDynamicUI.titleLabel.text=\u30bf\u30a4\u30c8\u30eb: +# ConvertColumnToDynamicUI.intervalEndLabel.text=Interval end: + +# ConvertColumnToDynamicTimestampsUI.timestampLabel.text=Timestamp +# ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.text=Replace column +ConvertColumnToDynamicTimestampsUI.titleTextField.text= +# ConvertColumnToDynamicTimestampsUI.titleLabel.text=Title: +# ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.toolTipText=Replace original column with dynamic column instead of creating a new one diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_ko.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_ko.properties new file mode 100644 index 0000000000..5f52731ff3 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_ko.properties @@ -0,0 +1,35 @@ + + +CopyDataToOtherColumnUI.sourceColumnLabel.text=''{0}''\uB85C\uBD80\uD130 \uB370\uC774\uD130 \uBCF5\uC0AC\uD558\uAE30 +CopyDataToOtherColumnUI.descriptionLabel.text=\uBCF5\uC0AC\uD560 \uACF3: +DuplicateColumnUI.titleLabel.text=\uC81C\uBAA9: +DuplicateColumnUI.typeLabel.text=\uC720\uD615: +DuplicateColumnUI.new.title={0}_\uBCF5\uC81C +DuplicateColumnUI.descriptionLabel.text=''{0}''\uB97C \uBCF5\uC81C\uD558\uAE30. +GeneralCreateColumnFromRegexUI.descriptionLabel.text.boolean=''{0}''\uB85C\uBD80\uD130 \uB9E4\uCE6D\uB418\uB294 boolean \uD0C0\uC785\uC758 \uCEEC\uB7FC\uC744 \uC0DD\uC131\uD558\uAE30 +GeneralCreateColumnFromRegexUI.regexLabel.text=\uC815\uADDC\uC2DD: +GeneralCreateColumnFromRegexUI.titleLabel.text=\uC81C\uBAA9: +ColumnValuesFrequencyUI.showReportButton.text=\uB9AC\uD3EC\uD2B8 \uBCF4\uC774\uAE30 +NumberColumnStatisticsReportUI.showReportButton.text=\uB9AC\uD3EC\uD2B8 \uBCF4\uC774\uAE30 +ColumnValuesFrequencyUI.configurePieChartButton.text=\uD30C\uC774 \uCC28\uD2B8 \uC124\uC815\uD558\uAE30 +NumberColumnStatisticsReportUI.configureBoxPlotButton.text=\uBC15\uC2A4 \uD50C\uB86F \uC124\uC815\uD558\uAE30 +NumberColumnStatisticsReportUI.configureScatterPlotButton.text=\uC2A4\uCE90\uD130 \uD50C\uB86F \uC124\uC815\uD558\uAE30 +NumberColumnStatisticsReportUI.configureHistogramButton.text=\uD788\uC2A4\uD1A0\uADF8\uB7A8 \uC124\uC815\uD558\uAE30 +NumberColumnStatisticsReportUI.useLinesCheckBox.text=\uB77C\uC778 \uBCF4\uC774\uAE30 +NumberColumnStatisticsReportUI.useLinearRegression.text=\uC120\uD615 \uD68C\uAE30 \uBCF4\uC774\uAE30 + + +ConvertColumnToDynamicUI.descriptionLabel.text=''{0}'' \uCEEC\uB7FC\uC744 \uB3D9\uC801\uC778 \uCEEC\uB7FC\uC73C\uB85C \uBCC0\uD658\uD558\uAE30 +ConvertColumnToDynamicUI.new.title={0}_\uB3D9\uC801 +ConvertColumnToDynamicUI.intervalOpenCheckbox.text=\uC5F4\uAE30 +ConvertColumnToDynamicUI.intervalStartLabel.text=\uAC04\uACA9 \uC2DC\uC791: +ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText=\uC0C8\uB85C\uC6B4 \uCEEC\uB7FC\uC744 \uC0DD\uC131\uD558\uB294 \uB300\uC2E0 \uC6D0\uB798 \uCEEC\uB7FC\uC744 \uB3D9\uC801 \uCEEC\uB7FC\uC73C\uB85C \uB300\uCCB4\uD558\uAE30 +ConvertColumnToDynamicUI.replaceColumnCheckbox.text=\uCEEC\uB7FC \uB300\uCCB4\uD558\uAE30 +ConvertColumnToDynamicUI.titleLabel.text=\uC81C\uBAA9: +ConvertColumnToDynamicUI.intervalEndLabel.text=\uAC04\uACA9 \uB05D: +ConvertColumnToDynamicTimestampsUI.timestampLabel.text=\uD0C0\uC784\uC2A4\uD0EC\uD504 +ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.text=\uCEEC\uB7FC \uB300\uCCB4\uD558\uAE30 +ConvertColumnToDynamicTimestampsUI.titleLabel.text=\uC81C\uBAA9: +ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.toolTipText=\uC0C8\uB85C\uC6B4 \uCEEC\uB7FC\uC744 \uC0DD\uC131\uD558\uB294 \uB300\uC2E0 \uC6D0\uB798 \uCEEC\uB7FC\uC744 \uB3D9\uC801 \uCEEC\uB7FC\uC73C\uB85C \uB300\uCCB4\uD558\uAE30 +GeneralCreateColumnFromRegexUI.descriptionLabel.text.matching_groups=Create a new list of matching groups column from ''{0}''\uB85C\uBD80\uD130 \uB9E4\uCE6D\uB418\uB294 \uADF8\uB8F9\uB4E4\uC758 \uB9AC\uC2A4\uD2B8 \uD615\uD0DC\uB85C \uC0C8\uB85C\uC6B4 \uCEEC\uB7FC\uC744 \uC0DD\uC131\uD558\uAE30 +NumberColumnStatisticsReportUI.divisionsLabel.text=\uB514\uBE44\uC83C: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_nl.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_nl.properties new file mode 100644 index 0000000000..f20355c355 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_nl.properties @@ -0,0 +1,38 @@ +CopyDataToOtherColumnUI.sourceColumnLabel.text=Gegevens kopiλren van "{0}" +CopyDataToOtherColumnUI.descriptionLabel.text=Kopiλren naar: +DuplicateColumnUI.titleLabel.text=Titel: +DuplicateColumnUI.typeLabel.text=Type: +DuplicateColumnUI.titleTextField.text= +DuplicateColumnUI.new.title=Kopie van {0} +DuplicateColumnUI.descriptionLabel.text=Duplicate ''{0}''. +GeneralCreateColumnFromRegexUI.descriptionLabel.text.boolean=Create a new boolean matches column from ''{0}'' +GeneralCreateColumnFromRegexUI.descriptionLabel.text.matching_groups=Create a new list of matching groups column from ''{0}'' +GeneralCreateColumnFromRegexUI.regexLabel.text=Regular expression: +GeneralCreateColumnFromRegexUI.regexTextField.text= +GeneralCreateColumnFromRegexUI.titleLabel.text=Title: +GeneralCreateColumnFromRegexUI.titleTextField.text= +ColumnValuesFrequencyUI.configurePieChartButton.text=Configure pie chart +ColumnValuesFrequencyUI.showReportButton.text=Show report +NumberColumnStatisticsReportUI.showReportButton.text=Show report +NumberColumnStatisticsReportUI.configureBoxPlotButton.text=Configure box plot +NumberColumnStatisticsReportUI.configureScatterPlotButton.text=Configure scatter plot +NumberColumnStatisticsReportUI.configureHistogramButton.text=Histogram configureren +NumberColumnStatisticsReportUI.useLinesCheckBox.text=Show lines +NumberColumnStatisticsReportUI.useLinearRegression.text=Show linear regression +NumberColumnStatisticsReportUI.divisionsLabel.text=Divisions: + + +ConvertColumnToDynamicUI.descriptionLabel.text=Convert column ''{0}'' to a dynamic column +ConvertColumnToDynamicUI.new.title={0}_dynamic +ConvertColumnToDynamicUI.intervalOpenCheckbox.text=Openen +ConvertColumnToDynamicUI.intervalStartLabel.text=Interval start: +ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText=Replace original column with dynamic column instead of creating a new one +ConvertColumnToDynamicUI.replaceColumnCheckbox.text=Kolom vervangen +ConvertColumnToDynamicUI.titleTextField.text= +ConvertColumnToDynamicUI.titleLabel.text=Titel: +ConvertColumnToDynamicUI.intervalEndLabel.text=Interval end: +ConvertColumnToDynamicTimestampsUI.timestampLabel.text=Tijdstempel +ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.text=Kolom vervangen +ConvertColumnToDynamicTimestampsUI.titleTextField.text= +ConvertColumnToDynamicTimestampsUI.titleLabel.text=Titel: +ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.toolTipText=Replace original column with dynamic column instead of creating a new one diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_pt.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_pt.properties new file mode 100644 index 0000000000..620039749d --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_pt.properties @@ -0,0 +1,30 @@ +CopyDataToOtherColumnUI.sourceColumnLabel.text=Copiar dados de ''{0}'' +CopyDataToOtherColumnUI.descriptionLabel.text=Copiar para: +DuplicateColumnUI.titleLabel.text=T\u00EDtulo: +DuplicateColumnUI.typeLabel.text=Tipo: +DuplicateColumnUI.new.title={0} _c\u00F3pia +DuplicateColumnUI.descriptionLabel.text=Duplicar ''{0}''. +GeneralCreateColumnFromRegexUI.descriptionLabel.text.boolean=Criar coluna booleana que correspondem a uma express\u00E3o regular em ''{0}'' +GeneralCreateColumnFromRegexUI.descriptionLabel.text.matching_groups=Criar lista de grupos que correspondem a uma express\u00E3o regular em ''{0}'' +GeneralCreateColumnFromRegexUI.regexLabel.text=Express\u00E3o regular: +ConvertColumnToDynamicUI.intervalStartLabel.text=In\u00EDcio do intervalo: +GeneralCreateColumnFromRegexUI.titleLabel.text=T\u00EDtulo: +ColumnValuesFrequencyUI.configurePieChartButton.text=Configurar gr\u00E1fico de pizza +ColumnValuesFrequencyUI.showReportButton.text=Exibir relat\u00F3rio +NumberColumnStatisticsReportUI.showReportButton.text=Exibir relat\u00F3rio +NumberColumnStatisticsReportUI.configureBoxPlotButton.text=Configurar gr\u00E1fico de caixa +NumberColumnStatisticsReportUI.configureScatterPlotButton.text=Configurar gr\u00E1fico de dispers\u00E3o +NumberColumnStatisticsReportUI.configureHistogramButton.text=Configurar histograma +NumberColumnStatisticsReportUI.useLinesCheckBox.text=Exibir linhas +NumberColumnStatisticsReportUI.useLinearRegression.text=Exibir regress\u00E3o linear +NumberColumnStatisticsReportUI.divisionsLabel.text=Divis\u00F5es: +ConvertColumnToDynamicUI.descriptionLabel.text=Converter a coluna "{0}" para uma coluna din\u00E2mica +ConvertColumnToDynamicUI.new.title={0}_din\u00E2mica +ConvertColumnToDynamicUI.intervalOpenCheckbox.text=Aberto +ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText=Substituir a coluna original pela coluna din\u00E2mica ao inv\u00E9s de criar uma nova coluna +ConvertColumnToDynamicUI.replaceColumnCheckbox.text=Substituir coluna +ConvertColumnToDynamicUI.titleLabel.text=T\u00EDtulo: +ConvertColumnToDynamicUI.intervalEndLabel.text=Fim do intervalo: +ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.text=Substituir coluna +ConvertColumnToDynamicTimestampsUI.titleLabel.text=T\u00EDtulo: +ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.toolTipText=Substituir a coluna original pela coluna din\u00E2mica ao inv\u00E9s de criar uma nova coluna diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_pt_BR.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_pt_BR.properties index 6304bf4397..1da37a2f55 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_pt_BR.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_pt_BR.properties @@ -1,65 +1,38 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# C\u00e9lio CJr , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-12-31 01\:16+0000\nLast-Translator\: Eduardo Ramos \nLanguage-Team\: Portuguese (Brazil) (http\://www.transifex.com/projects/p/gephi/language/pt_BR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt_BR\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - CopyDataToOtherColumnUI.sourceColumnLabel.text=Copiar dados de ''{0}'' - -CopyDataToOtherColumnUI.descriptionLabel.text=Copiar para\: - -DuplicateColumnUI.titleLabel.text=T\u00edtulo\: - -DuplicateColumnUI.typeLabel.text=Tipo\: - -DuplicateColumnUI.new.title={0} _c\u00f3pia - +CopyDataToOtherColumnUI.descriptionLabel.text=Copiar para: +DuplicateColumnUI.titleLabel.text=Tνtulo: +DuplicateColumnUI.typeLabel.text=Tipo: +DuplicateColumnUI.titleTextField.text= +DuplicateColumnUI.new.title={0} _cσpia DuplicateColumnUI.descriptionLabel.text=Duplicar ''{0}''. - -GeneralCreateColumnFromRegexUI.descriptionLabel.text.boolean=Criar coluna booleana a partir de uma express\u00e3o regular em ''{0}'' - -GeneralCreateColumnFromRegexUI.descriptionLabel.text.matching_groups=Criando coluna de grupos que atendem a uma express\u00e3o regular em ''{0}'' - -GeneralCreateColumnFromRegexUI.regexLabel.text=Express\u00e3o regular\: - -GeneralCreateColumnFromRegexUI.titleLabel.text=T\u00edtulo\: - -ColumnValuesFrequencyUI.configurePieChartButton.text=Configurar gr\u00e1fico de pizza - -ColumnValuesFrequencyUI.showReportButton.text=Exibir relat\u00f3rio - -NumberColumnStatisticsReportUI.showReportButton.text=Exibir relat\u00f3rio - -NumberColumnStatisticsReportUI.configureBoxPlotButton.text=Configurar gr\u00e1fico de caixa - -NumberColumnStatisticsReportUI.configureScatterPlotButton.text=Configurar gr\u00e1fico de dispers\u00e3o - +GeneralCreateColumnFromRegexUI.descriptionLabel.text.boolean=Criar coluna booleana a partir de uma expressγo regular em ''{0}'' +GeneralCreateColumnFromRegexUI.descriptionLabel.text.matching_groups=Criando coluna de grupos que atendem a uma expressγo regular em ''{0}'' +GeneralCreateColumnFromRegexUI.regexLabel.text=Expressγo regular: +GeneralCreateColumnFromRegexUI.regexTextField.text= +GeneralCreateColumnFromRegexUI.titleLabel.text=Tνtulo: +GeneralCreateColumnFromRegexUI.titleTextField.text= +ColumnValuesFrequencyUI.configurePieChartButton.text=Configurar grαfico de pizza +ColumnValuesFrequencyUI.showReportButton.text=Exibir relatσrio +NumberColumnStatisticsReportUI.showReportButton.text=Exibir relatσrio +NumberColumnStatisticsReportUI.configureBoxPlotButton.text=Configurar grαfico de caixa +NumberColumnStatisticsReportUI.configureScatterPlotButton.text=Configurar grαfico de dispersγo NumberColumnStatisticsReportUI.configureHistogramButton.text=Configurar histograma - NumberColumnStatisticsReportUI.useLinesCheckBox.text=Exibir linhas - -NumberColumnStatisticsReportUI.useLinearRegression.text=Exibir regress\u00e3o linear - -NumberColumnStatisticsReportUI.divisionsLabel.text=Divis\u00f5es\: - -!ConvertColumnToDynamicUI.descriptionLabel.text= - -!ConvertColumnToDynamicUI.new.title= - -!ConvertColumnToDynamicUI.titleLabel.text= - -!ConvertColumnToDynamicUI.intervalOpenCheckbox.text= - -!ConvertColumnToDynamicUI.intervalStartLabel.text= - -!ConvertColumnToDynamicUI.intervalStartText.text= - -!ConvertColumnToDynamicUI.intervalEndLabel.text= - -!ConvertColumnToDynamicUI.intervalEndText.text= - -!ConvertColumnToDynamicUI.replaceColumnCheckbox.text= - -!ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText= +NumberColumnStatisticsReportUI.useLinearRegression.text=Exibir regressγo linear +NumberColumnStatisticsReportUI.divisionsLabel.text=Divisυes: + + +ConvertColumnToDynamicUI.descriptionLabel.text=Converter a coluna "{0}" para uma coluna dinβmica +ConvertColumnToDynamicUI.new.title={0}_dinβmica +ConvertColumnToDynamicUI.intervalOpenCheckbox.text=Aberto +ConvertColumnToDynamicUI.intervalStartLabel.text=Inνcio do intervalo +ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText=Substituir a coluna original pela coluna dinβmica ao invιs de criar uma nova coluna +ConvertColumnToDynamicUI.replaceColumnCheckbox.text=Substituir coluna +ConvertColumnToDynamicUI.titleTextField.text= +ConvertColumnToDynamicUI.titleLabel.text=Tνtulo: +ConvertColumnToDynamicUI.intervalEndLabel.text=Fim do intervalo: +ConvertColumnToDynamicTimestampsUI.timestampLabel.text=Timestamp +ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.text=Substituir coluna +ConvertColumnToDynamicTimestampsUI.titleTextField.text= +ConvertColumnToDynamicTimestampsUI.titleLabel.text=Tνtulo: +ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.toolTipText=Substituir a coluna original pela coluna dinβmica ao invιs de criar uma nova coluna diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_ro.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_ro.properties new file mode 100644 index 0000000000..319237091e --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_ro.properties @@ -0,0 +1,35 @@ + + +DuplicateColumnUI.new.title={0}_copie +DuplicateColumnUI.descriptionLabel.text=Duplic\u0103 ''{0}''. +GeneralCreateColumnFromRegexUI.descriptionLabel.text.boolean=Creaz\u0103 o nou\u0103 coloan\u0103 de potriviri booleene din ''{0}'' +GeneralCreateColumnFromRegexUI.descriptionLabel.text.matching_groups=Creaz\u0103 o nou\u0103 coloan\u0103 de liste de potriviri booleene din ''{0}'' +GeneralCreateColumnFromRegexUI.regexLabel.text=Expresie regulat\u0103: +ColumnValuesFrequencyUI.configurePieChartButton.text=Configureaz\u0103 diagrama radial\u0103 +ColumnValuesFrequencyUI.showReportButton.text=Afi\u0219eaz\u0103 raportul +NumberColumnStatisticsReportUI.showReportButton.text=Afi\u0219eaz\u0103 raportul +NumberColumnStatisticsReportUI.configureBoxPlotButton.text=Configureaz\u0103 diagrama boxplot +NumberColumnStatisticsReportUI.configureScatterPlotButton.text=Configureaz\u0103 diagrama de dispersie +NumberColumnStatisticsReportUI.configureHistogramButton.text=Configureaz\u0103 histograma +NumberColumnStatisticsReportUI.useLinesCheckBox.text=Afi\u0219eaz\u0103 liniile +NumberColumnStatisticsReportUI.useLinearRegression.text=Afi\u0219eaz\u0103 regresia liniar\u0103 + + +ConvertColumnToDynamicUI.descriptionLabel.text=Converte\u0219te coloana ''{0}'' \u00EEntr-o coloan\u0103 dinamic\u0103 +ConvertColumnToDynamicUI.new.title={0}_dinamic +ConvertColumnToDynamicUI.intervalOpenCheckbox.text=Deschis +ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText=\u00CEnlocuie\u0219te coloana original\u0103 cu una dinamic\u0103 \u00EEn locul cre\u0103rii uneia noi +ConvertColumnToDynamicUI.replaceColumnCheckbox.text=\u00CEnlocuie\u0219te coloana +ConvertColumnToDynamicUI.titleLabel.text=Titlu: +ConvertColumnToDynamicUI.intervalEndLabel.text=Sf\u00E2r\u0219it interval: +ConvertColumnToDynamicTimestampsUI.timestampLabel.text=Marcaj temporal +ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.text=\u00CEnlocuie\u0219te coloana +CopyDataToOtherColumnUI.sourceColumnLabel.text=Copiaz\u0103 datele din ''{0}'' +CopyDataToOtherColumnUI.descriptionLabel.text=Copiaz\u0103 \u00EEn: +DuplicateColumnUI.typeLabel.text=Tip: +DuplicateColumnUI.titleLabel.text=Titlu: +ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.toolTipText=\u00CEnlocuie\u0219te coloana original\u0103 cu una dinamic\u0103 \u00EEn locul cre\u0103rii uneia noi +GeneralCreateColumnFromRegexUI.titleLabel.text=Titlu: +NumberColumnStatisticsReportUI.divisionsLabel.text=Diviziuni: +ConvertColumnToDynamicTimestampsUI.titleLabel.text=Titlu: +ConvertColumnToDynamicUI.intervalStartLabel.text=\u00CEnceput interval: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_ru.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_ru.properties index 678ab6a29f..91105f12b4 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_ru.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_ru.properties @@ -1,65 +1,41 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-12-31 01\:16+0000\nLast-Translator\: Eduardo Ramos \nLanguage-Team\: Russian (http\://www.transifex.com/projects/p/gephi/language/ru/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ru\nPlural-Forms\: nplurals\=3; plural\=(n%10\=\=1 && n%100\!\=11 ? 0 \: n%10>\=2 && n%10<\=4 && (n%100<10 || n%100>\=20) ? 1 \: 2);\n - CopyDataToOtherColumnUI.sourceColumnLabel.text=\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 ''{0}'' - -CopyDataToOtherColumnUI.descriptionLabel.text=\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0434\u043b\u044f \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\: - -DuplicateColumnUI.titleLabel.text=\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0441\u0442\u043e\u043b\u0431\u0446\u0430\: - -DuplicateColumnUI.typeLabel.text=\u0422\u0438\u043f \u0441\u0442\u043e\u043b\u0431\u0446\u0430\: - +CopyDataToOtherColumnUI.descriptionLabel.text=\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0434\u043b\u044f \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f: +DuplicateColumnUI.titleLabel.text=\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0441\u0442\u043e\u043b\u0431\u0446\u0430: +DuplicateColumnUI.typeLabel.text=\u0422\u0438\u043f \u0441\u0442\u043e\u043b\u0431\u0446\u0430: +DuplicateColumnUI.titleTextField.text= DuplicateColumnUI.new.title={0}_copy - DuplicateColumnUI.descriptionLabel.text=\u0414\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 ''{0}''. - GeneralCreateColumnFromRegexUI.descriptionLabel.text.boolean=\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u0430 ''{0}'' \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u043c\u0443 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044e - GeneralCreateColumnFromRegexUI.descriptionLabel.text.matching_groups=\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c\u0438 \u043f\u043e\u0438\u0441\u043a\u0430 \u0432 \u0441\u0442\u043e\u043b\u0431\u0446\u0435 ''{0}'' \u043f\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0443, \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c - -GeneralCreateColumnFromRegexUI.regexLabel.text=\u0420\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\: - -GeneralCreateColumnFromRegexUI.titleLabel.text=\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0441\u0442\u043e\u043b\u0431\u0446\u0430\: - +GeneralCreateColumnFromRegexUI.regexLabel.text=\u0420\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435: +GeneralCreateColumnFromRegexUI.regexTextField.text= +GeneralCreateColumnFromRegexUI.titleLabel.text=\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0441\u0442\u043e\u043b\u0431\u0446\u0430: +GeneralCreateColumnFromRegexUI.titleTextField.text= ColumnValuesFrequencyUI.configurePieChartButton.text=\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043a\u0440\u0443\u0433\u043e\u0432\u0443\u044e \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0443 - ColumnValuesFrequencyUI.showReportButton.text=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0442\u0447\u0451\u0442 - NumberColumnStatisticsReportUI.showReportButton.text=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0442\u0447\u0451\u0442 - NumberColumnStatisticsReportUI.configureBoxPlotButton.text=\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c ''\u043a\u043e\u0440\u043e\u0431\u0447\u0430\u0442\u0443\u044e'' \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0443 - NumberColumnStatisticsReportUI.configureScatterPlotButton.text=\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0443 \u0440\u0430\u0441\u0441\u0435\u0438\u0432\u0430\u043d\u0438\u044f - NumberColumnStatisticsReportUI.configureHistogramButton.text=\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u0443 - NumberColumnStatisticsReportUI.useLinesCheckBox.text=\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u044f\u043c\u044b\u0435 - NumberColumnStatisticsReportUI.useLinearRegression.text=\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043b\u0438\u043d\u0435\u0439\u043d\u0443\u044e \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u044e +NumberColumnStatisticsReportUI.divisionsLabel.text=Divisions: -NumberColumnStatisticsReportUI.divisionsLabel.text=Divisions\: - -!ConvertColumnToDynamicUI.descriptionLabel.text= - -!ConvertColumnToDynamicUI.new.title= - -!ConvertColumnToDynamicUI.titleLabel.text= - -!ConvertColumnToDynamicUI.intervalOpenCheckbox.text= - -!ConvertColumnToDynamicUI.intervalStartLabel.text= - -!ConvertColumnToDynamicUI.intervalStartText.text= -!ConvertColumnToDynamicUI.intervalEndLabel.text= +# ConvertColumnToDynamicUI.descriptionLabel.text=Convert column ''{0}'' to a dynamic column +# ConvertColumnToDynamicUI.new.title={0}_dynamic -!ConvertColumnToDynamicUI.intervalEndText.text= +# ConvertColumnToDynamicUI.intervalOpenCheckbox.text=Open +# ConvertColumnToDynamicUI.intervalStartLabel.text=Interval start: +# ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText=Replace original column with dynamic column instead of creating a new one +# ConvertColumnToDynamicUI.replaceColumnCheckbox.text=Replace column +ConvertColumnToDynamicUI.titleTextField.text= +ConvertColumnToDynamicUI.titleLabel.text=\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0441\u0442\u043e\u043b\u0431\u0446\u0430: +# ConvertColumnToDynamicUI.intervalEndLabel.text=Interval end: -!ConvertColumnToDynamicUI.replaceColumnCheckbox.text= +# ConvertColumnToDynamicTimestampsUI.timestampLabel.text=Timestamp +# ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.text=Replace column +ConvertColumnToDynamicTimestampsUI.titleTextField.text= +# ConvertColumnToDynamicTimestampsUI.titleLabel.text=Title: +# ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.toolTipText=Replace original column with dynamic column instead of creating a new one -!ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText= diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_th.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_th.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_th.properties @@ -0,0 +1 @@ + diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_tr.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_tr.properties new file mode 100644 index 0000000000..b1d5186205 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_tr.properties @@ -0,0 +1,38 @@ +CopyDataToOtherColumnUI.sourceColumnLabel.text=Copy data from ''{0}'' +CopyDataToOtherColumnUI.descriptionLabel.text=Copy to: +DuplicateColumnUI.titleLabel.text=Ba\u015fl\u0131k: +DuplicateColumnUI.typeLabel.text=Type: +DuplicateColumnUI.titleTextField.text= +DuplicateColumnUI.new.title={0}_copy +DuplicateColumnUI.descriptionLabel.text=Duplicate ''{0}''. +GeneralCreateColumnFromRegexUI.descriptionLabel.text.boolean=Create a new boolean matches column from ''{0}'' +GeneralCreateColumnFromRegexUI.descriptionLabel.text.matching_groups=Create a new list of matching groups column from ''{0}'' +GeneralCreateColumnFromRegexUI.regexLabel.text=Regular expression: +GeneralCreateColumnFromRegexUI.regexTextField.text= +GeneralCreateColumnFromRegexUI.titleLabel.text=Ba\u015fl\u0131k: +GeneralCreateColumnFromRegexUI.titleTextField.text= +ColumnValuesFrequencyUI.configurePieChartButton.text=Configure pie chart +ColumnValuesFrequencyUI.showReportButton.text=Show report +NumberColumnStatisticsReportUI.showReportButton.text=Show report +NumberColumnStatisticsReportUI.configureBoxPlotButton.text=Configure box plot +NumberColumnStatisticsReportUI.configureScatterPlotButton.text=Configure scatter plot +NumberColumnStatisticsReportUI.configureHistogramButton.text=Configure histogram +NumberColumnStatisticsReportUI.useLinesCheckBox.text=Show lines +NumberColumnStatisticsReportUI.useLinearRegression.text=Do\u011frusal ba\u011flan\u0131m\u0131 (do\u011frusal regresyon) gφster +NumberColumnStatisticsReportUI.divisionsLabel.text=Divisions: + + +ConvertColumnToDynamicUI.descriptionLabel.text=Convert column ''{0}'' to a dynamic column +ConvertColumnToDynamicUI.new.title={0}_dynamic +ConvertColumnToDynamicUI.intervalOpenCheckbox.text=Open +ConvertColumnToDynamicUI.intervalStartLabel.text=Interval start: +ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText=Replace original column with dynamic column instead of creating a new one +ConvertColumnToDynamicUI.replaceColumnCheckbox.text=Replace column +ConvertColumnToDynamicUI.titleTextField.text= +ConvertColumnToDynamicUI.titleLabel.text=Ba\u015fl\u0131k: +ConvertColumnToDynamicUI.intervalEndLabel.text=Interval end: +ConvertColumnToDynamicTimestampsUI.timestampLabel.text=Timestamp +ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.text=Replace column +ConvertColumnToDynamicTimestampsUI.titleTextField.text= +ConvertColumnToDynamicTimestampsUI.titleLabel.text=Title: +ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.toolTipText=Replace original column with dynamic column instead of creating a new one diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_uk.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_uk.properties new file mode 100644 index 0000000000..be7c336349 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_uk.properties @@ -0,0 +1,36 @@ +GeneralCreateColumnFromRegexUI.descriptionLabel.text.boolean=\u0421\u0442\u0432\u043E\u0440\u0456\u0442\u044C \u043D\u043E\u0432\u0438\u0439 \u0441\u0442\u043E\u0432\u043F\u0435\u0446\u044C \u043B\u043E\u0433\u0456\u0447\u043D\u0438\u0445 \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u043D\u043E\u0441\u0442\u0435\u0439 \u0456\u0437 ''{0}'' +CopyDataToOtherColumnUI.descriptionLabel.text=\u041A\u043E\u043F\u0456\u044E\u0432\u0430\u0442\u0438 \u0434\u043E: +ConvertColumnToDynamicUI.titleLabel.text=\u041D\u0430\u0437\u0432\u0430: +ColumnValuesFrequencyUI.showReportButton.text=\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u0438 \u0437\u0432\u0456\u0442 +ConvertColumnToDynamicTimestampsUI.timestampLabel.text=\u041C\u0456\u0442\u043A\u0430 \u0447\u0430\u0441\u0443 +ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText=\u0417\u0430\u043C\u0456\u043D\u0456\u0442\u044C \u0432\u0438\u0445\u0456\u0434\u043D\u0438\u0439 \u0441\u0442\u043E\u0432\u043F\u0435\u0446\u044C \u0434\u0438\u043D\u0430\u043C\u0456\u0447\u043D\u0438\u043C \u0437\u0430\u043C\u0456\u0441\u0442\u044C \u0441\u0442\u0432\u043E\u0440\u0435\u043D\u043D\u044F \u043D\u043E\u0432\u043E\u0433\u043E +DuplicateColumnUI.titleTextField.text=\u0406 +CopyDataToOtherColumnUI.sourceColumnLabel.text=\u041A\u043E\u043F\u0456\u044E\u0432\u0430\u0442\u0438 \u0434\u0430\u043D\u0456 \u0437 ''{0}'' +ConvertColumnToDynamicUI.intervalEndLabel.text=\u041A\u0456\u043D\u0435\u0446\u044C \u0456\u043D\u0442\u0435\u0440\u0432\u0430\u043B\u0443: +DuplicateColumnUI.titleLabel.text=\u041D\u0430\u0437\u0432\u0430: +DuplicateColumnUI.typeLabel.text=\u0422\u0438\u043F: +DuplicateColumnUI.new.title={0}_\u043A\u043E\u043F\u0456\u044F +DuplicateColumnUI.descriptionLabel.text=\u0414\u0443\u0431\u043B\u0456\u043A\u0430\u0442 ''{0}''. +GeneralCreateColumnFromRegexUI.regexLabel.text=\u0420\u0435\u0433\u0443\u043B\u044F\u0440\u043D\u0438\u0439 \u0432\u0438\u0440\u0430\u0437: +GeneralCreateColumnFromRegexUI.regexTextField.text=\u0406 +GeneralCreateColumnFromRegexUI.titleLabel.text=\u041D\u0430\u0437\u0432\u0430: +GeneralCreateColumnFromRegexUI.titleTextField.text=\u0406 +ColumnValuesFrequencyUI.configurePieChartButton.text=\u041D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u0442\u0438 \u0441\u0435\u043A\u0442\u043E\u0440\u043D\u0443 \u0434\u0456\u0430\u0433\u0440\u0430\u043C\u0443 +NumberColumnStatisticsReportUI.configureBoxPlotButton.text=\u041D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u0442\u0438 \u0434\u0456\u0430\u0433\u0440\u0430\u043C\u0443 \u043A\u043E\u0440\u043E\u0431\u043A\u0438 +NumberColumnStatisticsReportUI.configureScatterPlotButton.text=\u041D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u0442\u0438 \u0434\u0456\u0430\u0433\u0440\u0430\u043C\u0443 \u0440\u043E\u0437\u0441\u0456\u044E\u0432\u0430\u043D\u043D\u044F +NumberColumnStatisticsReportUI.configureHistogramButton.text=\u041D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u0442\u0438 \u0433\u0456\u0441\u0442\u043E\u0433\u0440\u0430\u043C\u0443 +NumberColumnStatisticsReportUI.useLinesCheckBox.text=\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u0438 \u0440\u044F\u0434\u043A\u0438 +NumberColumnStatisticsReportUI.useLinearRegression.text=\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u0438 \u043B\u0456\u043D\u0456\u0439\u043D\u0443 \u0440\u0435\u0433\u0440\u0435\u0441\u0456\u044E +ConvertColumnToDynamicUI.new.title={0}_\u0434\u0438\u043D\u0430\u043C\u0456\u0447\u043D\u0438\u0439 +ConvertColumnToDynamicUI.intervalOpenCheckbox.text=\u0412\u0456\u0434\u043A\u0440\u0438\u0442\u0438 +ConvertColumnToDynamicUI.intervalStartLabel.text=\u041F\u043E\u0447\u0430\u0442\u043E\u043A \u0456\u043D\u0442\u0435\u0440\u0432\u0430\u043B\u0443: +ConvertColumnToDynamicUI.replaceColumnCheckbox.text=\u0417\u0430\u043C\u0456\u043D\u0438\u0442\u0438 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 +ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.text=\u0417\u0430\u043C\u0456\u043D\u0438\u0442\u0438 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 +ConvertColumnToDynamicTimestampsUI.titleTextField.text=\u0406 +GeneralCreateColumnFromRegexUI.descriptionLabel.text.matching_groups=\u0421\u0442\u0432\u043E\u0440\u0456\u0442\u044C \u043D\u043E\u0432\u0438\u0439 \u0441\u043F\u0438\u0441\u043E\u043A \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u043D\u0438\u0445 \u0441\u0442\u043E\u0432\u043F\u0446\u0456\u0432 \u0433\u0440\u0443\u043F \u0456\u0437 ''{0}'' +ConvertColumnToDynamicUI.titleTextField.text=\u0406 +NumberColumnStatisticsReportUI.showReportButton.text=\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u0438 \u0437\u0432\u0456\u0442 +ConvertColumnToDynamicTimestampsUI.titleLabel.text=\u041D\u0430\u0437\u0432\u0430: +NumberColumnStatisticsReportUI.divisionsLabel.text=\u041F\u0456\u0434\u0440\u043E\u0437\u0434\u0456\u043B\u0438: +ConvertColumnToDynamicUI.descriptionLabel.text=\u041F\u0435\u0440\u0435\u0442\u0432\u043E\u0440\u0438\u0442\u0438 \u0441\u0442\u043E\u0432\u043F\u0435\u0446\u044C ''{0}'' \u043D\u0430 \u0434\u0438\u043D\u0430\u043C\u0456\u0447\u043D\u0438\u0439 \u0441\u0442\u043E\u0432\u043F\u0435\u0446\u044C +ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.toolTipText=\u0417\u0430\u043C\u0456\u043D\u0456\u0442\u044C \u0432\u0438\u0445\u0456\u0434\u043D\u0438\u0439 \u0441\u0442\u043E\u0432\u043F\u0435\u0446\u044C \u0434\u0438\u043D\u0430\u043C\u0456\u0447\u043D\u0438\u043C \u0437\u0430\u043C\u0456\u0441\u0442\u044C \u0441\u0442\u0432\u043E\u0440\u0435\u043D\u043D\u044F \u043D\u043E\u0432\u043E\u0433\u043E diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_zh_CN.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_zh_CN.properties index 0b27cb2beb..82dfd7181f 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_zh_CN.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_zh_CN.properties @@ -1,64 +1,38 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-12-31 01\:16+0000\nLast-Translator\: Eduardo Ramos \nLanguage-Team\: Chinese (China) (http\://www.transifex.com/projects/p/gephi/language/zh_CN/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: zh_CN\nPlural-Forms\: nplurals\=1; plural\=0;\n - CopyDataToOtherColumnUI.sourceColumnLabel.text=\u4ece\u201c{0}\u201d\u590d\u5236\u6570\u636e - CopyDataToOtherColumnUI.descriptionLabel.text=\u590d\u5236\u5230\uff1a - DuplicateColumnUI.titleLabel.text=\u6807\u9898\uff1a - DuplicateColumnUI.typeLabel.text=\u7c7b\u578b\uff1a - +DuplicateColumnUI.titleTextField.text= DuplicateColumnUI.new.title={0}_\u590d\u5236 - -DuplicateColumnUI.descriptionLabel.text=\u590d\u5236\u201c{0}\u201d - +DuplicateColumnUI.descriptionLabel.text=\u590D\u5236 \u201C{0}\u201D. GeneralCreateColumnFromRegexUI.descriptionLabel.text.boolean=\u65b0\u5efa\u4e0e\u201c{0}\u201d\u5217\u5339\u914d\u7684\u5e03\u5c14\u578b - GeneralCreateColumnFromRegexUI.descriptionLabel.text.matching_groups=\u65b0\u5efa\u4e0e\u201c{0}\u201d\u5217\u7ec4\u5339\u914d\u7684\u5217\u8868 - GeneralCreateColumnFromRegexUI.regexLabel.text=\u6b63\u5219\u8868\u8fbe\u5f0f\uff1a - +GeneralCreateColumnFromRegexUI.regexTextField.text= GeneralCreateColumnFromRegexUI.titleLabel.text=\u6807\u9898\uff1a - +GeneralCreateColumnFromRegexUI.titleTextField.text= ColumnValuesFrequencyUI.configurePieChartButton.text=\u8bbe\u7f6e\u5706\u5f62\u5206\u683c\u7edf\u8ba1\u56fe\u8868 - ColumnValuesFrequencyUI.showReportButton.text=\u663e\u793a\u62a5\u544a - NumberColumnStatisticsReportUI.showReportButton.text=\u663e\u793a\u62a5\u544a - NumberColumnStatisticsReportUI.configureBoxPlotButton.text=\u8bbe\u7f6e - NumberColumnStatisticsReportUI.configureScatterPlotButton.text=\u8bbe\u7f6e\u76d2\u578b\u56fe - NumberColumnStatisticsReportUI.configureHistogramButton.text=\u8bbe\u7f6e\u76f4\u65b9\u56fe - NumberColumnStatisticsReportUI.useLinesCheckBox.text=\u663e\u793a\u7ebf - NumberColumnStatisticsReportUI.useLinearRegression.text=\u663e\u793a\u7ebf\u6027\u56de\u5f52 - NumberColumnStatisticsReportUI.divisionsLabel.text=\u5206\u7c7b\uff1a -!ConvertColumnToDynamicUI.descriptionLabel.text= - -!ConvertColumnToDynamicUI.new.title= - -!ConvertColumnToDynamicUI.titleLabel.text= - -!ConvertColumnToDynamicUI.intervalOpenCheckbox.text= - -!ConvertColumnToDynamicUI.intervalStartLabel.text= - -!ConvertColumnToDynamicUI.intervalStartText.text= - -!ConvertColumnToDynamicUI.intervalEndLabel.text= - -!ConvertColumnToDynamicUI.intervalEndText.text= - -!ConvertColumnToDynamicUI.replaceColumnCheckbox.text= -!ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText= +ConvertColumnToDynamicUI.descriptionLabel.text=\u8f6c\u6362\u5217 ''{0}'' \u4e3a\u52a8\u6001\u5217 +ConvertColumnToDynamicUI.new.title={0}_\u52a8\u6001 +ConvertColumnToDynamicUI.intervalOpenCheckbox.text=\u6253\u5f00 +ConvertColumnToDynamicUI.intervalStartLabel.text=\u95F4\u9694\u5F00\u5934\uFF1A +ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText=\u66f4\u6362\u800c\u4e0d\u662f\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u52a8\u6001\u5217\u539f\u59cb\u5217 +ConvertColumnToDynamicUI.replaceColumnCheckbox.text=\u66ff\u6362\u5217 +ConvertColumnToDynamicUI.titleTextField.text= +ConvertColumnToDynamicUI.titleLabel.text=\u6807\u9898\uff1a +ConvertColumnToDynamicUI.intervalEndLabel.text=\u95F4\u9694\u7ED3\u5C3E\uFF1A +ConvertColumnToDynamicTimestampsUI.timestampLabel.text=\u65f6\u95f4\u6233 +ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.text=\u66ff\u6362\u5217 +ConvertColumnToDynamicTimestampsUI.titleTextField.text= +ConvertColumnToDynamicTimestampsUI.titleLabel.text=\u6807\u9898\uff1a +ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.toolTipText=\u66f4\u6362\u800c\u4e0d\u662f\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u52a8\u6001\u5217\u539f\u59cb\u5217 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_zh_TW.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_zh_TW.properties new file mode 100644 index 0000000000..e3c3f7c6c5 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/Bundle_zh_TW.properties @@ -0,0 +1,38 @@ +CopyDataToOtherColumnUI.sourceColumnLabel.text=Copy data from ''{0}'' +CopyDataToOtherColumnUI.descriptionLabel.text=Copy to: +DuplicateColumnUI.titleLabel.text=Title: +DuplicateColumnUI.typeLabel.text=Type: +DuplicateColumnUI.titleTextField.text= +DuplicateColumnUI.new.title={0}_copy +DuplicateColumnUI.descriptionLabel.text=Duplicate ''{0}''. +GeneralCreateColumnFromRegexUI.descriptionLabel.text.boolean=Create a new boolean matches column from ''{0}'' +GeneralCreateColumnFromRegexUI.descriptionLabel.text.matching_groups=Create a new list of matching groups column from ''{0}'' +GeneralCreateColumnFromRegexUI.regexLabel.text=Regular expression: +GeneralCreateColumnFromRegexUI.regexTextField.text= +GeneralCreateColumnFromRegexUI.titleLabel.text=Title: +GeneralCreateColumnFromRegexUI.titleTextField.text= +ColumnValuesFrequencyUI.configurePieChartButton.text=Configure pie chart +ColumnValuesFrequencyUI.showReportButton.text=Show report +NumberColumnStatisticsReportUI.showReportButton.text=Show report +NumberColumnStatisticsReportUI.configureBoxPlotButton.text=Configure box plot +NumberColumnStatisticsReportUI.configureScatterPlotButton.text=Configure scatter plot +NumberColumnStatisticsReportUI.configureHistogramButton.text=Configure histogram +NumberColumnStatisticsReportUI.useLinesCheckBox.text=Show lines +NumberColumnStatisticsReportUI.useLinearRegression.text=Show linear regression +NumberColumnStatisticsReportUI.divisionsLabel.text=Divisions: + + +ConvertColumnToDynamicUI.descriptionLabel.text=Convert column ''{0}'' to a dynamic column +ConvertColumnToDynamicUI.new.title={0}_dynamic +ConvertColumnToDynamicUI.intervalOpenCheckbox.text=Open +ConvertColumnToDynamicUI.intervalStartLabel.text=Interval start: +ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText=Replace original column with dynamic column instead of creating a new one +ConvertColumnToDynamicUI.replaceColumnCheckbox.text=Replace column +ConvertColumnToDynamicUI.titleTextField.text= +ConvertColumnToDynamicUI.titleLabel.text=Title: +ConvertColumnToDynamicUI.intervalEndLabel.text=Interval end: +ConvertColumnToDynamicTimestampsUI.timestampLabel.text=Timestamp +ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.text=Replace column +ConvertColumnToDynamicTimestampsUI.titleTextField.text= +ConvertColumnToDynamicTimestampsUI.titleLabel.text=Title: +ConvertColumnToDynamicTimestampsUI.replaceColumnCheckbox.toolTipText=Replace original column with dynamic column instead of creating a new one diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/cs.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/cs.po deleted file mode 100644 index 53ec754895..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/cs.po +++ /dev/null @@ -1,106 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# ZbynΔ›k Schwarz , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-12-31 01:16+0000\n" -"Last-Translator: Eduardo Ramos \n" -"Language-Team: Czech (http://www.transifex.com/projects/p/gephi/language/cs/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: cs\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" - -msgid "CopyDataToOtherColumnUI.sourceColumnLabel.text" -msgstr "KopΓ­rovat data z ''{0}''" - -msgid "CopyDataToOtherColumnUI.descriptionLabel.text" -msgstr "KopΓ­rovat do:" - -msgid "DuplicateColumnUI.titleLabel.text" -msgstr "NΓ‘zev:" - -msgid "DuplicateColumnUI.typeLabel.text" -msgstr "Typ:" - -msgid "DuplicateColumnUI.new.title" -msgstr "{0}_kopie" - -msgid "DuplicateColumnUI.descriptionLabel.text" -msgstr "KopΓ­rovat ''{0}''." - -msgid "GeneralCreateColumnFromRegexUI.descriptionLabel.text.boolean" -msgstr "VytvoΕ™it novΓ½ sloupec booleovskΓ½ch shod z ''{0}''" - -msgid "GeneralCreateColumnFromRegexUI.descriptionLabel.text.matching_groups" -msgstr "VytvoΕ™it novΓ½ sloupec seznamu shodujΓ­cΓ­ch se skupin z ''{0}''" - -msgid "GeneralCreateColumnFromRegexUI.regexLabel.text" -msgstr "RegulΓ‘rnΓ­ vΓ½raz:" - -msgid "GeneralCreateColumnFromRegexUI.titleLabel.text" -msgstr "NΓ‘zev:" - -msgid "ColumnValuesFrequencyUI.configurePieChartButton.text" -msgstr "Nastavit kolÑčovΓ½ graf" - -msgid "ColumnValuesFrequencyUI.showReportButton.text" -msgstr "Zobrazit zΓ‘znam" - -msgid "NumberColumnStatisticsReportUI.showReportButton.text" -msgstr "Zobrazit zΓ‘znam" - -msgid "NumberColumnStatisticsReportUI.configureBoxPlotButton.text" -msgstr "Nastavit burzovnΓ­ graf" - -msgid "NumberColumnStatisticsReportUI.configureScatterPlotButton.text" -msgstr "Nastavit bodovΓ½ graf" - -msgid "NumberColumnStatisticsReportUI.configureHistogramButton.text" -msgstr "Nastavit histogram" - -msgid "NumberColumnStatisticsReportUI.useLinesCheckBox.text" -msgstr "Zobrazit čÑry" - -msgid "NumberColumnStatisticsReportUI.useLinearRegression.text" -msgstr "Zobrazit lineΓ‘rnΓ­ regresi" - -msgid "NumberColumnStatisticsReportUI.divisionsLabel.text" -msgstr "OddΓ­ly:" - -msgid "ConvertColumnToDynamicUI.descriptionLabel.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.new.title" -msgstr "" - -msgid "ConvertColumnToDynamicUI.titleLabel.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.intervalOpenCheckbox.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.intervalStartLabel.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.intervalStartText.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.intervalEndLabel.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.intervalEndText.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.replaceColumnCheckbox.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText" -msgstr "" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/es.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/es.po deleted file mode 100644 index 8002eb9d2f..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/es.po +++ /dev/null @@ -1,107 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Eduardo Ramos , 2012. -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-12-31 01:37+0000\n" -"Last-Translator: Eduardo Ramos \n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/gephi/language/es/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -msgid "CopyDataToOtherColumnUI.sourceColumnLabel.text" -msgstr "Copiar datos de ''{0}''" - -msgid "CopyDataToOtherColumnUI.descriptionLabel.text" -msgstr "Copiar a:" - -msgid "DuplicateColumnUI.titleLabel.text" -msgstr "TΓ­tulo:" - -msgid "DuplicateColumnUI.typeLabel.text" -msgstr "Tipo:" - -msgid "DuplicateColumnUI.new.title" -msgstr "{0}_copia" - -msgid "DuplicateColumnUI.descriptionLabel.text" -msgstr "Duplicar ''{0}''." - -msgid "GeneralCreateColumnFromRegexUI.descriptionLabel.text.boolean" -msgstr "Crear columna booleana a partir de expresiΓ³n regular en ''{0}''" - -msgid "GeneralCreateColumnFromRegexUI.descriptionLabel.text.matching_groups" -msgstr "Creando columna de grupos que se ajustan a una expresiΓ³n regular en ''{0}''" - -msgid "GeneralCreateColumnFromRegexUI.regexLabel.text" -msgstr "ExpresiΓ³n regular:" - -msgid "GeneralCreateColumnFromRegexUI.titleLabel.text" -msgstr "TΓ­tulo:" - -msgid "ColumnValuesFrequencyUI.configurePieChartButton.text" -msgstr "Configurar grΓ‘fico de tarta" - -msgid "ColumnValuesFrequencyUI.showReportButton.text" -msgstr "Mostrar informe" - -msgid "NumberColumnStatisticsReportUI.showReportButton.text" -msgstr "Mostrar informe" - -msgid "NumberColumnStatisticsReportUI.configureBoxPlotButton.text" -msgstr "Configurar diagrama de cajas" - -msgid "NumberColumnStatisticsReportUI.configureScatterPlotButton.text" -msgstr "Configurar diagrama de dispersiΓ³n" - -msgid "NumberColumnStatisticsReportUI.configureHistogramButton.text" -msgstr "Configurar histograma" - -msgid "NumberColumnStatisticsReportUI.useLinesCheckBox.text" -msgstr "Mostrar lΓ­neas" - -msgid "NumberColumnStatisticsReportUI.useLinearRegression.text" -msgstr "Mostrar regresiΓ³n lineal" - -msgid "NumberColumnStatisticsReportUI.divisionsLabel.text" -msgstr "Divisiones:" - -msgid "ConvertColumnToDynamicUI.descriptionLabel.text" -msgstr "Convertir columna \"{0}\" a dinΓ‘mica" - -msgid "ConvertColumnToDynamicUI.new.title" -msgstr "{0}_dinamico" - -msgid "ConvertColumnToDynamicUI.titleLabel.text" -msgstr "TΓ­tulo:" - -msgid "ConvertColumnToDynamicUI.intervalOpenCheckbox.text" -msgstr "Abierto" - -msgid "ConvertColumnToDynamicUI.intervalStartLabel.text" -msgstr "Inicio del intΓ©rvalo:" - -msgid "ConvertColumnToDynamicUI.intervalStartText.text" -msgstr "-Infinity" - -msgid "ConvertColumnToDynamicUI.intervalEndLabel.text" -msgstr "Fin del intΓ©rvalo:" - -msgid "ConvertColumnToDynamicUI.intervalEndText.text" -msgstr "Infinity" - -msgid "ConvertColumnToDynamicUI.replaceColumnCheckbox.text" -msgstr "Reemplazar columna" - -msgid "ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText" -msgstr "Reemplazar columna original por columna dinΓ‘mica en lugar de crear una nueva" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/fr.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/fr.po deleted file mode 100644 index 39802616df..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/fr.po +++ /dev/null @@ -1,106 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-12-31 01:16+0000\n" -"Last-Translator: Eduardo Ramos \n" -"Language-Team: French (http://www.transifex.com/projects/p/gephi/language/fr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "CopyDataToOtherColumnUI.sourceColumnLabel.text" -msgstr "Copier les donnΓ©es de ''{0}''" - -msgid "CopyDataToOtherColumnUI.descriptionLabel.text" -msgstr "Copier vers :" - -msgid "DuplicateColumnUI.titleLabel.text" -msgstr "Titre :" - -msgid "DuplicateColumnUI.typeLabel.text" -msgstr "Type :" - -msgid "DuplicateColumnUI.new.title" -msgstr "{0}_copy" - -msgid "DuplicateColumnUI.descriptionLabel.text" -msgstr "Dupliquer ''{0}''." - -msgid "GeneralCreateColumnFromRegexUI.descriptionLabel.text.boolean" -msgstr "CrΓ©er une colonne boolΓ©enne depuis ''{0}''" - -msgid "GeneralCreateColumnFromRegexUI.descriptionLabel.text.matching_groups" -msgstr "CrΓ©er une colonne de liste boolΓ©enne depuis ''{0}''" - -msgid "GeneralCreateColumnFromRegexUI.regexLabel.text" -msgstr "Expression rationnelle :" - -msgid "GeneralCreateColumnFromRegexUI.titleLabel.text" -msgstr "Titre :" - -msgid "ColumnValuesFrequencyUI.configurePieChartButton.text" -msgstr "Configurer le diagramme circulaire" - -msgid "ColumnValuesFrequencyUI.showReportButton.text" -msgstr "Afficher le rapport" - -msgid "NumberColumnStatisticsReportUI.showReportButton.text" -msgstr "Afficher le rapport" - -msgid "NumberColumnStatisticsReportUI.configureBoxPlotButton.text" -msgstr "Configurer la boΓte Γ  moustaches" - -msgid "NumberColumnStatisticsReportUI.configureScatterPlotButton.text" -msgstr "Configurer le nuage de points" - -msgid "NumberColumnStatisticsReportUI.configureHistogramButton.text" -msgstr "Configurer l'histogramme" - -msgid "NumberColumnStatisticsReportUI.useLinesCheckBox.text" -msgstr "Afficher les lignes" - -msgid "NumberColumnStatisticsReportUI.useLinearRegression.text" -msgstr "Afficher la rΓ©gression linΓ©aire" - -msgid "NumberColumnStatisticsReportUI.divisionsLabel.text" -msgstr "Divisions :" - -msgid "ConvertColumnToDynamicUI.descriptionLabel.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.new.title" -msgstr "" - -msgid "ConvertColumnToDynamicUI.titleLabel.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.intervalOpenCheckbox.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.intervalStartLabel.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.intervalStartText.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.intervalEndLabel.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.intervalEndText.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.replaceColumnCheckbox.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText" -msgstr "" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/ja.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/ja.po deleted file mode 100644 index e68b428d80..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/ja.po +++ /dev/null @@ -1,106 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-12-31 01:16+0000\n" -"Last-Translator: Eduardo Ramos \n" -"Language-Team: Japanese (http://www.transifex.com/projects/p/gephi/language/ja/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ja\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "CopyDataToOtherColumnUI.sourceColumnLabel.text" -msgstr "''{0}''からデータをコピー" - -msgid "CopyDataToOtherColumnUI.descriptionLabel.text" -msgstr "コピー:" - -msgid "DuplicateColumnUI.titleLabel.text" -msgstr "γ‚Ώγ‚€γƒˆγƒ«:" - -msgid "DuplicateColumnUI.typeLabel.text" -msgstr "η¨ι‘ž:" - -msgid "DuplicateColumnUI.new.title" -msgstr "{0}_コピー" - -msgid "DuplicateColumnUI.descriptionLabel.text" -msgstr "''{0}''を耇写" - -msgid "GeneralCreateColumnFromRegexUI.descriptionLabel.text.boolean" -msgstr "''{0}''γ‹γ‚‰ζ–°θ¦θ«–η†εž‹γδΈ€θ‡΄γ™γ‚‹εˆ—γ‚’δ½œζˆ" - -msgid "GeneralCreateColumnFromRegexUI.descriptionLabel.text.matching_groups" -msgstr "''{0}''からγγ‚°γƒ«γƒΌγƒ—γεˆ—γ‚’γƒžγƒƒγƒγƒ³γ‚°γζ–°θ¦γƒͺγ‚Ήγƒˆγ‚’δ½œζˆ" - -msgid "GeneralCreateColumnFromRegexUI.regexLabel.text" -msgstr "正規葨現:" - -msgid "GeneralCreateColumnFromRegexUI.titleLabel.text" -msgstr "γ‚Ώγ‚€γƒˆγƒ«:" - -msgid "ColumnValuesFrequencyUI.configurePieChartButton.text" -msgstr "円グラフγθ¨­εš" - -msgid "ColumnValuesFrequencyUI.showReportButton.text" -msgstr "ε ±ε‘Šγ‚’ι–²θ¦§" - -msgid "NumberColumnStatisticsReportUI.showReportButton.text" -msgstr "ε ±ε‘Šγ‚’ι–²θ¦§" - -msgid "NumberColumnStatisticsReportUI.configureBoxPlotButton.text" -msgstr "η±γƒ’γ‚²ε›³γθ¨­εš" - -msgid "NumberColumnStatisticsReportUI.configureScatterPlotButton.text" -msgstr "ζ•£εΈƒε›³γθ¨­εš" - -msgid "NumberColumnStatisticsReportUI.configureHistogramButton.text" -msgstr "γƒ’γ‚Ήγƒˆγ‚°γƒ©γƒ γθ¨­εš" - -msgid "NumberColumnStatisticsReportUI.useLinesCheckBox.text" -msgstr "η·šγ‚’θ‘¨η€Ί" - -msgid "NumberColumnStatisticsReportUI.useLinearRegression.text" -msgstr "ε›žεΈ°η›΄η·šγθ‘¨η€Ί" - -msgid "NumberColumnStatisticsReportUI.divisionsLabel.text" -msgstr "部門:" - -msgid "ConvertColumnToDynamicUI.descriptionLabel.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.new.title" -msgstr "" - -msgid "ConvertColumnToDynamicUI.titleLabel.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.intervalOpenCheckbox.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.intervalStartLabel.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.intervalStartText.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.intervalEndLabel.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.intervalEndText.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.replaceColumnCheckbox.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText" -msgstr "" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/org-gephi-datalab-plugin-manipulators-columns-ui.pot b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/org-gephi-datalab-plugin-manipulators-columns-ui.pot deleted file mode 100644 index cffac3a0a3..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/org-gephi-datalab-plugin-manipulators-columns-ui.pot +++ /dev/null @@ -1,104 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# Gephi Team , 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: Gephi 0.8\n" -"Report-Msgid-Bugs-To: gephi.team@lists.launchpad.net\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-05 14:52+0200\n" -"Last-Translator: Mathieu Bastian \n" -"Language-Team: English \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "CopyDataToOtherColumnUI.sourceColumnLabel.text" -msgstr "Copy data from ''{0}''" - -msgid "CopyDataToOtherColumnUI.descriptionLabel.text" -msgstr "Copy to:" - -msgid "DuplicateColumnUI.titleLabel.text" -msgstr "Title:" - -msgid "DuplicateColumnUI.typeLabel.text" -msgstr "Type:" - -msgid "DuplicateColumnUI.new.title" -msgstr "{0}_copy" - -msgid "DuplicateColumnUI.descriptionLabel.text" -msgstr "Duplicate ''{0}''." - -msgid "GeneralCreateColumnFromRegexUI.descriptionLabel.text.boolean" -msgstr "Create a new boolean matches column from ''{0}''" - -msgid "GeneralCreateColumnFromRegexUI.descriptionLabel.text.matching_groups" -msgstr "Create a new list of matching groups column from ''{0}''" - -msgid "GeneralCreateColumnFromRegexUI.regexLabel.text" -msgstr "Regular expression:" - -msgid "GeneralCreateColumnFromRegexUI.titleLabel.text" -msgstr "Title:" - -msgid "ColumnValuesFrequencyUI.configurePieChartButton.text" -msgstr "Configure pie chart" - -msgid "ColumnValuesFrequencyUI.showReportButton.text" -msgstr "Show report" - -msgid "NumberColumnStatisticsReportUI.showReportButton.text" -msgstr "Show report" - -msgid "NumberColumnStatisticsReportUI.configureBoxPlotButton.text" -msgstr "Configure box plot" - -msgid "NumberColumnStatisticsReportUI.configureScatterPlotButton.text" -msgstr "Configure scatter plot" - -msgid "NumberColumnStatisticsReportUI.configureHistogramButton.text" -msgstr "Configure histogram" - -msgid "NumberColumnStatisticsReportUI.useLinesCheckBox.text" -msgstr "Show lines" - -msgid "NumberColumnStatisticsReportUI.useLinearRegression.text" -msgstr "Show linear regression" - -msgid "NumberColumnStatisticsReportUI.divisionsLabel.text" -msgstr "Divisions:" - -msgid "ConvertColumnToDynamicUI.descriptionLabel.text" -msgstr "Convert column ''{0}'' to a dynamic column" - -msgid "ConvertColumnToDynamicUI.new.title" -msgstr "{0}_dynamic" - -msgid "ConvertColumnToDynamicUI.titleLabel.text" -msgstr "Title:" - -msgid "ConvertColumnToDynamicUI.intervalOpenCheckbox.text" -msgstr "Open" - -msgid "ConvertColumnToDynamicUI.intervalStartLabel.text" -msgstr "Interval start:" - -msgid "ConvertColumnToDynamicUI.intervalStartText.text" -msgstr "-Infinity" - -msgid "ConvertColumnToDynamicUI.intervalEndLabel.text" -msgstr "Interval end:" - -msgid "ConvertColumnToDynamicUI.intervalEndText.text" -msgstr "Infinity" - -msgid "ConvertColumnToDynamicUI.replaceColumnCheckbox.text" -msgstr "Replace column" - -msgid "ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText" -msgstr "" -"Replace original column with dynamic column instead of creating a new one" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/pt_BR.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/pt_BR.po deleted file mode 100644 index 3082b9ecc4..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/pt_BR.po +++ /dev/null @@ -1,106 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# CΓ©lio CJr , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-12-31 01:16+0000\n" -"Last-Translator: Eduardo Ramos \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/gephi/language/pt_BR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "CopyDataToOtherColumnUI.sourceColumnLabel.text" -msgstr "Copiar dados de ''{0}''" - -msgid "CopyDataToOtherColumnUI.descriptionLabel.text" -msgstr "Copiar para:" - -msgid "DuplicateColumnUI.titleLabel.text" -msgstr "TΓ­tulo:" - -msgid "DuplicateColumnUI.typeLabel.text" -msgstr "Tipo:" - -msgid "DuplicateColumnUI.new.title" -msgstr "{0} _cΓ³pia" - -msgid "DuplicateColumnUI.descriptionLabel.text" -msgstr "Duplicar ''{0}''." - -msgid "GeneralCreateColumnFromRegexUI.descriptionLabel.text.boolean" -msgstr "Criar coluna booleana a partir de uma expressΓ£o regular em ''{0}''" - -msgid "GeneralCreateColumnFromRegexUI.descriptionLabel.text.matching_groups" -msgstr "Criando coluna de grupos que atendem a uma expressΓ£o regular em ''{0}''" - -msgid "GeneralCreateColumnFromRegexUI.regexLabel.text" -msgstr "ExpressΓ£o regular:" - -msgid "GeneralCreateColumnFromRegexUI.titleLabel.text" -msgstr "TΓ­tulo:" - -msgid "ColumnValuesFrequencyUI.configurePieChartButton.text" -msgstr "Configurar grΓ‘fico de pizza" - -msgid "ColumnValuesFrequencyUI.showReportButton.text" -msgstr "Exibir relatΓ³rio" - -msgid "NumberColumnStatisticsReportUI.showReportButton.text" -msgstr "Exibir relatΓ³rio" - -msgid "NumberColumnStatisticsReportUI.configureBoxPlotButton.text" -msgstr "Configurar grΓ‘fico de caixa" - -msgid "NumberColumnStatisticsReportUI.configureScatterPlotButton.text" -msgstr "Configurar grΓ‘fico de dispersΓ£o" - -msgid "NumberColumnStatisticsReportUI.configureHistogramButton.text" -msgstr "Configurar histograma" - -msgid "NumberColumnStatisticsReportUI.useLinesCheckBox.text" -msgstr "Exibir linhas" - -msgid "NumberColumnStatisticsReportUI.useLinearRegression.text" -msgstr "Exibir regressΓ£o linear" - -msgid "NumberColumnStatisticsReportUI.divisionsLabel.text" -msgstr "DivisΓ΅es:" - -msgid "ConvertColumnToDynamicUI.descriptionLabel.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.new.title" -msgstr "" - -msgid "ConvertColumnToDynamicUI.titleLabel.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.intervalOpenCheckbox.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.intervalStartLabel.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.intervalStartText.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.intervalEndLabel.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.intervalEndText.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.replaceColumnCheckbox.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText" -msgstr "" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/ru.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/ru.po deleted file mode 100644 index 6f372287c4..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/ru.po +++ /dev/null @@ -1,106 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-12-31 01:16+0000\n" -"Last-Translator: Eduardo Ramos \n" -"Language-Team: Russian (http://www.transifex.com/projects/p/gephi/language/ru/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -msgid "CopyDataToOtherColumnUI.sourceColumnLabel.text" -msgstr "ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· столбца ''{0}''" - -msgid "CopyDataToOtherColumnUI.descriptionLabel.text" -msgstr "Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ столбСц для копирования:" - -msgid "DuplicateColumnUI.titleLabel.text" -msgstr "Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ столбца:" - -msgid "DuplicateColumnUI.typeLabel.text" -msgstr "Π’ΠΈΠΏ столбца:" - -msgid "DuplicateColumnUI.new.title" -msgstr "{0}_copy" - -msgid "DuplicateColumnUI.descriptionLabel.text" -msgstr "Π”ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ столбца ''{0}''." - -msgid "GeneralCreateColumnFromRegexUI.descriptionLabel.text.boolean" -msgstr "Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ столбца с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ соотвСтствия столбца ''{0}'' рСгулярному Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ" - -msgid "GeneralCreateColumnFromRegexUI.descriptionLabel.text.matching_groups" -msgstr "Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ столбца с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ поиска Π² столбцС ''{0}'' ΠΏΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ, Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ рСгулярным Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ" - -msgid "GeneralCreateColumnFromRegexUI.regexLabel.text" -msgstr "РСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅:" - -msgid "GeneralCreateColumnFromRegexUI.titleLabel.text" -msgstr "Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ столбца:" - -msgid "ColumnValuesFrequencyUI.configurePieChartButton.text" -msgstr "ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΡ€ΡƒΠ³ΠΎΠ²ΡƒΡŽ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡƒ" - -msgid "ColumnValuesFrequencyUI.showReportButton.text" -msgstr "ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΡ‚Ρ‡Ρ‘Ρ‚" - -msgid "NumberColumnStatisticsReportUI.showReportButton.text" -msgstr "ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΡ‚Ρ‡Ρ‘Ρ‚" - -msgid "NumberColumnStatisticsReportUI.configureBoxPlotButton.text" -msgstr "ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ''ΠΊΠΎΡ€ΠΎΠ±Ρ‡Π°Ρ‚ΡƒΡŽ'' Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡƒ" - -msgid "NumberColumnStatisticsReportUI.configureScatterPlotButton.text" -msgstr "ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡƒ рассСивания" - -msgid "NumberColumnStatisticsReportUI.configureHistogramButton.text" -msgstr "ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ гистограмму" - -msgid "NumberColumnStatisticsReportUI.useLinesCheckBox.text" -msgstr "Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ прямыС" - -msgid "NumberColumnStatisticsReportUI.useLinearRegression.text" -msgstr "Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΈΠ½Π΅ΠΉΠ½ΡƒΡŽ Ρ€Π΅Π³Ρ€Π΅ΡΡΠΈΡŽ" - -msgid "NumberColumnStatisticsReportUI.divisionsLabel.text" -msgstr "Divisions:" - -msgid "ConvertColumnToDynamicUI.descriptionLabel.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.new.title" -msgstr "" - -msgid "ConvertColumnToDynamicUI.titleLabel.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.intervalOpenCheckbox.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.intervalStartLabel.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.intervalStartText.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.intervalEndLabel.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.intervalEndText.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.replaceColumnCheckbox.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText" -msgstr "" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/zh_CN.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/zh_CN.po deleted file mode 100644 index b8974d218d..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/ui/zh_CN.po +++ /dev/null @@ -1,105 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-12-31 01:16+0000\n" -"Last-Translator: Eduardo Ramos \n" -"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/gephi/language/zh_CN/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "CopyDataToOtherColumnUI.sourceColumnLabel.text" -msgstr "δ»Žβ€œ{0}β€ε€εˆΆζ•°ζ" - -msgid "CopyDataToOtherColumnUI.descriptionLabel.text" -msgstr "倍刢到:" - -msgid "DuplicateColumnUI.titleLabel.text" -msgstr "ζ ‡ι’˜οΌš" - -msgid "DuplicateColumnUI.typeLabel.text" -msgstr "η±»εž‹οΌš" - -msgid "DuplicateColumnUI.new.title" -msgstr "{0}_倍刢" - -msgid "DuplicateColumnUI.descriptionLabel.text" -msgstr "ε€εˆΆβ€œ{0}”" - -msgid "GeneralCreateColumnFromRegexUI.descriptionLabel.text.boolean" -msgstr "ζ–°ε»ΊδΈŽβ€œ{0}β€εˆ—εŒΉι…ηš„εΈƒε°”εž‹" - -msgid "GeneralCreateColumnFromRegexUI.descriptionLabel.text.matching_groups" -msgstr "ζ–°ε»ΊδΈŽβ€œ{0}β€εˆ—η»„εŒΉι…ηš„εˆ—θ‘¨" - -msgid "GeneralCreateColumnFromRegexUI.regexLabel.text" -msgstr "ζ­£εˆ™θ‘¨θΎΎεΌοΌš" - -msgid "GeneralCreateColumnFromRegexUI.titleLabel.text" -msgstr "ζ ‡ι’˜οΌš" - -msgid "ColumnValuesFrequencyUI.configurePieChartButton.text" -msgstr "θΎη½εœ†ε½’εˆ†ζ Όη»Ÿθ‘图葨" - -msgid "ColumnValuesFrequencyUI.showReportButton.text" -msgstr "显瀺ζŠ₯ε‘Š" - -msgid "NumberColumnStatisticsReportUI.showReportButton.text" -msgstr "显瀺ζŠ₯ε‘Š" - -msgid "NumberColumnStatisticsReportUI.configureBoxPlotButton.text" -msgstr "θΎη½" - -msgid "NumberColumnStatisticsReportUI.configureScatterPlotButton.text" -msgstr "θΎη½η›’εž‹ε›Ύ" - -msgid "NumberColumnStatisticsReportUI.configureHistogramButton.text" -msgstr "θΎη½η›΄ζ–Ήε›Ύ" - -msgid "NumberColumnStatisticsReportUI.useLinesCheckBox.text" -msgstr "显瀺线" - -msgid "NumberColumnStatisticsReportUI.useLinearRegression.text" -msgstr "ζ˜Ύη€ΊηΊΏζ€§ε›žε½’" - -msgid "NumberColumnStatisticsReportUI.divisionsLabel.text" -msgstr "εˆ†η±»οΌš" - -msgid "ConvertColumnToDynamicUI.descriptionLabel.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.new.title" -msgstr "" - -msgid "ConvertColumnToDynamicUI.titleLabel.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.intervalOpenCheckbox.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.intervalStartLabel.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.intervalStartText.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.intervalEndLabel.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.intervalEndText.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.replaceColumnCheckbox.text" -msgstr "" - -msgid "ConvertColumnToDynamicUI.replaceColumnCheckbox.toolTipText" -msgstr "" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/zh_CN.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/zh_CN.po deleted file mode 100644 index 0b5eb22367..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/columns/zh_CN.po +++ /dev/null @@ -1,84 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-12-31 01:16+0000\n" -"Last-Translator: Eduardo Ramos \n" -"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/gephi/language/zh_CN/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "DeleteColumn.name" -msgstr "εˆ ι™€εˆ—" - -msgid "DeleteColumn.confirmation.message" -msgstr "η‘θ€εˆ ι™€β€œ{0}β€οΌŸ" - -msgid "ClearColumnData.name" -msgstr "ζΈ…ι™€εˆ—" - -msgid "ClearColumnData.confirmation.message" -msgstr "η‘θ€ζΈ…ι™€β€œ{0}β€οΌŸ" - -msgid "CopyDataToOtherColumn.name" -msgstr "ε€εˆΆζ•°ζεˆ°ε…Άεƒεˆ—" - -msgid "FillColumnWithValue.name" -msgstr "ε‘«ε†™ζ•°ε€Όεˆ°εˆ—" - -msgid "FillColumnWithValue.inputDialog.text" -msgstr "ι€‰ζ‹©ε‘«ε†™εˆ°ζ‰€ζœ‰θ‘Œηš„ζ•°ε€ΌοΌš" - -msgid "DuplicateColumn.name" -msgstr "ε€εˆΆεˆ—ζ•°ζ" - -msgid "ColumnValuesFrequency.name" -msgstr "θ‘η—ζ•°ε€Όι’‘ηŽ‡" - -msgid "ColumnValuesFrequency.description" -msgstr "θ‘η—每δΈͺζ•°ε€Όε‡ΊηŽ°ηš„ι’‘ηŽ‡γ€‚" - -msgid "ColumnValuesFrequency.report.header" -msgstr "

    ζ•°ε€Όι’‘ηŽ‡ζŠ₯ε‘Š\"{0}\"

    " - -msgid "ColumnValuesFrequency.report.piechart.title" -msgstr "ζ•°ε€Όι’‘ηŽ‡εœ†ε½’εˆ†ζ Όη»Ÿθ‘图葨" - -msgid "ColumnValuesFrequency.report.piechart.not-shown" -msgstr "θ‹₯存在倧于100δΈͺδΈεŒηš„ζ•°ε€ΌοΌŒδΈζ˜Ύη€Ίεœ†ε½’εˆ†ζ Όη»Ÿθ‘图葨" - -msgid "NumberColumnStatisticsReport.name" -msgstr "θ‘η—η»Ÿθ‘ε±žζ€§" - -msgid "NumberColumnStatisticsReport.description" -msgstr "εœ¨δΈ€δΈͺζ•°ζˆ–θ€…θ‘ζ•°εˆ—θ‘¨θ‘η—η»Ÿθ‘ε±žζ€§" - -msgid "CreateBooleanMatchesColumn.name" -msgstr "δ»Žζ­£εˆ™θ‘¨θΎΎεΌδΈ­ζ–°ε»ΊδΈ€δΈͺεΈƒε°”εˆ—" - -msgid "CreateBooleanMatchesColumn.description" -msgstr "ζ–°ε»ΊδΈ€δΈͺεΈƒε°”εˆ—οΌŒι‡Œι’ηš„ζ•°ε€Όθ‘¨ζ˜Žζ―δΈͺι€‰ζ‹©ηš„ζ•°ε€Όζ˜―ε¦δΈŽζ­£εˆ™θ‘¨θΎΎεΌη›ΈεŒΉι…γ€‚" - -msgid "CreateFoundGroupsListColumn.name" -msgstr "ζ–°ε»ΊδΈ€εˆ—οΌˆεˆ—θ‘¨ζˆ–θ€…ζ­£εˆ™θ‘¨θΎΎεΌεŒΉι…η»„εˆοΌ‰" - -msgid "CreateFoundGroupsListColumn.description" -msgstr "ζ–°ε»Ίε­—η¬¦δΈ²εˆ—θ‘¨οΌŒι‡Œι’ηš„ζ•°ε€Όε‘«ε†™ζ­£εˆ™θ‘¨θΎΎεΌηš„εŒΉι…η»„ηš„η»“ζžœγ€‚" - -msgid "NegateBooleanColumn.name" -msgstr "布尔值求反" - -msgid "ConvertColumnToDynamic.name" -msgstr "" - -msgid "ConvertColumnToDynamic.description" -msgstr "" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle.properties index f7e92e6de2..e913d44a6c 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle.properties @@ -12,6 +12,8 @@ DeleteEdges.confirmation.message=Confirm edge deletion? DeleteEdgesWithNodes.name.single=Delete edge with nodes... DeleteEdgesWithNodes.name.multiple=Delete all edges with nodes... +SelectOnGraph.name=Select on Overview + ClearEdgesData.name.single=Clear... ClearEdgesData.name.multiple=Clear all... ClearEdgesData.description=Clear data of the selected edges diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_ar.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_ar.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_ar.properties @@ -0,0 +1 @@ + diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_ca.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_ca.properties new file mode 100644 index 0000000000..ef140e5229 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_ca.properties @@ -0,0 +1,21 @@ +OpenInEditEdgeWindow.name=Edita la aresta +OpenInEditEdgeWindow.name.multiple=Edita totes les arestes +OpenInEditEdgeWindow.description=Change colors and attributes. +OpenInEditEdgeWindow.description.multiple=Change colors and attributes. Fields will be blank at first. +SelectSourceOnGraph.name=Select source node on Overview +SelectTargetOnGraph.name=Select target node on Overview +SelectNodesOnTable.name=Select source and target on nodes table +DeleteEdges.name.single=Elimina +DeleteEdges.name.multiple=Elimina'ls tots +DeleteEdges.confirmation.message=Confirm edge deletion? +DeleteEdgesWithNodes.name.single=Delete edge with nodes... +DeleteEdgesWithNodes.name.multiple=Delete all edges with nodes... +SelectOnGraph.name=Select on Overview +ClearEdgesData.name.single=Neteja... +ClearEdgesData.name.multiple=Neteja-ho tot +ClearEdgesData.description=Clear data of the selected edges +ClearEdgesData.ui.description=Neteja les columnes +CopyEdgeDataToOtherEdges.name=Overwrite data to other selected edges... +CopyEdgeDataToOtherEdges.description=Copy the selected edge columns to the other selected edges. +CopyEdgeDataToOtherEdges.ui.rowDescription=Copia la aresta: +CopyEdgeDataToOtherEdges.ui.columnsDescription=Overwrite columns: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_cs.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_cs.properties index 2f7de72d14..a89f9d3d5b 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_cs.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_cs.properties @@ -1,47 +1,24 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Zbyn\u011bk Schwarz , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-02-27 15\:44+0000\nLast-Translator\: Zbyn\u011bk Schwarz \nLanguage-Team\: Czech (http\://www.transifex.com/projects/p/gephi/language/cs/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: cs\nPlural-Forms\: nplurals\=3; plural\=(n\=\=1) ? 0 \: (n>\=2 && n<\=4) ? 1 \: 2;\n - -OpenInEditEdgeWindow.name=Upravit hranu - -OpenInEditEdgeWindow.name.multiple=Upravit v\u0161echny hrany - -OpenInEditEdgeWindow.description=Zm\u011bnit barvu a vlastnosti. - -OpenInEditEdgeWindow.description.multiple=Zm\u011bnit barvu a vlastnosti. Pole budou zpo\u010d\u00e1tku pr\u00e1zdn\u00e1. - -SelectSourceOnGraph.name=Vybrat zdrojov\u00fd uzel v p\u0159ehledu - -SelectTargetOnGraph.name=Vybrat c\u00edlov\u00fd uzel v p\u0159ehledu - -SelectNodesOnTable.name=Vyberte zdroj a c\u00edl v tabulce uzl\u016f - -DeleteEdges.name.single=Smazat - -DeleteEdges.name.multiple=Smazat v\u0161e - -DeleteEdges.confirmation.message=Potvrdit smaz\u00e1n\u00ed hrany? - -DeleteEdgesWithNodes.name.single=Smazat hranu s uzly... - -DeleteEdgesWithNodes.name.multiple=Smazat v\u0161echny hrany s uzly... - -ClearEdgesData.name.single=Vy\u010distit... - -ClearEdgesData.name.multiple=Vy\u010distit v\u0161e... - -ClearEdgesData.description=Vy\u010distit data ve zvolen\u00fdch hran\u00e1ch - -ClearEdgesData.ui.description=Vy\u010distit sloupce\: - -CopyEdgeDataToOtherEdges.name=P\u0159epsat data na ostatn\u00ed zvolen\u00e9 hrany... - -CopyEdgeDataToOtherEdges.description=Kop\u00edrovat zvolen\u00e9 sloupce hrany na ostatn\u00ed zvolen\u00e9 hrany - -CopyEdgeDataToOtherEdges.ui.rowDescription=Kop\u00edrovat hranu\: - -CopyEdgeDataToOtherEdges.ui.columnsDescription=P\u0159epsat sloupce\: +OpenInEditEdgeWindow.name=Upravit hranu +OpenInEditEdgeWindow.name.multiple=Upravit v\u0161echny hrany +OpenInEditEdgeWindow.description=Zm\u011bnit barvu a vlastnosti. +OpenInEditEdgeWindow.description.multiple=Zm\u011bnit barvu a vlastnosti. Pole budou zpo\u010dαtku prαzdnα. + +SelectSourceOnGraph.name=Vybrat zdrojovύ uzel v p\u0159ehledu +SelectTargetOnGraph.name=Vybrat cνlovύ uzel v p\u0159ehledu +SelectNodesOnTable.name=Vyberte zdroj a cνl v tabulce uzl\u016f +DeleteEdges.name.single=Smazat +DeleteEdges.name.multiple=Smazat v\u0161e +DeleteEdges.confirmation.message=Potvrdit smazαnν hrany? +DeleteEdgesWithNodes.name.single=Smazat hranu s uzly... +DeleteEdgesWithNodes.name.multiple=Smazat v\u0161echny hrany s uzly... + +# SelectOnGraph.name=Select on Overview + +ClearEdgesData.name.single=Vy\u010distit... +ClearEdgesData.name.multiple=Vy\u010distit v\u0161e... +ClearEdgesData.description=Vy\u010distit data ve zvolenύch hranαch +ClearEdgesData.ui.description=Vy\u010distit sloupce: +CopyEdgeDataToOtherEdges.name=P\u0159epsat data na ostatnν zvolenι hrany... +CopyEdgeDataToOtherEdges.description=Kopνrovat zvolenι sloupce hrany na ostatnν zvolenι hrany +CopyEdgeDataToOtherEdges.ui.rowDescription=Kopνrovat hranu: +CopyEdgeDataToOtherEdges.ui.columnsDescription=P\u0159epsat sloupce: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_de.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_de.properties new file mode 100644 index 0000000000..ced4cc7c87 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_de.properties @@ -0,0 +1,24 @@ +OpenInEditEdgeWindow.name=Kante bearbeiten +OpenInEditEdgeWindow.name.multiple=Alle Kanten bearbeiten +OpenInEditEdgeWindow.description=Farben und Attribute δndern. +OpenInEditEdgeWindow.description.multiple=Farben und Attribute δndern. Die Felder werden anfangs leer sein. + +SelectSourceOnGraph.name=Wδhlen Sie einen Start-Knoten in der άbersicht +SelectTargetOnGraph.name=Wδhlen Sie einen Ziel-Knoten in der άbersicht +SelectNodesOnTable.name=Wδhlen Sie Start- und Ziel-Knoten in der Knoten-Tabelle +DeleteEdges.name.single=Lφschen +DeleteEdges.name.multiple=Alle lφschen +DeleteEdges.confirmation.message=Kantenlφschung bestδtigen? +DeleteEdgesWithNodes.name.single=Lφsche Kante einschlieίlich ihrer Knoten... +DeleteEdgesWithNodes.name.multiple=Alle Kanten einschlieίlich ihrer Knoten lφschen... + +# SelectOnGraph.name=Select on Overview + +ClearEdgesData.name.single=Leeren... +ClearEdgesData.name.multiple=Alle leeren... +ClearEdgesData.description=Leere Daten der ausgewδhlten Kanten +ClearEdgesData.ui.description=Spalten leeren: +CopyEdgeDataToOtherEdges.name=άberschreibe Daten auf andere ausgewδhlte Kanten... +CopyEdgeDataToOtherEdges.description=Kopiere die ausgewδhlten Kanten-Spalten auf die anderen ausgewδhlten Kanten. +CopyEdgeDataToOtherEdges.ui.rowDescription=Kopiere Kante: +CopyEdgeDataToOtherEdges.ui.columnsDescription=Spalten όberschreiben: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_es.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_es.properties index 8421ba9f15..47fc214cd9 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_es.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_es.properties @@ -1,47 +1,21 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 14\:28+0000\nLast-Translator\: gephi \nLanguage-Team\: Spanish (http\://www.transifex.com/projects/p/gephi/language/es/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: es\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n - OpenInEditEdgeWindow.name=Editar arista - OpenInEditEdgeWindow.name.multiple=Editar todas aristas - -OpenInEditEdgeWindow.description=Cambiar colores y atributos - -OpenInEditEdgeWindow.description.multiple=Cambiar colores y atributos. Los campos estar\u00e1n vac\u00edos inicialmente. - +OpenInEditEdgeWindow.description=Cambia los colores y los atributos. +OpenInEditEdgeWindow.description.multiple=Cambiar colores y atributos. Los campos estarαn vacνos inicialmente. SelectSourceOnGraph.name=Seleccionar nodo origen en la vista del grafo - SelectTargetOnGraph.name=Seleccionar nodo destino en la vista del grafo - SelectNodesOnTable.name=Seleccionar nodos origen y destino en la tabla de nodos - DeleteEdges.name.single=Eliminar - DeleteEdges.name.multiple=Eliminar todas - -DeleteEdges.confirmation.message=\u00bfConfirmar eliminaci\u00f3n de arista(s)? - +DeleteEdges.confirmation.message=ΏConfirmar eliminaciσn de arista(s)? DeleteEdgesWithNodes.name.single=Eliminar arista con sus nodos... - DeleteEdgesWithNodes.name.multiple=Eliminar aristas con sus nodos... - +SelectOnGraph.name=Seleccionar en la vista del grafo ClearEdgesData.name.single=Borrar datos de la arista... - ClearEdgesData.name.multiple=Borrar datos de todas las aristas... - ClearEdgesData.description=Borra los datos de las aristas seleccionadas - -ClearEdgesData.ui.description=Borrar columnas\: - +ClearEdgesData.ui.description=Borrar columnas: CopyEdgeDataToOtherEdges.name=Sobreescribir datos a las otras aristas seleccionadas... - -CopyEdgeDataToOtherEdges.description=Copia las columnas de la arista seleccionada a las otras aristas seleccionadas - -CopyEdgeDataToOtherEdges.ui.rowDescription=Copiar arista\: - -CopyEdgeDataToOtherEdges.ui.columnsDescription=Sobreescribir columnas\: +CopyEdgeDataToOtherEdges.description=Copia las columnas de borde seleccionadas en otros bordes seleccionados. +CopyEdgeDataToOtherEdges.ui.rowDescription=Copiar arista: +CopyEdgeDataToOtherEdges.ui.columnsDescription=Sobreescribir columnas: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_fr.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_fr.properties index 012c5b4a46..f8420ab186 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_fr.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_fr.properties @@ -1,47 +1,24 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 14\:28+0000\nLast-Translator\: gephi \nLanguage-Team\: French (http\://www.transifex.com/projects/p/gephi/language/fr/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fr\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -OpenInEditEdgeWindow.name=Editer le lien - -OpenInEditEdgeWindow.name.multiple=Editer tous les liens - -OpenInEditEdgeWindow.description=Change les couleurs et attributs. - -OpenInEditEdgeWindow.description.multiple=Change les couleurs et attributs. Les champs sont vides au d\u00e9but. - -SelectSourceOnGraph.name=S\u00e9lectionner le noeud source dans la Vue d'Ensemble - -SelectTargetOnGraph.name=S\u00e9lectionner le noeud de destination dans la Vue d'Ensemble - -SelectNodesOnTable.name=S\u00e9lectionner les noeuds source et destination - -DeleteEdges.name.single=Supprimer - -DeleteEdges.name.multiple=Tout supprimer - -DeleteEdges.confirmation.message=Confirmer la suppression des liens ? - -DeleteEdgesWithNodes.name.single=Supprimer les liens avec leurs noeuds... - -DeleteEdgesWithNodes.name.multiple=Supprimer tous les liens avec leurs noeuds... - -ClearEdgesData.name.single=Effacer... - -ClearEdgesData.name.multiple=Tout effacer... - -ClearEdgesData.description=Effacer les donn\u00e9es des liens s\u00e9lectionn\u00e9s - -ClearEdgesData.ui.description=Effacer les colonnes \: - -CopyEdgeDataToOtherEdges.name=Ecraser les donn\u00e9es des autres liens s\u00e9lectionn\u00e9s... - -CopyEdgeDataToOtherEdges.description=Copier les colonnes du lien vers les autres liens s\u00e9lectionn\u00e9s - -CopyEdgeDataToOtherEdges.ui.rowDescription=Copier le lien \: - -CopyEdgeDataToOtherEdges.ui.columnsDescription=Ecraser les colonnes \: +OpenInEditEdgeWindow.name=Editer le lien +OpenInEditEdgeWindow.name.multiple=Editer tous les liens +OpenInEditEdgeWindow.description=Change les couleurs et attributs. +OpenInEditEdgeWindow.description.multiple=Change les couleurs et attributs. Les champs sont vides au dιbut. + +SelectSourceOnGraph.name=Sιlectionner le noeud source dans la Vue d'Ensemble +SelectTargetOnGraph.name=Sιlectionner le noeud de destination dans la Vue d'Ensemble +SelectNodesOnTable.name=Sιlectionner les noeuds source et destination +DeleteEdges.name.single=Supprimer +DeleteEdges.name.multiple=Tout supprimer +DeleteEdges.confirmation.message=Confirmer la suppression des liens ? +DeleteEdgesWithNodes.name.single=Supprimer les liens avec leurs noeuds... +DeleteEdgesWithNodes.name.multiple=Supprimer tous les liens avec leurs noeuds... + +SelectOnGraph.name=Sιlectionner dans la Vue d'Ensemble + +ClearEdgesData.name.single=Effacer... +ClearEdgesData.name.multiple=Tout effacer... +ClearEdgesData.description=Effacer les donnιes des liens sιlectionnιs +ClearEdgesData.ui.description=Effacer les colonnes : +CopyEdgeDataToOtherEdges.name=Ecraser les donnιes des autres liens sιlectionnιs... +CopyEdgeDataToOtherEdges.description=Copier les colonnes du lien vers les autres liens sιlectionnιs +CopyEdgeDataToOtherEdges.ui.rowDescription=Copier le lien : +CopyEdgeDataToOtherEdges.ui.columnsDescription=Ecraser les colonnes : diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_he.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_he.properties new file mode 100644 index 0000000000..4ef950ad1c --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_he.properties @@ -0,0 +1,21 @@ +OpenInEditEdgeWindow.name=Edit edge +OpenInEditEdgeWindow.name.multiple=Edit all edges +OpenInEditEdgeWindow.description=Change colors and attributes. +OpenInEditEdgeWindow.description.multiple=Change colors and attributes. Fields will be blank at first. +SelectSourceOnGraph.name=Select source node on Overview +SelectTargetOnGraph.name=Select target node on Overview +SelectNodesOnTable.name=Select source and target on nodes table +DeleteEdges.name.single=\u05de\u05d7\u05e7 +DeleteEdges.name.multiple=Delete all +DeleteEdges.confirmation.message=Confirm edge deletion? +DeleteEdgesWithNodes.name.single=Delete edge with nodes... +DeleteEdgesWithNodes.name.multiple=Delete all edges with nodes... +SelectOnGraph.name=Select on Overview +ClearEdgesData.name.single=Clear... +ClearEdgesData.name.multiple=Clear all... +ClearEdgesData.description=Clear data of the selected edges +ClearEdgesData.ui.description=Clear columns: +CopyEdgeDataToOtherEdges.name=Overwrite data to other selected edges... +CopyEdgeDataToOtherEdges.description=Copy the selected edge columns to the other selected edges. +CopyEdgeDataToOtherEdges.ui.rowDescription=Copy edge: +CopyEdgeDataToOtherEdges.ui.columnsDescription=Overwrite columns: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_hu.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_hu.properties new file mode 100644 index 0000000000..230a214058 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_hu.properties @@ -0,0 +1,23 @@ + + +SelectOnGraph.name=V\u00E1lassza az \u00C1ttekint\u00E9s lehet\u0151s\u00E9get +SelectTargetOnGraph.name=V\u00E1lassza ki a c\u00E9lcsom\u00F3pontot az \u00C1ttekint\u00E9s oldalon +DeleteEdges.confirmation.message=Meger\u0151s\u00EDti az \u00E9l t\u00F6rl\u00E9s\u00E9t? +CopyEdgeDataToOtherEdges.ui.rowDescription=\u00C9l m\u00E1sol\u00E1sa: +DeleteEdgesWithNodes.name.single=Csom\u00F3pontokkal rendelkez\u0151 \u00E9l t\u00F6rl\u00E9se... +ClearEdgesData.ui.description=Oszlopok t\u00F6rl\u00E9se: +CopyEdgeDataToOtherEdges.name=Adatok fel\u00FCl\u00EDr\u00E1sa a t\u00F6bbi kijel\u00F6lt \u00E9lre... +SelectNodesOnTable.name=V\u00E1lassza ki a forr\u00E1st \u00E9s a c\u00E9lt a csom\u00F3pontt\u00E1bl\u00E1zaton +CopyEdgeDataToOtherEdges.description=M\u00E1solja a kijel\u00F6lt \u00E9loszlopokat a t\u00F6bbi kijel\u00F6lt \u00E9lre. +OpenInEditEdgeWindow.description.multiple=V\u00E1ltoztassa meg a sz\u00EDneket \u00E9s az attrib\u00FAtumokat. A mez\u0151k el\u0151sz\u00F6r \u00FCresek lesznek. +DeleteEdges.name.multiple=Mindet t\u00F6rli +SelectSourceOnGraph.name=V\u00E1lassza ki a forr\u00E1scsom\u00F3pontot az \u00C1ttekint\u00E9s oldalon +ClearEdgesData.name.single=T\u00F6rl\u00E9s +ClearEdgesData.name.multiple=Mindent t\u00F6r\u00F6l... +DeleteEdgesWithNodes.name.multiple=Az \u00F6sszes csom\u00F3pontos \u00E9l t\u00F6rl\u00E9se... +OpenInEditEdgeWindow.description=V\u00E1ltoztassa meg a sz\u00EDneket \u00E9s az attrib\u00FAtumokat. +CopyEdgeDataToOtherEdges.ui.columnsDescription=Oszlopok fel\u00FCl\u00EDr\u00E1sa: +DeleteEdges.name.single=T\u00F6r\u00F6l +ClearEdgesData.description=A kijel\u00F6lt \u00E9lek adatainak t\u00F6rl\u00E9se +OpenInEditEdgeWindow.name.multiple=Szerkessze az \u00F6sszes \u00E9lt +OpenInEditEdgeWindow.name=\u00C9l szerkeszt\u00E9se diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_it.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_it.properties new file mode 100644 index 0000000000..ac9befb73c --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_it.properties @@ -0,0 +1,21 @@ +OpenInEditEdgeWindow.name=Edit edge +OpenInEditEdgeWindow.name.multiple=Edit all edges +OpenInEditEdgeWindow.description=Change colors and attributes. +OpenInEditEdgeWindow.description.multiple=Change colors and attributes. Fields will be blank at first. +SelectSourceOnGraph.name=Select source node on Overview +SelectTargetOnGraph.name=Select target node on Overview +SelectNodesOnTable.name=Select source and target on nodes table +DeleteEdges.name.single=Cancella +DeleteEdges.name.multiple=Delete all +DeleteEdges.confirmation.message=Confirm edge deletion? +DeleteEdgesWithNodes.name.single=Delete edge with nodes... +DeleteEdgesWithNodes.name.multiple=Delete all edges with nodes... +SelectOnGraph.name=Select on Overview +ClearEdgesData.name.single=Clear... +ClearEdgesData.name.multiple=Clear all... +ClearEdgesData.description=Clear data of the selected edges +ClearEdgesData.ui.description=Clear columns: +CopyEdgeDataToOtherEdges.name=Overwrite data to other selected edges... +CopyEdgeDataToOtherEdges.description=Copy the selected edge columns to the other selected edges. +CopyEdgeDataToOtherEdges.ui.rowDescription=Copy edge: +CopyEdgeDataToOtherEdges.ui.columnsDescription=Overwrite columns: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_ja.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_ja.properties index 99fcb12701..8cfcae4e3e 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_ja.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_ja.properties @@ -1,47 +1,24 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-09-02 10\:55+0000\nLast-Translator\: Siro Kida \nLanguage-Team\: Japanese (http\://www.transifex.com/projects/p/gephi/language/ja/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ja\nPlural-Forms\: nplurals\=1; plural\=0;\n - -OpenInEditEdgeWindow.name=\u8fba\u3092\u7de8\u96c6 - -OpenInEditEdgeWindow.name.multiple=\u3059\u3079\u3066\u306e\u8fba\u3092\u7de8\u96c6 - -OpenInEditEdgeWindow.description=\u8272\u3068\u5c5e\u6027\u306e\u5909\u66f4 - -OpenInEditEdgeWindow.description.multiple=\u8272\u3068\u5c5e\u6027\u306e\u5909\u66f4\u3002\u521d\u3081\u306f\u7a7a\u6b04\u3067\u3059\u3002 - -SelectSourceOnGraph.name=\u6982\u8981\u306e\u30bd\u30fc\u30b9\u30ce\u30fc\u30c9\u3092\u9078\u629e - -SelectTargetOnGraph.name=\u6982\u8981\u306e\u30bf\u30fc\u30b2\u30c3\u30c8\u30ce\u30fc\u30c9\u3092\u9078\u629e - -SelectNodesOnTable.name=\u30ce\u30fc\u30c9\u30c6\u30fc\u30d6\u30eb\u306e\u30bd\u30fc\u30b9\u3068\u30bf\u30fc\u30b2\u30c3\u30c8\u3092\u9078\u629e - -DeleteEdges.name.single=\u524a\u9664 - -DeleteEdges.name.multiple=\u3059\u3079\u3066\u3092\u524a\u9664 - -DeleteEdges.confirmation.message=\u8fba\u3092\u524a\u9664\u3057\u3066\u3082\u3044\u3044\u3067\u3059\u304b\uff1f - -DeleteEdgesWithNodes.name.single=\u30ce\u30fc\u30c9\u4ed8\u304d\u306e\u8fba\u3092\u524a\u9664... - -DeleteEdgesWithNodes.name.multiple=\u3059\u3079\u3066\u306e\u30ce\u30fc\u30c9\u4ed8\u304d\u306e\u8fba\u3092\u524a\u9664... - -ClearEdgesData.name.single=\u30af\u30ea\u30a2... - -ClearEdgesData.name.multiple=\u3059\u3079\u3066\u3092\u30af\u30ea\u30a2... - -ClearEdgesData.description=\u9078\u629e\u3057\u305f\u8fba\u306e\u30c7\u30fc\u30bf\u3092\u30af\u30ea\u30a2 - -ClearEdgesData.ui.description=\u5217\u3092\u30af\u30ea\u30a2\: - -CopyEdgeDataToOtherEdges.name=\u9078\u629e\u3057\u305f\u4ed6\u306e\u8fba\u306b\u30c7\u30fc\u30bf\u3092\u4e0a\u66f8\u304d\: - -CopyEdgeDataToOtherEdges.description=\u9078\u629e\u3057\u305f\u8fba\u306e\u5217\u3092\u4ed6\u306e\u9078\u629e\u3057\u305f\u8fba\u306b\u30b3\u30d4\u30fc\u3002 - -CopyEdgeDataToOtherEdges.ui.rowDescription=\u8fba\u3092\u30b3\u30d4\u30fc\: - -CopyEdgeDataToOtherEdges.ui.columnsDescription=\u5217\u3092\u4e0a\u66f8\u304d\: +OpenInEditEdgeWindow.name=\u8fba\u3092\u7de8\u96c6 +OpenInEditEdgeWindow.name.multiple=\u3059\u3079\u3066\u306e\u8fba\u3092\u7de8\u96c6 +OpenInEditEdgeWindow.description=\u8272\u3068\u5c5e\u6027\u306e\u5909\u66f4 +OpenInEditEdgeWindow.description.multiple=\u8272\u3068\u5c5e\u6027\u306e\u5909\u66f4\u3002\u521d\u3081\u306f\u7a7a\u6b04\u3067\u3059\u3002 + +SelectSourceOnGraph.name=\u6982\u8981\u306e\u30bd\u30fc\u30b9\u30ce\u30fc\u30c9\u3092\u9078\u629e +SelectTargetOnGraph.name=\u6982\u8981\u306e\u30bf\u30fc\u30b2\u30c3\u30c8\u30ce\u30fc\u30c9\u3092\u9078\u629e +SelectNodesOnTable.name=\u30ce\u30fc\u30c9\u30c6\u30fc\u30d6\u30eb\u306e\u30bd\u30fc\u30b9\u3068\u30bf\u30fc\u30b2\u30c3\u30c8\u3092\u9078\u629e +DeleteEdges.name.single=\u524a\u9664 +DeleteEdges.name.multiple=\u3059\u3079\u3066\u3092\u524a\u9664 +DeleteEdges.confirmation.message=\u8fba\u3092\u524a\u9664\u3057\u3066\u3082\u3044\u3044\u3067\u3059\u304b\uff1f +DeleteEdgesWithNodes.name.single=\u30ce\u30fc\u30c9\u4ed8\u304d\u306e\u8fba\u3092\u524a\u9664... +DeleteEdgesWithNodes.name.multiple=\u3059\u3079\u3066\u306e\u30ce\u30fc\u30c9\u4ed8\u304d\u306e\u8fba\u3092\u524a\u9664... + +# SelectOnGraph.name=Select on Overview + +ClearEdgesData.name.single=\u30af\u30ea\u30a2... +ClearEdgesData.name.multiple=\u3059\u3079\u3066\u3092\u30af\u30ea\u30a2... +ClearEdgesData.description=\u9078\u629e\u3057\u305f\u8fba\u306e\u30c7\u30fc\u30bf\u3092\u30af\u30ea\u30a2 +ClearEdgesData.ui.description=\u5217\u3092\u30af\u30ea\u30a2: +CopyEdgeDataToOtherEdges.name=\u9078\u629e\u3057\u305f\u4ed6\u306e\u8fba\u306b\u30c7\u30fc\u30bf\u3092\u4e0a\u66f8\u304d: +CopyEdgeDataToOtherEdges.description=\u9078\u629e\u3057\u305f\u8fba\u306e\u5217\u3092\u4ed6\u306e\u9078\u629e\u3057\u305f\u8fba\u306b\u30b3\u30d4\u30fc\u3002 +CopyEdgeDataToOtherEdges.ui.rowDescription=\u8fba\u3092\u30b3\u30d4\u30fc: +CopyEdgeDataToOtherEdges.ui.columnsDescription=\u5217\u3092\u4e0a\u66f8\u304d: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_ko.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_ko.properties new file mode 100644 index 0000000000..02b35486a6 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_ko.properties @@ -0,0 +1,23 @@ + + +OpenInEditEdgeWindow.name=\uC5E3\uC9C0 \uD3B8\uC9D1\uD558\uAE30 +OpenInEditEdgeWindow.name.multiple=\uBAA8\uB4E0 \uC5E3\uC9C0 \uD3B8\uC9D1\uD558\uAE30 +SelectSourceOnGraph.name=\uAC1C\uC694 \uD654\uBA74\uC5D0\uC11C \uC18C\uC2A4 \uB178\uB4DC\uB97C \uC120\uD0DD\uD558\uAE30 +SelectTargetOnGraph.name=\uAC1C\uC694 \uD654\uBA74\uC5D0\uC11C \uD0C0\uAC9F \uB178\uB4DC\uB97C \uC120\uD0DD\uD558\uAE30 +SelectNodesOnTable.name=\uB178\uB4DC \uD14C\uC774\uBE14\uC5D0\uC11C \uC18C\uC2A4\uC640 \uD0C0\uAC9F\uC744 \uC120\uD0DD\uD558\uAE30 +DeleteEdges.name.single=\uC0AD\uC81C\uD558\uAE30 +DeleteEdges.name.multiple=\uC804\uCCB4 \uC0AD\uC81C\uD558\uAE30 +DeleteEdges.confirmation.message=\uD655\uC2E4\uD788 \uC5E3\uC9C0\uB97C \uC0AD\uC81C\uD560\uAE4C\uC694? +SelectOnGraph.name=\uAC1C\uC694\uC5D0\uC11C \uC120\uD0DD +DeleteEdgesWithNodes.name.single=\uB178\uB4DC\uAC00 \uC788\uB294 \uC5E3\uC9C0\uB97C \uC0AD\uC81C\uD558\uAE30 ... +DeleteEdgesWithNodes.name.multiple=\uB178\uB4DC\uAC00 \uC788\uB294 \uBAA8\uB4E0 \uC5E3\uC9C0\uB97C \uC0AD\uC81C\uD558\uAE30 ... +ClearEdgesData.name.single=\uC9C0\uC6B0\uAE30 ... +ClearEdgesData.name.multiple=\uC804\uCCB4 \uC9C0\uC6B0\uAE30 ... +ClearEdgesData.ui.description=\uCEEC\uB7FC\uB4E4 \uC9C0\uC6B0\uAE30: +CopyEdgeDataToOtherEdges.name=\uB370\uC774\uD130\uB97C \uB2E4\uB978 \uC120\uD0DD\uB41C \uC5E3\uC9C0\uB4E4\uC5D0\uAC8C \uB36E\uC5B4 \uC4F0\uAE30 ... +CopyEdgeDataToOtherEdges.description=\uC120\uD0DD\uB41C \uC5E3\uC9C0 \uCEEC\uB7FC\uB4E4\uC744 \uB2E4\uB978 \uC120\uD0DD\uB41C \uC5E3\uC9C0\uB4E4\uC5D0 \uBCF5\uC0AC\uD569\uB2C8\uB2E4. +OpenInEditEdgeWindow.description=\uC0C9\uC0C1 \uBC0F \uC18D\uC131\uB4E4\uC744 \uBC14\uAFC9\uB2C8\uB2E4. +OpenInEditEdgeWindow.description.multiple=\uC0C9\uC0C1 \uBC0F \uC18D\uC131\uB4E4\uC744 \uBC14\uAFC9\uB2C8\uB2E4. \uCC98\uC74C\uC5D0\uB294 \uD544\uB4DC\uAC00 \uBE44\uC5B4 \uC788\uC2B5\uB2C8\uB2E4. +CopyEdgeDataToOtherEdges.ui.rowDescription=\uC5E3\uC9C0\uB97C \uBCF5\uC0AC\uD569\uB2C8\uB2E4: +CopyEdgeDataToOtherEdges.ui.columnsDescription=\uCEEC\uB7FC\uB4E4\uC744 \uB36E\uC5B4\uC501\uB2C8\uB2E4: +ClearEdgesData.description=\uC120\uD0DD\uB41C \uC5E3\uC9C0\uB4E4\uC758 \uB370\uC774\uD130\uB97C \uC9C0\uC6C1\uB2C8\uB2E4 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_nl.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_nl.properties new file mode 100644 index 0000000000..ab0c0d0531 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_nl.properties @@ -0,0 +1,21 @@ +OpenInEditEdgeWindow.name=Edit edge +OpenInEditEdgeWindow.name.multiple=Edit all edges +OpenInEditEdgeWindow.description=Change colors and attributes. +OpenInEditEdgeWindow.description.multiple=Change colors and attributes. Fields will be blank at first. +SelectSourceOnGraph.name=Select source node on Overview +SelectTargetOnGraph.name=Select target node on Overview +SelectNodesOnTable.name=Select source and target on nodes table +DeleteEdges.name.single=Verwijderen +DeleteEdges.name.multiple=Alles verwijderen +DeleteEdges.confirmation.message=Confirm edge deletion? +DeleteEdgesWithNodes.name.single=Delete edge with nodes... +DeleteEdgesWithNodes.name.multiple=Delete all edges with nodes... +SelectOnGraph.name=Select on Overview +ClearEdgesData.name.single=Wissen... +ClearEdgesData.name.multiple=Alles wissen... +ClearEdgesData.description=Clear data of the selected edges +ClearEdgesData.ui.description=Kolommen wissen: +CopyEdgeDataToOtherEdges.name=Overwrite data to other selected edges... +CopyEdgeDataToOtherEdges.description=Copy the selected edge columns to the other selected edges. +CopyEdgeDataToOtherEdges.ui.rowDescription=Copy edge: +CopyEdgeDataToOtherEdges.ui.columnsDescription=Kolommen overschrijven: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_pt.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_pt.properties new file mode 100644 index 0000000000..f9d1d80256 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_pt.properties @@ -0,0 +1,21 @@ +OpenInEditEdgeWindow.name=Editar aresta +SelectOnGraph.name=Selecionar na Vis\u00E3o geral +ClearEdgesData.ui.description=Limpar colunas: +OpenInEditEdgeWindow.name.multiple=Editar todas as arestas +OpenInEditEdgeWindow.description=Alterar cores e atributos. +OpenInEditEdgeWindow.description.multiple=Alterar cores e atributos. Os campos estar\u00E3o inicialmente vazios. +SelectSourceOnGraph.name=Selecionar n\u00F3 de origem na Vis\u00E3o geral +SelectTargetOnGraph.name=Selecionar n\u00F3 de destino na Vis\u00E3o geral +SelectNodesOnTable.name=Selecionar n\u00F3s de origem e destino na tabela de n\u00F3s +DeleteEdges.name.single=Apagar +DeleteEdges.name.multiple=Apagar todos +DeleteEdges.confirmation.message=Confirmar apagar aresta? +DeleteEdgesWithNodes.name.single=Apagar aresta e os seus n\u00F3s... +DeleteEdgesWithNodes.name.multiple=Apagar arestas com os seus n\u00F3s... +ClearEdgesData.name.single=Limpar dados da aresta... +ClearEdgesData.name.multiple=Limpar dados de todas as arestas... +ClearEdgesData.description=Limpar dados das arestas selecionadas +CopyEdgeDataToOtherEdges.name=Sobrescrever dados das outras arestas selecionadas... +CopyEdgeDataToOtherEdges.description=Copiar as colunas da aresta selecionada para as outras arestas selecionadas. +CopyEdgeDataToOtherEdges.ui.rowDescription=Copiar aresta: +CopyEdgeDataToOtherEdges.ui.columnsDescription=Sobrescrever colunas: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_pt_BR.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_pt_BR.properties index 1f0d53f217..d901407dac 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_pt_BR.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_pt_BR.properties @@ -1,47 +1,24 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# C\u00e9lio CJr , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-08 19\:16+0000\nLast-Translator\: C\u00e9lio Faria Jr. \nLanguage-Team\: Portuguese (Brazil) (http\://www.transifex.com/projects/p/gephi/language/pt_BR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt_BR\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -OpenInEditEdgeWindow.name=Editar aresta - -OpenInEditEdgeWindow.name.multiple=Editar todas as arestas - -OpenInEditEdgeWindow.description=Alterar cores e atributos. - -OpenInEditEdgeWindow.description.multiple=Alterar cores e atributos. Os campos estar\u00e3o inicialmente vazios. - -SelectSourceOnGraph.name=Selecionar n\u00f3 de origem na Vis\u00e3o geral - -SelectTargetOnGraph.name=Selecionar n\u00f3 de destino na Vis\u00e3o geral - -SelectNodesOnTable.name=Selecionar n\u00f3s de origem e destino na tabela de n\u00f3s - -DeleteEdges.name.single=Excluir - -DeleteEdges.name.multiple=Excluir todos - -DeleteEdges.confirmation.message=Confirmar a exclus\u00e3o da aresta? - -DeleteEdgesWithNodes.name.single=Excluir aresta e seus n\u00f3s... - -DeleteEdgesWithNodes.name.multiple=Excluir arestas com seus n\u00f3s... - -ClearEdgesData.name.single=Limpar dados da aresta... - -ClearEdgesData.name.multiple=Limpar dados de todas as arestas... - -ClearEdgesData.description=Limpar dados das arestas selecionadas - -ClearEdgesData.ui.description=Limpar colunas\: - -CopyEdgeDataToOtherEdges.name=Sobrescrever dados das outras arestas selecionadas... - -CopyEdgeDataToOtherEdges.description=Copiar as colunas da aresta selecionada para as outras arestas selecionadas. - -CopyEdgeDataToOtherEdges.ui.rowDescription=Copiar aresta\: - -CopyEdgeDataToOtherEdges.ui.columnsDescription=Sobrescrever colunas\: +OpenInEditEdgeWindow.name=Editar aresta +OpenInEditEdgeWindow.name.multiple=Editar todas as arestas +OpenInEditEdgeWindow.description=Alterar cores e atributos. +OpenInEditEdgeWindow.description.multiple=Alterar cores e atributos. Os campos estarγo inicialmente vazios. + +SelectSourceOnGraph.name=Selecionar nσ de origem na Visγo geral +SelectTargetOnGraph.name=Selecionar nσ de destino na Visγo geral +SelectNodesOnTable.name=Selecionar nσs de origem e destino na tabela de nσs +DeleteEdges.name.single=Excluir +DeleteEdges.name.multiple=Excluir todos +DeleteEdges.confirmation.message=Confirmar a exclusγo da aresta? +DeleteEdgesWithNodes.name.single=Excluir aresta e seus nσs... +DeleteEdgesWithNodes.name.multiple=Excluir arestas com seus nσs... + +# SelectOnGraph.name=Select on Overview + +ClearEdgesData.name.single=Limpar dados da aresta... +ClearEdgesData.name.multiple=Limpar dados de todas as arestas... +ClearEdgesData.description=Limpar dados das arestas selecionadas +ClearEdgesData.ui.description=Limpar colunas: +CopyEdgeDataToOtherEdges.name=Sobrescrever dados das outras arestas selecionadas... +CopyEdgeDataToOtherEdges.description=Copiar as colunas da aresta selecionada para as outras arestas selecionadas. +CopyEdgeDataToOtherEdges.ui.rowDescription=Copiar aresta: +CopyEdgeDataToOtherEdges.ui.columnsDescription=Sobrescrever colunas: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_ro.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_ro.properties new file mode 100644 index 0000000000..f768c5ac9e --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_ro.properties @@ -0,0 +1,23 @@ + + +OpenInEditEdgeWindow.name.multiple=Editeaz\u0103 toate muchiile +OpenInEditEdgeWindow.name=Editeaz\u0103 muchia +OpenInEditEdgeWindow.description=Schimb\u0103 culorile \u0219i atributele. +SelectSourceOnGraph.name=Selecteaz\u0103 nodul surs\u0103 pe graf +SelectTargetOnGraph.name=Selecteaz\u0103 nodul \u021Bint\u0103 pe graf +SelectNodesOnTable.name=Selecteaz\u0103 nodurile surs\u0103 \u0219i \u021Bint\u0103 pe tabelul de noduri +DeleteEdges.name.multiple=\u0218terge tot +DeleteEdges.confirmation.message=Confirm\u0103 \u0219tergerea muchiei? +DeleteEdgesWithNodes.name.multiple=\u0218terge toate muchiile si nodurile lor... +ClearEdgesData.name.multiple=Cur\u0103\u021B\u0103 tot... +ClearEdgesData.description=\u0218terge datele din muchiile selectate +ClearEdgesData.ui.description=Cur\u0103\u021B\u0103 coloanele: +CopyEdgeDataToOtherEdges.name=Suprascrie datele \u00EEn celelalte muchii selectate... +CopyEdgeDataToOtherEdges.description=Copiaz\u0103 coloanele din muchia selectat\u0103 \u00EEn celelalte muchii selectate. +CopyEdgeDataToOtherEdges.ui.rowDescription=Copiaz\u0103 muchia: +CopyEdgeDataToOtherEdges.ui.columnsDescription=Suprascrie coloanele: +OpenInEditEdgeWindow.description.multiple=Schimb\u0103 culorile \u0219i atributele. C\u00E2mpurile vor fi goale la \u00EEnceput. +DeleteEdges.name.single=\u0218terge +DeleteEdgesWithNodes.name.single=\u0218terge muchia \u0219i nodurile ei... +SelectOnGraph.name=Selecteaz\u0103 pe graf +ClearEdgesData.name.single=Cur\u0103\u021B\u0103... diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_ru.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_ru.properties index 25a03a07e1..96833fd33c 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_ru.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_ru.properties @@ -1,47 +1,24 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-08 13\:16+0000\nLast-Translator\: gephi \nLanguage-Team\: Russian (http\://www.transifex.com/projects/p/gephi/language/ru/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ru\nPlural-Forms\: nplurals\=3; plural\=(n%10\=\=1 && n%100\!\=11 ? 0 \: n%10>\=2 && n%10<\=4 && (n%100<10 || n%100>\=20) ? 1 \: 2);\n - -OpenInEditEdgeWindow.name=\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0431\u0440\u043e - -OpenInEditEdgeWindow.name.multiple=\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0440\u0435\u0431\u0440\u0430 - -OpenInEditEdgeWindow.description=\u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u043e\u043a\u043d\u043e \u0434\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0431\u0440\u0430. \u0412 \u043d\u0451\u043c \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0446\u0432\u0435\u0442 \u0440\u0435\u0431\u0440\u0430 \u0438 \u0435\u0433\u043e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b. - -OpenInEditEdgeWindow.description.multiple=\u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u043e\u043a\u043d\u043e \u0434\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0445 \u0440\u0451\u0431\u0435\u0440. \u0412 \u043d\u0451\u043c \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0446\u0432\u0435\u0442\u0430 \u0440\u0451\u0431\u0435\u0440 \u0438 \u0438\u0445 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b. - -SelectSourceOnGraph.name=\u0412\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0443\u0437\u0435\u043b-\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u0433\u0440\u0430\u0444\u0430 - -SelectTargetOnGraph.name=\u0412\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0443\u0437\u0435\u043b-\u043f\u0440\u0438\u0451\u043c\u043d\u0438\u043a \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u0433\u0440\u0430\u0444\u0430 - -SelectNodesOnTable.name=\u0412\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0443\u0437\u0435\u043b-\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0438 \u0443\u0437\u0435\u043b-\u043f\u0440\u0438\u0451\u043c\u043d\u0438\u043a \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0443\u0437\u043b\u043e\u0432 - -DeleteEdges.name.single=\u0423\u0434\u0430\u043b\u0438\u0442\u044c - -DeleteEdges.name.multiple=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435 - -DeleteEdges.confirmation.message=\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0440\u0435\u0431\u0440\u043e(\u0440\u0451\u0431\u0440\u0430)? - -DeleteEdgesWithNodes.name.single=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0440\u0435\u0431\u0440\u043e \u0441 \u043f\u0440\u0438\u043c\u044b\u043a\u0430\u044e\u0449\u0438\u043c\u0438 \u0443\u0437\u043b\u0430\u043c\u0438... - -DeleteEdgesWithNodes.name.multiple=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u0440\u0451\u0431\u0440\u0430 \u0441 \u043f\u0440\u0438\u043c\u044b\u043a\u0430\u044e\u0449\u0438\u043c\u0438 \u0443\u0437\u043b\u0430\u043c\u0438... - -ClearEdgesData.name.single=\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0440\u0435\u0431\u0440\u0430... - -ClearEdgesData.name.multiple=\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0432\u0441\u0435\u0445 \u0440\u0451\u0431\u0435\u0440... - -ClearEdgesData.description=\u041e\u0447\u0438\u0449\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u0445 \u0443 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0431\u0440\u0430(\u0440\u0451\u0431\u0435\u0440)... - -ClearEdgesData.ui.description=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u0434\u043b\u044f \u043e\u0447\u0438\u0441\u0442\u043a\u0438\: - -CopyEdgeDataToOtherEdges.name=\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0440\u0435\u0431\u0440\u0430 \u0432 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0434\u0440\u0443\u0433\u0438\u0445 \u0440\u0451\u0431\u0435\u0440... - -CopyEdgeDataToOtherEdges.description=\u041a\u043e\u043f\u0438\u0440\u0443\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0431\u0440\u0430 \u0432 \u0434\u0440\u0443\u0433\u0438\u0435 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0440\u0451\u0431\u0440\u0430 - -CopyEdgeDataToOtherEdges.ui.rowDescription=\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 Edge \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 Edges.ui.\u0440\u044f\u0434 \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 - -CopyEdgeDataToOtherEdges.ui.columnsDescription=\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 Edge \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 Edges.ui.\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 +OpenInEditEdgeWindow.name=\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0431\u0440\u043e +OpenInEditEdgeWindow.name.multiple=\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0440\u0435\u0431\u0440\u0430 +OpenInEditEdgeWindow.description=\u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u043e\u043a\u043d\u043e \u0434\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0431\u0440\u0430. \u0412 \u043d\u0451\u043c \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0446\u0432\u0435\u0442 \u0440\u0435\u0431\u0440\u0430 \u0438 \u0435\u0433\u043e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b. +OpenInEditEdgeWindow.description.multiple=\u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u043e\u043a\u043d\u043e \u0434\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0445 \u0440\u0451\u0431\u0435\u0440. \u0412 \u043d\u0451\u043c \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0446\u0432\u0435\u0442\u0430 \u0440\u0451\u0431\u0435\u0440 \u0438 \u0438\u0445 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b. + +SelectSourceOnGraph.name=\u0412\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0443\u0437\u0435\u043b-\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u0433\u0440\u0430\u0444\u0430 +SelectTargetOnGraph.name=\u0412\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0443\u0437\u0435\u043b-\u043f\u0440\u0438\u0451\u043c\u043d\u0438\u043a \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u0433\u0440\u0430\u0444\u0430 +SelectNodesOnTable.name=\u0412\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0443\u0437\u0435\u043b-\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0438 \u0443\u0437\u0435\u043b-\u043f\u0440\u0438\u0451\u043c\u043d\u0438\u043a \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0443\u0437\u043b\u043e\u0432 +DeleteEdges.name.single=\u0423\u0434\u0430\u043b\u0438\u0442\u044c +DeleteEdges.name.multiple=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435 +DeleteEdges.confirmation.message=\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0440\u0435\u0431\u0440\u043e(\u0440\u0451\u0431\u0440\u0430)? +DeleteEdgesWithNodes.name.single=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0440\u0435\u0431\u0440\u043e \u0441 \u043f\u0440\u0438\u043c\u044b\u043a\u0430\u044e\u0449\u0438\u043c\u0438 \u0443\u0437\u043b\u0430\u043c\u0438... +DeleteEdgesWithNodes.name.multiple=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u0440\u0451\u0431\u0440\u0430 \u0441 \u043f\u0440\u0438\u043c\u044b\u043a\u0430\u044e\u0449\u0438\u043c\u0438 \u0443\u0437\u043b\u0430\u043c\u0438... + +# SelectOnGraph.name=Select on Overview + +ClearEdgesData.name.single=\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0440\u0435\u0431\u0440\u0430... +ClearEdgesData.name.multiple=\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0432\u0441\u0435\u0445 \u0440\u0451\u0431\u0435\u0440... +ClearEdgesData.description=\u041e\u0447\u0438\u0449\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u0445 \u0443 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0431\u0440\u0430(\u0440\u0451\u0431\u0435\u0440)... +ClearEdgesData.ui.description=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u0434\u043b\u044f \u043e\u0447\u0438\u0441\u0442\u043a\u0438: +CopyEdgeDataToOtherEdges.name=\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0440\u0435\u0431\u0440\u0430 \u0432 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0434\u0440\u0443\u0433\u0438\u0445 \u0440\u0451\u0431\u0435\u0440... +CopyEdgeDataToOtherEdges.description=\u041a\u043e\u043f\u0438\u0440\u0443\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0431\u0440\u0430 \u0432 \u0434\u0440\u0443\u0433\u0438\u0435 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0440\u0451\u0431\u0440\u0430 +CopyEdgeDataToOtherEdges.ui.rowDescription=\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 Edge \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 Edges.ui.\u0440\u044f\u0434 \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 +CopyEdgeDataToOtherEdges.ui.columnsDescription=\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 Edge \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 Edges.ui.\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_th.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_th.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_th.properties @@ -0,0 +1 @@ + diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_tr.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_tr.properties new file mode 100644 index 0000000000..15276e32dd --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_tr.properties @@ -0,0 +1,21 @@ +OpenInEditEdgeWindow.name=Edit edge +OpenInEditEdgeWindow.name.multiple=Edit all edges +OpenInEditEdgeWindow.description=Change colors and attributes. +OpenInEditEdgeWindow.description.multiple=Change colors and attributes. Fields will be blank at first. +SelectSourceOnGraph.name=Select source node on Overview +SelectTargetOnGraph.name=Select target node on Overview +SelectNodesOnTable.name=Select source and target on nodes table +DeleteEdges.name.single=Sil +DeleteEdges.name.multiple=Delete all +DeleteEdges.confirmation.message=Confirm edge deletion? +DeleteEdgesWithNodes.name.single=Delete edge with nodes... +DeleteEdgesWithNodes.name.multiple=Delete all edges with nodes... +SelectOnGraph.name=Select on Overview +ClearEdgesData.name.single=Clear... +ClearEdgesData.name.multiple=Clear all... +ClearEdgesData.description=Clear data of the selected edges +ClearEdgesData.ui.description=Clear columns: +CopyEdgeDataToOtherEdges.name=Overwrite data to other selected edges... +CopyEdgeDataToOtherEdges.description=Copy the selected edge columns to the other selected edges. +CopyEdgeDataToOtherEdges.ui.rowDescription=Copy edge: +CopyEdgeDataToOtherEdges.ui.columnsDescription=Overwrite columns: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_zh_CN.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_zh_CN.properties index aff2c13157..c5e32e5ad0 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_zh_CN.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_zh_CN.properties @@ -1,46 +1,24 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-08 00\:19+0000\nLast-Translator\: gephi \nLanguage-Team\: Chinese (China) (http\://www.transifex.com/projects/p/gephi/language/zh_CN/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: zh_CN\nPlural-Forms\: nplurals\=1; plural\=0;\n - OpenInEditEdgeWindow.name=\u7f16\u8f91\u8fb9 - OpenInEditEdgeWindow.name.multiple=\u5168\u7f16\u8f91\u8fb9 - OpenInEditEdgeWindow.description=\u6539\u53d8\u989c\u8272\u548c\u5c5e\u6027\u3002 - OpenInEditEdgeWindow.description.multiple=\u6539\u53d8\u989c\u8272\u548c\u5c5e\u6027\u3002 \u5c06\u5148\u7a7a\u5b57\u6bb5\u3002 - SelectSourceOnGraph.name=\u5728\u6982\u8ff0\u9009\u62e9\u6e90\u8282\u70b9 - SelectTargetOnGraph.name=\u5728\u6982\u8ff0\u9009\u62e9\u76ee\u6807\u8282\u70b9 - SelectNodesOnTable.name=\u5728\u8282\u70b9\u8868\u683c\u9009\u62e9\u6e90\u548c\u76ee\u6807\u8282\u70b9 - DeleteEdges.name.single=\u5220\u9664 - DeleteEdges.name.multiple=\u5168\u5220\u9664 - DeleteEdges.confirmation.message=\u786e\u8ba4\u5220\u9664\u8fb9\uff1f - DeleteEdgesWithNodes.name.single=\u5220\u9664\u8ddf\u8282\u70b9\u4eec\u2026 - DeleteEdgesWithNodes.name.multiple=\u5220\u9664\u90fd\u8fb9\u4eec\u8ddf\u8282\u70b9\u4eec\u2026 -ClearEdgesData.name.single=\u6e05\u6d17\u2026 +# SelectOnGraph.name=Select on Overview +ClearEdgesData.name.single=\u6e05\u6d17\u2026 ClearEdgesData.name.multiple=\u5168\u6e05\u6d17\u2026 - ClearEdgesData.description=\u6e05\u6d17\u9009\u5b9a\u8fb9\u7684\u6570\u636e - ClearEdgesData.ui.description=\u6e05\u6d17\u5217\u4eec\uff1a - CopyEdgeDataToOtherEdges.name=\u5728\u522b\u9009\u5b9a\u7684\u8fb9\u4eec\u8986\u76d6\u6570\u636e\u2026 - CopyEdgeDataToOtherEdges.description=\u5728\u522b\u7684\u9009\u5b9a\u8fb9\u590d\u5236\u9009\u5b9a\u8fb9\u7684\u5217\u3002 - CopyEdgeDataToOtherEdges.ui.rowDescription=\u590d\u5236\u8fb9\uff1a - CopyEdgeDataToOtherEdges.ui.columnsDescription=\u8986\u76d6\u5217\u4eec\uff1a +SelectOnGraph.name=\u9009\u62E9\u6982\u89C8 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_zh_TW.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_zh_TW.properties new file mode 100644 index 0000000000..54c7240b84 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/Bundle_zh_TW.properties @@ -0,0 +1,21 @@ +OpenInEditEdgeWindow.name=\u7de8\u8f2f\u9023\u7d50 +OpenInEditEdgeWindow.name.multiple=\u7de8\u8f2f\u6240\u6709\u9023\u7d50 +OpenInEditEdgeWindow.description=\u6539\u8b8a\u984f\u8272\u53ca\u5c6c\u6027\u3002 +OpenInEditEdgeWindow.description.multiple=\u6539\u8b8a\u984f\u8272\u53ca\u5c6c\u6027\u3002\u6b04\u4f4d\u5c07\u6703\u5148\u88ab\u6e05\u7a7a\u3002 +SelectSourceOnGraph.name=\u8acb\u5728\u7e3d\u652c\u4e2d\u9078\u53d6\u4f86\u6e90\u7bc0\u9ede +SelectTargetOnGraph.name=\u8acb\u5728\u7e3d\u652c\u4e2d\u9078\u53d6\u76ee\u6a19\u7bc0\u9ede +SelectNodesOnTable.name=\u8acb\u5728\u7bc0\u9ede\u8868\u683c\u4e2d\u9078\u53d6\u9023\u7d50\u4f86\u6e90\u53ca\u76ee\u6a19 +DeleteEdges.name.single=\u522a\u9664 +DeleteEdges.name.multiple=\u522a\u9664\u5168\u90e8 +DeleteEdges.confirmation.message=\u78ba\u8a8d\u522a\u9664\u9023\u7d50\uff1f +DeleteEdgesWithNodes.name.single=\u522a\u9664\u7bc0\u9ede\u6240\u5c6c\u7684\u9023\u7d50... +DeleteEdgesWithNodes.name.multiple=\u522a\u9664\u6240\u6709\u7bc0\u9ede\u6240\u5c6c\u7684\u9023\u7d50... +SelectOnGraph.name=Select on Overview +ClearEdgesData.name.single=\u6e05\u9664... +ClearEdgesData.name.multiple=\u6e05\u9664\u5168\u90e8... +ClearEdgesData.description=\u6e05\u9664\u9078\u53d6\u9023\u7d50\u7684\u8cc7\u6599 +ClearEdgesData.ui.description=\u6e05\u9664\u6574\u6b04\uff1a +CopyEdgeDataToOtherEdges.name=\u8986\u84cb\u5176\u4ed6\u6240\u9078\u9023\u7d50\u7684\u8cc7\u6599... +CopyEdgeDataToOtherEdges.description=\u8907\u88fd\u6240\u9078\u9023\u7d50\u6b04\u4f4d\u8cc7\u6599\u5230\u5176\u4ed6\u6240\u9078\u9023\u7d50\u3002 +CopyEdgeDataToOtherEdges.ui.rowDescription=\u8907\u88fd\u9023\u7d50\uff1a +CopyEdgeDataToOtherEdges.ui.columnsDescription=\u8986\u84cb\u6b04\u4f4d\uff1a diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/cs.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/cs.po deleted file mode 100644 index 35837a56fb..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/cs.po +++ /dev/null @@ -1,79 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# ZbynΔ›k Schwarz , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-02-27 15:44+0000\n" -"Last-Translator: ZbynΔ›k Schwarz \n" -"Language-Team: Czech (http://www.transifex.com/projects/p/gephi/language/cs/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: cs\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" - -msgid "OpenInEditEdgeWindow.name" -msgstr "Upravit hranu" - -msgid "OpenInEditEdgeWindow.name.multiple" -msgstr "Upravit vΕ‘echny hrany" - -msgid "OpenInEditEdgeWindow.description" -msgstr "ZmΔ›nit barvu a vlastnosti." - -msgid "OpenInEditEdgeWindow.description.multiple" -msgstr "ZmΔ›nit barvu a vlastnosti. Pole budou zpočÑtku prΓ‘zdnΓ‘." - -msgid "SelectSourceOnGraph.name" -msgstr "Vybrat zdrojovΓ½ uzel v pΕ™ehledu" - -msgid "SelectTargetOnGraph.name" -msgstr "Vybrat cΓ­lovΓ½ uzel v pΕ™ehledu" - -msgid "SelectNodesOnTable.name" -msgstr "Vyberte zdroj a cΓ­l v tabulce uzlΕ―" - -msgid "DeleteEdges.name.single" -msgstr "Smazat" - -msgid "DeleteEdges.name.multiple" -msgstr "Smazat vΕ‘e" - -msgid "DeleteEdges.confirmation.message" -msgstr "Potvrdit smazΓ‘nΓ­ hrany?" - -msgid "DeleteEdgesWithNodes.name.single" -msgstr "Smazat hranu s uzly..." - -msgid "DeleteEdgesWithNodes.name.multiple" -msgstr "Smazat vΕ‘echny hrany s uzly..." - -msgid "ClearEdgesData.name.single" -msgstr "Vyčistit..." - -msgid "ClearEdgesData.name.multiple" -msgstr "Vyčistit vΕ‘e..." - -msgid "ClearEdgesData.description" -msgstr "Vyčistit data ve zvolenΓ½ch hranΓ‘ch" - -msgid "ClearEdgesData.ui.description" -msgstr "Vyčistit sloupce:" - -msgid "CopyEdgeDataToOtherEdges.name" -msgstr "PΕ™epsat data na ostatnΓ­ zvolenΓ© hrany..." - -msgid "CopyEdgeDataToOtherEdges.description" -msgstr "KopΓ­rovat zvolenΓ© sloupce hrany na ostatnΓ­ zvolenΓ© hrany" - -msgid "CopyEdgeDataToOtherEdges.ui.rowDescription" -msgstr "KopΓ­rovat hranu:" - -msgid "CopyEdgeDataToOtherEdges.ui.columnsDescription" -msgstr "PΕ™epsat sloupce:" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/es.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/es.po deleted file mode 100644 index 46375dccac..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/es.po +++ /dev/null @@ -1,79 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 14:28+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/gephi/language/es/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -msgid "OpenInEditEdgeWindow.name" -msgstr "Editar arista" - -msgid "OpenInEditEdgeWindow.name.multiple" -msgstr "Editar todas aristas" - -msgid "OpenInEditEdgeWindow.description" -msgstr "Cambiar colores y atributos" - -msgid "OpenInEditEdgeWindow.description.multiple" -msgstr "Cambiar colores y atributos. Los campos estarΓ‘n vacΓ­os inicialmente." - -msgid "SelectSourceOnGraph.name" -msgstr "Seleccionar nodo origen en la vista del grafo" - -msgid "SelectTargetOnGraph.name" -msgstr "Seleccionar nodo destino en la vista del grafo" - -msgid "SelectNodesOnTable.name" -msgstr "Seleccionar nodos origen y destino en la tabla de nodos" - -msgid "DeleteEdges.name.single" -msgstr "Eliminar" - -msgid "DeleteEdges.name.multiple" -msgstr "Eliminar todas" - -msgid "DeleteEdges.confirmation.message" -msgstr "ΒΏConfirmar eliminaciΓ³n de arista(s)?" - -msgid "DeleteEdgesWithNodes.name.single" -msgstr "Eliminar arista con sus nodos..." - -msgid "DeleteEdgesWithNodes.name.multiple" -msgstr "Eliminar aristas con sus nodos..." - -msgid "ClearEdgesData.name.single" -msgstr "Borrar datos de la arista..." - -msgid "ClearEdgesData.name.multiple" -msgstr "Borrar datos de todas las aristas..." - -msgid "ClearEdgesData.description" -msgstr "Borra los datos de las aristas seleccionadas" - -msgid "ClearEdgesData.ui.description" -msgstr "Borrar columnas:" - -msgid "CopyEdgeDataToOtherEdges.name" -msgstr "Sobreescribir datos a las otras aristas seleccionadas..." - -msgid "CopyEdgeDataToOtherEdges.description" -msgstr "Copia las columnas de la arista seleccionada a las otras aristas seleccionadas" - -msgid "CopyEdgeDataToOtherEdges.ui.rowDescription" -msgstr "Copiar arista:" - -msgid "CopyEdgeDataToOtherEdges.ui.columnsDescription" -msgstr "Sobreescribir columnas:" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/fr.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/fr.po deleted file mode 100644 index 3dfdbd3cda..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/fr.po +++ /dev/null @@ -1,79 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 14:28+0000\n" -"Last-Translator: gephi \n" -"Language-Team: French (http://www.transifex.com/projects/p/gephi/language/fr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "OpenInEditEdgeWindow.name" -msgstr "Editer le lien" - -msgid "OpenInEditEdgeWindow.name.multiple" -msgstr "Editer tous les liens" - -msgid "OpenInEditEdgeWindow.description" -msgstr "Change les couleurs et attributs." - -msgid "OpenInEditEdgeWindow.description.multiple" -msgstr "Change les couleurs et attributs. Les champs sont vides au dΓ©but." - -msgid "SelectSourceOnGraph.name" -msgstr "SΓ©lectionner le noeud source dans la Vue d'Ensemble" - -msgid "SelectTargetOnGraph.name" -msgstr "SΓ©lectionner le noeud de destination dans la Vue d'Ensemble" - -msgid "SelectNodesOnTable.name" -msgstr "SΓ©lectionner les noeuds source et destination" - -msgid "DeleteEdges.name.single" -msgstr "Supprimer" - -msgid "DeleteEdges.name.multiple" -msgstr "Tout supprimer" - -msgid "DeleteEdges.confirmation.message" -msgstr "Confirmer la suppression des liens ?" - -msgid "DeleteEdgesWithNodes.name.single" -msgstr "Supprimer les liens avec leurs noeuds..." - -msgid "DeleteEdgesWithNodes.name.multiple" -msgstr "Supprimer tous les liens avec leurs noeuds..." - -msgid "ClearEdgesData.name.single" -msgstr "Effacer..." - -msgid "ClearEdgesData.name.multiple" -msgstr "Tout effacer..." - -msgid "ClearEdgesData.description" -msgstr "Effacer les donnΓ©es des liens sΓ©lectionnΓ©s" - -msgid "ClearEdgesData.ui.description" -msgstr "Effacer les colonnes :" - -msgid "CopyEdgeDataToOtherEdges.name" -msgstr "Ecraser les donnΓ©es des autres liens sΓ©lectionnΓ©s..." - -msgid "CopyEdgeDataToOtherEdges.description" -msgstr "Copier les colonnes du lien vers les autres liens sΓ©lectionnΓ©s" - -msgid "CopyEdgeDataToOtherEdges.ui.rowDescription" -msgstr "Copier le lien :" - -msgid "CopyEdgeDataToOtherEdges.ui.columnsDescription" -msgstr "Ecraser les colonnes :" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ja.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ja.po deleted file mode 100644 index 4cd6c22379..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ja.po +++ /dev/null @@ -1,79 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-09-02 10:55+0000\n" -"Last-Translator: Siro Kida \n" -"Language-Team: Japanese (http://www.transifex.com/projects/p/gephi/language/ja/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ja\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "OpenInEditEdgeWindow.name" -msgstr "辺を編集" - -msgid "OpenInEditEdgeWindow.name.multiple" -msgstr "すべてγθΎΊγ‚’編集" - -msgid "OpenInEditEdgeWindow.description" -msgstr "θ‰²γ¨ε±žζ€§γε€‰ζ›΄" - -msgid "OpenInEditEdgeWindow.description.multiple" -msgstr "θ‰²γ¨ε±žζ€§γε€‰ζ›΄γ€‚εˆγ‚γ―空欄です。" - -msgid "SelectSourceOnGraph.name" -msgstr "概要γγ‚½γƒΌγ‚ΉγƒŽγƒΌγƒ‰γ‚’ιΈζŠž" - -msgid "SelectTargetOnGraph.name" -msgstr "概要γγ‚ΏγƒΌγ‚²γƒƒγƒˆγƒŽγƒΌγƒ‰γ‚’ιΈζŠž" - -msgid "SelectNodesOnTable.name" -msgstr "γƒŽγƒΌγƒ‰γƒ†γƒΌγƒ–γƒ«γγ‚½γƒΌγ‚Ήγ¨γ‚ΏγƒΌγ‚²γƒƒγƒˆγ‚’ιΈζŠž" - -msgid "DeleteEdges.name.single" -msgstr "ε‰Šι™€" - -msgid "DeleteEdges.name.multiple" -msgstr "γ™γΉγ¦γ‚’ε‰Šι™€" - -msgid "DeleteEdges.confirmation.message" -msgstr "θΎΊγ‚’ε‰Šι™€γ—γ¦γ‚‚γ„γ„γ§γ™γ‹οΌŸ" - -msgid "DeleteEdgesWithNodes.name.single" -msgstr "γƒŽγƒΌγƒ‰δ»˜γγθΎΊγ‚’ε‰Šι™€..." - -msgid "DeleteEdgesWithNodes.name.multiple" -msgstr "すべてγγƒŽγƒΌγƒ‰δ»˜γγθΎΊγ‚’ε‰Šι™€..." - -msgid "ClearEdgesData.name.single" -msgstr "γ‚―γƒͺγ‚’..." - -msgid "ClearEdgesData.name.multiple" -msgstr "すべてをクγƒͺγ‚’..." - -msgid "ClearEdgesData.description" -msgstr "ιΈζŠžγ—γŸθΎΊγγƒ‡γƒΌγ‚Ώγ‚’γ‚―γƒͺγ‚’" - -msgid "ClearEdgesData.ui.description" -msgstr "εˆ—γ‚’γ‚―γƒͺγ‚’:" - -msgid "CopyEdgeDataToOtherEdges.name" -msgstr "ιΈζŠžγ—γŸδ»–γθΎΊγ«γƒ‡γƒΌγ‚Ώγ‚’δΈŠζ›Έγ:" - -msgid "CopyEdgeDataToOtherEdges.description" -msgstr "ιΈζŠžγ—γŸθΎΊγεˆ—γ‚’δ»–γιΈζŠžγ—γŸθΎΊγ«γ‚³γƒ”γƒΌγ€‚" - -msgid "CopyEdgeDataToOtherEdges.ui.rowDescription" -msgstr "辺をコピー:" - -msgid "CopyEdgeDataToOtherEdges.ui.columnsDescription" -msgstr "εˆ—γ‚’δΈŠζ›Έγ:" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/org-gephi-datalab-plugin-manipulators-edges.pot b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/org-gephi-datalab-plugin-manipulators-edges.pot deleted file mode 100644 index 84d1a693cb..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/org-gephi-datalab-plugin-manipulators-edges.pot +++ /dev/null @@ -1,76 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# Gephi Team , 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: Gephi 0.8\n" -"Report-Msgid-Bugs-To: gephi.team@lists.launchpad.net\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-05 14:52+0200\n" -"Last-Translator: Mathieu Bastian \n" -"Language-Team: English \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "OpenInEditEdgeWindow.name" -msgstr "Edit edge" - -msgid "OpenInEditEdgeWindow.name.multiple" -msgstr "Edit all edges" - -msgid "OpenInEditEdgeWindow.description" -msgstr "Change colors and attributes." - -msgid "OpenInEditEdgeWindow.description.multiple" -msgstr "Change colors and attributes. Fields will be blank at first." - -msgid "SelectSourceOnGraph.name" -msgstr "Select source node on Overview" - -msgid "SelectTargetOnGraph.name" -msgstr "Select target node on Overview" - -msgid "SelectNodesOnTable.name" -msgstr "Select source and target on nodes table" - -msgid "DeleteEdges.name.single" -msgstr "Delete" - -msgid "DeleteEdges.name.multiple" -msgstr "Delete all" - -msgid "DeleteEdges.confirmation.message" -msgstr "Confirm edge deletion?" - -msgid "DeleteEdgesWithNodes.name.single" -msgstr "Delete edge with nodes..." - -msgid "DeleteEdgesWithNodes.name.multiple" -msgstr "Delete all edges with nodes..." - -msgid "ClearEdgesData.name.single" -msgstr "Clear..." - -msgid "ClearEdgesData.name.multiple" -msgstr "Clear all..." - -msgid "ClearEdgesData.description" -msgstr "Clear data of the selected edges" - -msgid "ClearEdgesData.ui.description" -msgstr "Clear columns:" - -msgid "CopyEdgeDataToOtherEdges.name" -msgstr "Overwrite data to other selected edges..." - -msgid "CopyEdgeDataToOtherEdges.description" -msgstr "Copy the selected edge columns to the other selected edges." - -msgid "CopyEdgeDataToOtherEdges.ui.rowDescription" -msgstr "Copy edge:" - -msgid "CopyEdgeDataToOtherEdges.ui.columnsDescription" -msgstr "Overwrite columns:" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/pt_BR.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/pt_BR.po deleted file mode 100644 index 35762dcc2e..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/pt_BR.po +++ /dev/null @@ -1,79 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# CΓ©lio CJr , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-08 19:16+0000\n" -"Last-Translator: CΓ©lio Faria Jr. \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/gephi/language/pt_BR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "OpenInEditEdgeWindow.name" -msgstr "Editar aresta" - -msgid "OpenInEditEdgeWindow.name.multiple" -msgstr "Editar todas as arestas" - -msgid "OpenInEditEdgeWindow.description" -msgstr "Alterar cores e atributos." - -msgid "OpenInEditEdgeWindow.description.multiple" -msgstr "Alterar cores e atributos. Os campos estarΓ£o inicialmente vazios." - -msgid "SelectSourceOnGraph.name" -msgstr "Selecionar nΓ³ de origem na VisΓ£o geral" - -msgid "SelectTargetOnGraph.name" -msgstr "Selecionar nΓ³ de destino na VisΓ£o geral" - -msgid "SelectNodesOnTable.name" -msgstr "Selecionar nΓ³s de origem e destino na tabela de nΓ³s" - -msgid "DeleteEdges.name.single" -msgstr "Excluir" - -msgid "DeleteEdges.name.multiple" -msgstr "Excluir todos" - -msgid "DeleteEdges.confirmation.message" -msgstr "Confirmar a exclusΓ£o da aresta?" - -msgid "DeleteEdgesWithNodes.name.single" -msgstr "Excluir aresta e seus nΓ³s..." - -msgid "DeleteEdgesWithNodes.name.multiple" -msgstr "Excluir arestas com seus nΓ³s..." - -msgid "ClearEdgesData.name.single" -msgstr "Limpar dados da aresta..." - -msgid "ClearEdgesData.name.multiple" -msgstr "Limpar dados de todas as arestas..." - -msgid "ClearEdgesData.description" -msgstr "Limpar dados das arestas selecionadas" - -msgid "ClearEdgesData.ui.description" -msgstr "Limpar colunas:" - -msgid "CopyEdgeDataToOtherEdges.name" -msgstr "Sobrescrever dados das outras arestas selecionadas..." - -msgid "CopyEdgeDataToOtherEdges.description" -msgstr "Copiar as colunas da aresta selecionada para as outras arestas selecionadas." - -msgid "CopyEdgeDataToOtherEdges.ui.rowDescription" -msgstr "Copiar aresta:" - -msgid "CopyEdgeDataToOtherEdges.ui.columnsDescription" -msgstr "Sobrescrever colunas:" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ru.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ru.po deleted file mode 100644 index 124b59f18c..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ru.po +++ /dev/null @@ -1,79 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-08 13:16+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Russian (http://www.transifex.com/projects/p/gephi/language/ru/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -msgid "OpenInEditEdgeWindow.name" -msgstr "Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π±Ρ€ΠΎ" - -msgid "OpenInEditEdgeWindow.name.multiple" -msgstr "Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС Ρ€Π΅Π±Ρ€Π°" - -msgid "OpenInEditEdgeWindow.description" -msgstr "ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠΊΠ½ΠΎ для рСдактирования Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅Π±Ρ€Π°. Π’ Π½Ρ‘ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ Ρ€Π΅Π±Ρ€Π° ΠΈ Π΅Π³ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹." - -msgid "OpenInEditEdgeWindow.description.multiple" -msgstr "ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠΊΠ½ΠΎ для рСдактирования Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… Ρ€Ρ‘Π±Π΅Ρ€. Π’ Π½Ρ‘ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚Π° Ρ€Ρ‘Π±Π΅Ρ€ ΠΈ ΠΈΡ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹." - -msgid "SelectSourceOnGraph.name" -msgstr "Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡƒΠ·Π΅Π»-источник Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ просмотра Π³Ρ€Π°Ρ„Π°" - -msgid "SelectTargetOnGraph.name" -msgstr "Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡƒΠ·Π΅Π»-ΠΏΡ€ΠΈΡ‘ΠΌΠ½ΠΈΠΊ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ просмотра Π³Ρ€Π°Ρ„Π°" - -msgid "SelectNodesOnTable.name" -msgstr "Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡƒΠ·Π΅Π»-источник ΠΈ ΡƒΠ·Π΅Π»-ΠΏΡ€ΠΈΡ‘ΠΌΠ½ΠΈΠΊ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΡƒΠ·Π»ΠΎΠ²" - -msgid "DeleteEdges.name.single" -msgstr "Π£Π΄Π°Π»ΠΈΡ‚ΡŒ" - -msgid "DeleteEdges.name.multiple" -msgstr "Π£Π΄Π°Π»ΠΈΡ‚ΡŒ всС" - -msgid "DeleteEdges.confirmation.message" -msgstr "Π’Ρ‹ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ€Π΅Π±Ρ€ΠΎ(Ρ€Ρ‘Π±Ρ€Π°)?" - -msgid "DeleteEdgesWithNodes.name.single" -msgstr "Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Ρ€Π΅Π±Ρ€ΠΎ с ΠΏΡ€ΠΈΠΌΡ‹ΠΊΠ°ΡŽΡ‰ΠΈΠΌΠΈ ΡƒΠ·Π»Π°ΠΌΠΈ..." - -msgid "DeleteEdgesWithNodes.name.multiple" -msgstr "Π£Π΄Π°Π»ΠΈΡ‚ΡŒ всС Ρ€Ρ‘Π±Ρ€Π° с ΠΏΡ€ΠΈΠΌΡ‹ΠΊΠ°ΡŽΡ‰ΠΈΠΌΠΈ ΡƒΠ·Π»Π°ΠΌΠΈ..." - -msgid "ClearEdgesData.name.single" -msgstr "ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Ρ€Π΅Π±Ρ€Π°..." - -msgid "ClearEdgesData.name.multiple" -msgstr "ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ всСх Ρ€Ρ‘Π±Π΅Ρ€..." - -msgid "ClearEdgesData.description" -msgstr "ΠžΡ‡ΠΈΡ‰Π°Π΅Ρ‚ значСния Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… столбцах Ρƒ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅Π±Ρ€Π°(Ρ€Ρ‘Π±Π΅Ρ€)..." - -msgid "ClearEdgesData.ui.description" -msgstr "Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ столбцы для очистки:" - -msgid "CopyEdgeDataToOtherEdges.name" -msgstr "ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Ρ€Π΅Π±Ρ€Π° Π² Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Ρ‘Π±Π΅Ρ€..." - -msgid "CopyEdgeDataToOtherEdges.description" -msgstr "ΠšΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ значСния ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… столбцов Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅Π±Ρ€Π° Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ Ρ€Ρ‘Π±Ρ€Π°" - -msgid "CopyEdgeDataToOtherEdges.ui.rowDescription" -msgstr "ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Edge Π΄Π°Π½Π½Ρ‹Ρ… Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Edges.ui.ряд ОписаниС" - -msgid "CopyEdgeDataToOtherEdges.ui.columnsDescription" -msgstr "ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Edge Π΄Π°Π½Π½Ρ‹Ρ… Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Edges.ui.ОписаниС столбцов" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_ar.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_ar.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_ar.properties @@ -0,0 +1 @@ + diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_ca.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_ca.properties new file mode 100644 index 0000000000..f13f9d3b73 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_ca.properties @@ -0,0 +1,3 @@ +DeleteEdgesWithNodesUI.description=Choose the nodes to delete. +DeleteEdgesWithNodesUI.deleteSource.text=Esborra el node de sortida +DeleteEdgesWithNodesUI.deleteTarget.text=Esborra el node d'arribada diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_cs.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_cs.properties index 630a05e674..915bc1bf1f 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_cs.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_cs.properties @@ -1,13 +1,3 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Zbyn\u011bk Schwarz , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-02-27 15\:44+0000\nLast-Translator\: Zbyn\u011bk Schwarz \nLanguage-Team\: Czech (http\://www.transifex.com/projects/p/gephi/language/cs/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: cs\nPlural-Forms\: nplurals\=3; plural\=(n\=\=1) ? 0 \: (n>\=2 && n<\=4) ? 1 \: 2;\n - -DeleteEdgesWithNodesUI.description=Zvolte uzly ke smaz\u00e1n\u00ed. - -DeleteEdgesWithNodesUI.deleteSource.text=Smazat zdrojov\u00fd uzel - -DeleteEdgesWithNodesUI.deleteTarget.text=Smazat c\u00edlov\u00fd uzel +DeleteEdgesWithNodesUI.description=Zvolte uzly ke smazαnν. +DeleteEdgesWithNodesUI.deleteSource.text=Smazat zdrojovύ uzel +DeleteEdgesWithNodesUI.deleteTarget.text=Smazat cνlovύ uzel diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_de.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_de.properties new file mode 100644 index 0000000000..f58b6ca119 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_de.properties @@ -0,0 +1,3 @@ +DeleteEdgesWithNodesUI.description=Knoten zum Lφschen auswδhlen. +DeleteEdgesWithNodesUI.deleteSource.text=Startknoten lφschen +DeleteEdgesWithNodesUI.deleteTarget.text=Zielknoten lφschen diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_es.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_es.properties index c9c9971749..d1f7524e65 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_es.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_es.properties @@ -1,13 +1,3 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 14\:29+0000\nLast-Translator\: gephi \nLanguage-Team\: Spanish (http\://www.transifex.com/projects/p/gephi/language/es/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: es\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n - -DeleteEdgesWithNodesUI.description=Elige qu\u00e9 nodos eliminar. - -DeleteEdgesWithNodesUI.deleteSource.text=Eliminar nodo origen - -DeleteEdgesWithNodesUI.deleteTarget.text=Eliminar nodo destino +DeleteEdgesWithNodesUI.description=Elige quι nodos eliminar. +DeleteEdgesWithNodesUI.deleteSource.text=Eliminar nodo origen +DeleteEdgesWithNodesUI.deleteTarget.text=Eliminar nodo destino diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_fr.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_fr.properties index 7b7059d138..492dc5f09e 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_fr.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_fr.properties @@ -1,13 +1,3 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 14\:28+0000\nLast-Translator\: gephi \nLanguage-Team\: French (http\://www.transifex.com/projects/p/gephi/language/fr/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fr\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -DeleteEdgesWithNodesUI.description=Choisissez les noeuds \u00e0 supprimer des liens s\u00e9lectionn\u00e9s. - -DeleteEdgesWithNodesUI.deleteSource.text=Supprimer noeud source - -DeleteEdgesWithNodesUI.deleteTarget.text=Supprimer noeud de destination +DeleteEdgesWithNodesUI.description=Choisissez les noeuds ΰ supprimer des liens sιlectionnιs. +DeleteEdgesWithNodesUI.deleteSource.text=Supprimer noeud source +DeleteEdgesWithNodesUI.deleteTarget.text=Supprimer noeud de destination diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_he.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_he.properties new file mode 100644 index 0000000000..0e85ddfe0e --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_he.properties @@ -0,0 +1,3 @@ +DeleteEdgesWithNodesUI.description=Choose the nodes to delete. +DeleteEdgesWithNodesUI.deleteSource.text=Delete source node +DeleteEdgesWithNodesUI.deleteTarget.text=Delete target node diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_hu.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_hu.properties new file mode 100644 index 0000000000..221afbaf66 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_hu.properties @@ -0,0 +1,5 @@ + + +DeleteEdgesWithNodesUI.deleteSource.text=Forr\u00E1scsom\u00F3pont t\u00F6rl\u00E9se +DeleteEdgesWithNodesUI.description=V\u00E1lassza ki a t\u00F6r\u00F6lni k\u00EDv\u00E1nt csom\u00F3pontokat. +DeleteEdgesWithNodesUI.deleteTarget.text=C\u00E9lcsom\u00F3pont t\u00F6rl\u00E9se diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_it.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_it.properties new file mode 100644 index 0000000000..0e85ddfe0e --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_it.properties @@ -0,0 +1,3 @@ +DeleteEdgesWithNodesUI.description=Choose the nodes to delete. +DeleteEdgesWithNodesUI.deleteSource.text=Delete source node +DeleteEdgesWithNodesUI.deleteTarget.text=Delete target node diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_ja.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_ja.properties index f8ed84a111..7d5286f13c 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_ja.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_ja.properties @@ -1,13 +1,3 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-13 09\:11+0000\nLast-Translator\: Siro Kida \nLanguage-Team\: Japanese (http\://www.transifex.com/projects/p/gephi/language/ja/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ja\nPlural-Forms\: nplurals\=1; plural\=0;\n - -DeleteEdgesWithNodesUI.description=\u6d88\u53bb\u3059\u308b\u30ce\u30fc\u30c9\u306e\u9078\u629e - -DeleteEdgesWithNodesUI.deleteSource.text=\u30bd\u30fc\u30b9\u30fb\u30ce\u30fc\u30c9\u3092\u6d88\u53bb\u3059\u308b - -DeleteEdgesWithNodesUI.deleteTarget.text=\u30bf\u30fc\u30b2\u30c3\u30c8\u30fb\u30ce\u30fc\u30c9\u3092\u6d88\u53bb\u3059\u308b +DeleteEdgesWithNodesUI.description=\u6d88\u53bb\u3059\u308b\u30ce\u30fc\u30c9\u306e\u9078\u629e +DeleteEdgesWithNodesUI.deleteSource.text=\u30bd\u30fc\u30b9\u30fb\u30ce\u30fc\u30c9\u3092\u6d88\u53bb\u3059\u308b +DeleteEdgesWithNodesUI.deleteTarget.text=\u30bf\u30fc\u30b2\u30c3\u30c8\u30fb\u30ce\u30fc\u30c9\u3092\u6d88\u53bb\u3059\u308b diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_ko.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_ko.properties new file mode 100644 index 0000000000..89ab9a3791 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_ko.properties @@ -0,0 +1,5 @@ + + +DeleteEdgesWithNodesUI.deleteSource.text=\uC18C\uC2A4 \uB178\uB4DC\uB97C \uC0AD\uC81C +DeleteEdgesWithNodesUI.description=\uC0AD\uC81C\uD560 \uB178\uB4DC\uB97C \uC120\uD0DD\uD558\uC138\uC694. +DeleteEdgesWithNodesUI.deleteTarget.text=\uD0C0\uAC9F \uB178\uB4DC\uB97C \uC0AD\uC81C diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_nl.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_nl.properties new file mode 100644 index 0000000000..f425f6eea8 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_nl.properties @@ -0,0 +1,3 @@ +DeleteEdgesWithNodesUI.description=Kies de knopen om te verwijderen. +DeleteEdgesWithNodesUI.deleteSource.text=Bronknoop verwijderen +DeleteEdgesWithNodesUI.deleteTarget.text=Doelknoop verwijderen diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_pt_BR.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_pt_BR.properties index 9f0bfbe88c..2cd1fc2a3f 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_pt_BR.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_pt_BR.properties @@ -1,13 +1,3 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# C\u00e9lio CJr , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-08 19\:17+0000\nLast-Translator\: C\u00e9lio Faria Jr. \nLanguage-Team\: Portuguese (Brazil) (http\://www.transifex.com/projects/p/gephi/language/pt_BR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt_BR\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -DeleteEdgesWithNodesUI.description=Escolha os n\u00f3s para excluir. - -DeleteEdgesWithNodesUI.deleteSource.text=Excluir n\u00f3 de origem - -DeleteEdgesWithNodesUI.deleteTarget.text=Excluir n\u00f3 de destino +DeleteEdgesWithNodesUI.description=Escolha os nσs para excluir. +DeleteEdgesWithNodesUI.deleteSource.text=Excluir nσ de origem +DeleteEdgesWithNodesUI.deleteTarget.text=Excluir nσ de destino diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_ro.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_ro.properties new file mode 100644 index 0000000000..c618d561ba --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_ro.properties @@ -0,0 +1,5 @@ + + +DeleteEdgesWithNodesUI.description=Alege nodurile de \u0219ters. +DeleteEdgesWithNodesUI.deleteSource.text=\u0218terge nodul surs\u0103 +DeleteEdgesWithNodesUI.deleteTarget.text=\u0218terge nodul \u021Bint\u0103 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_ru.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_ru.properties index a60e62c40f..4d5e31beeb 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_ru.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_ru.properties @@ -1,13 +1,3 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 14\:28+0000\nLast-Translator\: gephi \nLanguage-Team\: Russian (http\://www.transifex.com/projects/p/gephi/language/ru/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ru\nPlural-Forms\: nplurals\=3; plural\=(n%10\=\=1 && n%100\!\=11 ? 0 \: n%10>\=2 && n%10<\=4 && (n%100<10 || n%100>\=20) ? 1 \: 2);\n - -DeleteEdgesWithNodesUI.description=\u0412\u044b\u0431\u043e\u0440 \u0443\u0437\u043b\u043e\u0432, \u0443\u0434\u0430\u043b\u044f\u0435\u043c\u044b\u0445 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u043c \u0440\u0435\u0431\u0440\u043e\u043c(\u0440\u0451\u0431\u0440\u0430\u043c\u0438). - -DeleteEdgesWithNodesUI.deleteSource.text=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0443\u0437\u0435\u043b-\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a - -DeleteEdgesWithNodesUI.deleteTarget.text=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0443\u0437\u0435\u043b-\u043f\u0440\u0438\u0451\u043c\u043d\u0438\u043a +DeleteEdgesWithNodesUI.description=\u0412\u044b\u0431\u043e\u0440 \u0443\u0437\u043b\u043e\u0432, \u0443\u0434\u0430\u043b\u044f\u0435\u043c\u044b\u0445 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u043c \u0440\u0435\u0431\u0440\u043e\u043c(\u0440\u0451\u0431\u0440\u0430\u043c\u0438). +DeleteEdgesWithNodesUI.deleteSource.text=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0443\u0437\u0435\u043b-\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a +DeleteEdgesWithNodesUI.deleteTarget.text=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0443\u0437\u0435\u043b-\u043f\u0440\u0438\u0451\u043c\u043d\u0438\u043a diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_th.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_th.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_th.properties @@ -0,0 +1 @@ + diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_tr.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_tr.properties new file mode 100644 index 0000000000..3c04740d3b --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_tr.properties @@ -0,0 +1,3 @@ +DeleteEdgesWithNodesUI.description=Silinecek dό\u011fόmleri seηiniz. +DeleteEdgesWithNodesUI.deleteSource.text=Kaynak dό\u011fόmό sil +DeleteEdgesWithNodesUI.deleteTarget.text=Hedef dό\u011fόmό sil diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_zh_CN.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_zh_CN.properties index af37615332..dd85c2cbf3 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_zh_CN.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_zh_CN.properties @@ -1,12 +1,3 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-08 00\:19+0000\nLast-Translator\: gephi \nLanguage-Team\: Chinese (China) (http\://www.transifex.com/projects/p/gephi/language/zh_CN/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: zh_CN\nPlural-Forms\: nplurals\=1; plural\=0;\n - -DeleteEdgesWithNodesUI.description=\u9009\u62e9\u8981\u5220\u9664\u7684\u8282\u70b9\u3002 - -DeleteEdgesWithNodesUI.deleteSource.text=\u5220\u9664\u6e90\u8282\u70b9 - -DeleteEdgesWithNodesUI.deleteTarget.text=\u5220\u9664\u76ee\u6807\u8282\u70b9 +DeleteEdgesWithNodesUI.description=\u9009\u62e9\u8981\u5220\u9664\u7684\u8282\u70b9\u3002 +DeleteEdgesWithNodesUI.deleteSource.text=\u5220\u9664\u6e90\u8282\u70b9 +DeleteEdgesWithNodesUI.deleteTarget.text=\u5220\u9664\u76ee\u6807\u8282\u70b9 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_zh_TW.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_zh_TW.properties new file mode 100644 index 0000000000..0e85ddfe0e --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/Bundle_zh_TW.properties @@ -0,0 +1,3 @@ +DeleteEdgesWithNodesUI.description=Choose the nodes to delete. +DeleteEdgesWithNodesUI.deleteSource.text=Delete source node +DeleteEdgesWithNodesUI.deleteTarget.text=Delete target node diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/cs.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/cs.po deleted file mode 100644 index ad285085e3..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/cs.po +++ /dev/null @@ -1,28 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# ZbynΔ›k Schwarz , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-02-27 15:44+0000\n" -"Last-Translator: ZbynΔ›k Schwarz \n" -"Language-Team: Czech (http://www.transifex.com/projects/p/gephi/language/cs/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: cs\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" - -msgid "DeleteEdgesWithNodesUI.description" -msgstr "Zvolte uzly ke smazΓ‘nΓ­." - -msgid "DeleteEdgesWithNodesUI.deleteSource.text" -msgstr "Smazat zdrojovΓ½ uzel" - -msgid "DeleteEdgesWithNodesUI.deleteTarget.text" -msgstr "Smazat cΓ­lovΓ½ uzel" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/es.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/es.po deleted file mode 100644 index 5a904d01dc..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/es.po +++ /dev/null @@ -1,28 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 14:29+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/gephi/language/es/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -msgid "DeleteEdgesWithNodesUI.description" -msgstr "Elige quΓ© nodos eliminar." - -msgid "DeleteEdgesWithNodesUI.deleteSource.text" -msgstr "Eliminar nodo origen" - -msgid "DeleteEdgesWithNodesUI.deleteTarget.text" -msgstr "Eliminar nodo destino" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/fr.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/fr.po deleted file mode 100644 index 67b29aeb7d..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/fr.po +++ /dev/null @@ -1,28 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 14:28+0000\n" -"Last-Translator: gephi \n" -"Language-Team: French (http://www.transifex.com/projects/p/gephi/language/fr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "DeleteEdgesWithNodesUI.description" -msgstr "Choisissez les noeuds Γ  supprimer des liens sΓ©lectionnΓ©s." - -msgid "DeleteEdgesWithNodesUI.deleteSource.text" -msgstr "Supprimer noeud source" - -msgid "DeleteEdgesWithNodesUI.deleteTarget.text" -msgstr "Supprimer noeud de destination" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/ja.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/ja.po deleted file mode 100644 index 8798732462..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/ja.po +++ /dev/null @@ -1,28 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-13 09:11+0000\n" -"Last-Translator: Siro Kida \n" -"Language-Team: Japanese (http://www.transifex.com/projects/p/gephi/language/ja/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ja\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "DeleteEdgesWithNodesUI.description" -msgstr "ζΆˆεŽ»γ™γ‚‹γƒŽγƒΌγƒ‰γιΈζŠž" - -msgid "DeleteEdgesWithNodesUI.deleteSource.text" -msgstr "γ‚½γƒΌγ‚Ήγƒ»γƒŽγƒΌγƒ‰γ‚’ζΆˆεŽ»γ™γ‚‹" - -msgid "DeleteEdgesWithNodesUI.deleteTarget.text" -msgstr "γ‚ΏγƒΌγ‚²γƒƒγƒˆγƒ»γƒŽγƒΌγƒ‰γ‚’ζΆˆεŽ»γ™γ‚‹" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/org-gephi-datalab-plugin-manipulators-edges-ui.pot b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/org-gephi-datalab-plugin-manipulators-edges-ui.pot deleted file mode 100644 index 53775fcb0c..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/org-gephi-datalab-plugin-manipulators-edges-ui.pot +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# Gephi Team , 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: Gephi 0.8\n" -"Report-Msgid-Bugs-To: gephi.team@lists.launchpad.net\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-05 14:52+0200\n" -"Last-Translator: Mathieu Bastian \n" -"Language-Team: English \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "DeleteEdgesWithNodesUI.description" -msgstr "Choose the nodes to delete." - -msgid "DeleteEdgesWithNodesUI.deleteSource.text" -msgstr "Delete source node" - -msgid "DeleteEdgesWithNodesUI.deleteTarget.text" -msgstr "Delete target node" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/pt_BR.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/pt_BR.po deleted file mode 100644 index e14e031179..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/pt_BR.po +++ /dev/null @@ -1,28 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# CΓ©lio CJr , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-08 19:17+0000\n" -"Last-Translator: CΓ©lio Faria Jr. \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/gephi/language/pt_BR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "DeleteEdgesWithNodesUI.description" -msgstr "Escolha os nΓ³s para excluir." - -msgid "DeleteEdgesWithNodesUI.deleteSource.text" -msgstr "Excluir nΓ³ de origem" - -msgid "DeleteEdgesWithNodesUI.deleteTarget.text" -msgstr "Excluir nΓ³ de destino" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/ru.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/ru.po deleted file mode 100644 index 6dc37c9cd6..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/ru.po +++ /dev/null @@ -1,28 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 14:28+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Russian (http://www.transifex.com/projects/p/gephi/language/ru/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -msgid "DeleteEdgesWithNodesUI.description" -msgstr "Π’Ρ‹Π±ΠΎΡ€ ΡƒΠ·Π»ΠΎΠ², удаляСмых вмСстС с Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ Ρ€Π΅Π±Ρ€ΠΎΠΌ(Ρ€Ρ‘Π±Ρ€Π°ΠΌΠΈ)." - -msgid "DeleteEdgesWithNodesUI.deleteSource.text" -msgstr "Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΡƒΠ·Π΅Π»-источник" - -msgid "DeleteEdgesWithNodesUI.deleteTarget.text" -msgstr "Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΡƒΠ·Π΅Π»-ΠΏΡ€ΠΈΡ‘ΠΌΠ½ΠΈΠΊ" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/zh_CN.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/zh_CN.po deleted file mode 100644 index ac2230a76a..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/ui/zh_CN.po +++ /dev/null @@ -1,27 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-08 00:19+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/gephi/language/zh_CN/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "DeleteEdgesWithNodesUI.description" -msgstr "ι€‰ζ‹©θ¦εˆ ι™€ηš„θŠ‚η‚Ήγ€‚" - -msgid "DeleteEdgesWithNodesUI.deleteSource.text" -msgstr "εˆ ι™€ζΊθŠ‚η‚Ή" - -msgid "DeleteEdgesWithNodesUI.deleteTarget.text" -msgstr "εˆ ι™€η›ζ ‡θŠ‚η‚Ή" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/zh_CN.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/zh_CN.po deleted file mode 100644 index 2d1724a3a5..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/edges/zh_CN.po +++ /dev/null @@ -1,78 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-08 00:19+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/gephi/language/zh_CN/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "OpenInEditEdgeWindow.name" -msgstr "ηΌ–θΎ‘θΎΉ" - -msgid "OpenInEditEdgeWindow.name.multiple" -msgstr "ε…¨ηΌ–θΎ‘θΎΉ" - -msgid "OpenInEditEdgeWindow.description" -msgstr "ζ”Ήε˜ι’œθ‰²ε’Œε±žζ€§γ€‚" - -msgid "OpenInEditEdgeWindow.description.multiple" -msgstr "ζ”Ήε˜ι’œθ‰²ε’Œε±žζ€§γ€‚ ε°†ε…ˆη©Ίε­—ζ΅γ€‚" - -msgid "SelectSourceOnGraph.name" -msgstr "εœ¨ζ¦‚θΏ°ι€‰ζ‹©ζΊθŠ‚η‚Ή" - -msgid "SelectTargetOnGraph.name" -msgstr "εœ¨ζ¦‚θΏ°ι€‰ζ‹©η›ζ ‡θŠ‚η‚Ή" - -msgid "SelectNodesOnTable.name" -msgstr "εœ¨θŠ‚η‚Ήθ‘¨ζ Όι€‰ζ‹©ζΊε’Œη›ζ ‡θŠ‚η‚Ή" - -msgid "DeleteEdges.name.single" -msgstr "εˆ ι™€" - -msgid "DeleteEdges.name.multiple" -msgstr "ε…¨εˆ ι™€" - -msgid "DeleteEdges.confirmation.message" -msgstr "η‘θ€εˆ ι™€θΎΉοΌŸ" - -msgid "DeleteEdgesWithNodes.name.single" -msgstr "εˆ ι™€θ·ŸθŠ‚η‚Ήδ»¬β€¦" - -msgid "DeleteEdgesWithNodes.name.multiple" -msgstr "εˆ ι™€ιƒ½θΎΉδ»¬θ·ŸθŠ‚η‚Ήδ»¬β€¦" - -msgid "ClearEdgesData.name.single" -msgstr "清洗…" - -msgid "ClearEdgesData.name.multiple" -msgstr "全清洗…" - -msgid "ClearEdgesData.description" -msgstr "清洗选εšθΎΉηš„ζ•°ζ" - -msgid "ClearEdgesData.ui.description" -msgstr "ζΈ…ζ΄—εˆ—δ»¬οΌš" - -msgid "CopyEdgeDataToOtherEdges.name" -msgstr "εœ¨εˆ«ι€‰εšηš„边们覆盖数ζβ€¦" - -msgid "CopyEdgeDataToOtherEdges.description" -msgstr "εœ¨εˆ«ηš„ι€‰εšθΎΉε€εˆΆι€‰εšθΎΉηš„εˆ—γ€‚" - -msgid "CopyEdgeDataToOtherEdges.ui.rowDescription" -msgstr "倍刢边:" - -msgid "CopyEdgeDataToOtherEdges.ui.columnsDescription" -msgstr "θ¦†η›–εˆ—δ»¬οΌš" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle.properties index 7ae71c4b77..ca1718a18c 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle.properties @@ -12,4 +12,7 @@ MergeNodeDuplicates.description=Automatically detects and merges node duplicates SearchReplace.name=Search/Replace SearchReplace.window.close=Close ImportCSV.name=Import Spreadsheet -ExportTable.name=Export table \ No newline at end of file +ExportTable.name=Export table + +ManageColumnEstimators.name=Manage dynamic column estimators +ManageColumnEstimators.description=Configure estimators of dynamic columns (TimestampMap or IntervalMap types) \ No newline at end of file diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_ar.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_ar.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_ar.properties @@ -0,0 +1 @@ + diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_ca.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_ca.properties new file mode 100644 index 0000000000..c018c5fa9d --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_ca.properties @@ -0,0 +1,14 @@ +AddNodeToGraph.name=Afegeix un node +AddNodeToGraph.dialog.text=Etiqueta +AddEdgeToGraph.name=Afegeix una aresta +ClearGraph.name=Neteja el graf +ClearGraph.dialog.text=Segur que vol netejar el graf?
    Tots els nodes i arestes s'esborraran
    +ClearEdges.name=Neteja les arestes +MergeNodeDuplicates.name=Detect and merge node duplicates +MergeNodeDuplicates.description=Automatically detects and merges node duplicates based on a column +SearchReplace.name=Busca/Reemplaηa +SearchReplace.window.close=Tanca +ImportCSV.name=Importa un full de cΰlcul +ExportTable.name=Exporta la taula +ManageColumnEstimators.name=Manage dynamic column estimators +ManageColumnEstimators.description=Configure estimators of dynamic columns (TimestampMap or IntervalMap types) diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_cs.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_cs.properties index 22494e3453..42dc975c82 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_cs.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_cs.properties @@ -1,31 +1,18 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Zbyn\u011bk Schwarz , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-02-27 14\:22+0000\nLast-Translator\: Zbyn\u011bk Schwarz \nLanguage-Team\: Czech (http\://www.transifex.com/projects/p/gephi/language/cs/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: cs\nPlural-Forms\: nplurals\=3; plural\=(n\=\=1) ? 0 \: (n>\=2 && n<\=4) ? 1 \: 2;\n - -AddNodeToGraph.name=P\u0159idat uzel - -AddNodeToGraph.dialog.text=\u0160t\u00edtek\: - -AddEdgeToGraph.name=P\u0159idat hranu - -ClearGraph.name=Vy\u010distit graf - -ClearGraph.dialog.text=Potvrdit vy\u010di\u0161t\u011bn\u00ed grafu?
    V\u0161echny uzle a hrany budou smaz\u00e1ny.
    - -ClearEdges.name=Vy\u010distit hrany - -MergeNodeDuplicates.name=Zjistit a slou\u010dit kopie uzlu - -MergeNodeDuplicates.description=Automaticky zjist\u00ed a slou\u010d\u00ed kopie uzlu na z\u00e1klad\u011b sloupce - -SearchReplace.name=Hledat/Nahradit - -SearchReplace.window.close=Zav\u0159\u00edt - -ImportCSV.name=Importovat tabulky - -ExportTable.name=Exportovat tabulky +AddNodeToGraph.name=P\u0159idat uzel +AddNodeToGraph.dialog.text=Jmenovka: +AddEdgeToGraph.name=P\u0159idat hranu + +ClearGraph.name=Vy\u010distit graf +ClearGraph.dialog.text=Potvrdit vy\u010di\u0161t\u011bnν grafu?
    V\u0161echny uzle a hrany budou smazαny.
    +ClearEdges.name=Vy\u010distit hrany + +MergeNodeDuplicates.name=Zjistit a slou\u010dit kopie uzlu +MergeNodeDuplicates.description=Automaticky zjistν a slou\u010dν kopie uzlu na zαklad\u011b sloupce + +SearchReplace.name=Hledat/Nahradit +SearchReplace.window.close=Zav\u0159νt +ImportCSV.name=Importovat tabulky +ExportTable.name=Exportovat tabulky + +ManageColumnEstimators.name=Spravovat odhadce dynamickύch sloupc\u016f +ManageColumnEstimators.description=Nastavit odhadce dynamickύch sloupc\u016f (Typy TimestampMap nebo IntervalMap) diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_de.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_de.properties new file mode 100644 index 0000000000..b67a44bb56 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_de.properties @@ -0,0 +1,18 @@ +AddNodeToGraph.name=Knoten hinzufόgen +AddNodeToGraph.dialog.text=Bezeichnung: +AddEdgeToGraph.name=Kante hinzufόgen + +ClearGraph.name=Graph lφschen +ClearGraph.dialog.text=Bestδtigen sie das Lφschen des Graphen?
    Alle Knoten und Kanten werden gelφscht.
    +ClearEdges.name=Kanten lφschen + +MergeNodeDuplicates.name=Knotenduplikate finden und verschmelzen +MergeNodeDuplicates.description=Findet und verschmilzt Knotenduplikate anhand einer Spalte + +SearchReplace.name=Suchen/Ersetzen +SearchReplace.window.close=Schlieίen +ImportCSV.name=Tabelle importieren +ExportTable.name=Tabelle exportieren + +ManageColumnEstimators.name=Schδtzer fόr dynamische Spalten verwalten +ManageColumnEstimators.description=Schδtzer fόr dynamische Spalten konfigurieren (TimestampMap oder IntervalMap-Typen) diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_es.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_es.properties index 0aab85aa79..8eb9f4c55a 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_es.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_es.properties @@ -1,32 +1,14 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Eduardo Ramos , 2012. -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-16 23\:07+0000\nLast-Translator\: Eduardo Ramos \nLanguage-Team\: Spanish (http\://www.transifex.com/projects/p/gephi/language/es/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: es\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n - -AddNodeToGraph.name=A\u00f1adir nodo - -AddNodeToGraph.dialog.text=Etiqueta\: - -AddEdgeToGraph.name=A\u00f1adir arista - +AddNodeToGraph.name=Aρadir nodo +AddNodeToGraph.dialog.text=Etiqueta: +AddEdgeToGraph.name=Aρadir arista ClearGraph.name=Vaciar grafo - -ClearGraph.dialog.text=\u00bfConfirmar vaciar el grafo?
    Todos los nodos y aristas ser\u00e1n eliminados
    - +ClearGraph.dialog.text=ΏConfirmar vaciar el grafo?
    Todos los nodos y aristas serαn eliminados
    ClearEdges.name=Eliminar aristas - -MergeNodeDuplicates.name=Detectar y mezclar duplicados - -MergeNodeDuplicates.description=Autom\u00e1ticamente detecta y mezcla nodos duplicados a partir de una columna - +MergeNodeDuplicates.name=Detectar y fusionar nodos duplicados +MergeNodeDuplicates.description=Detecta y fusiona autom\u00E1ticamente nodos duplicados a partir de una columna SearchReplace.name=Buscar/Reemplazar - SearchReplace.window.close=Cerrar - -ImportCSV.name=Importar hoja de c\u00e1lculo - +ImportCSV.name=Importar hoja de cαlculo ExportTable.name=Exportar tabla +ManageColumnEstimators.name=Gestionar estimadores de columnas dinαmicas +ManageColumnEstimators.description=Configurar los estimadores de columnas dinαmicas (de tipo TimestampMap o IntervalMap) diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_fr.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_fr.properties index b863f0938b..9be2371f99 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_fr.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_fr.properties @@ -1,32 +1,18 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -# , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-03-08 15\:13+0000\nLast-Translator\: gephi \nLanguage-Team\: French (http\://www.transifex.com/projects/p/gephi/language/fr/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fr\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -AddNodeToGraph.name=Cr\u00e9er un noeud - -AddNodeToGraph.dialog.text=Label \: - -AddEdgeToGraph.name=Cr\u00e9er un lien - -ClearGraph.name=Effacer le graphe - -ClearGraph.dialog.text=Confirmer l'effacement du graphe ?
    Tous les noeuds et liens seront supprim\u00e9s.
    - -ClearEdges.name=Effacer les liens - -MergeNodeDuplicates.name=D\u00e9tecte et fusionne les noeuds en double - -MergeNodeDuplicates.description=D\u00e9tecte et fusionne automatiquement les noeuds en double selon une colonne. - -SearchReplace.name=Chercher/Remplacer - -SearchReplace.window.close=Fermer - -ImportCSV.name=Importer feuille de calcul - -ExportTable.name=Exporter la table +AddNodeToGraph.name=Crιer un noeud +AddNodeToGraph.dialog.text=Label : +AddEdgeToGraph.name=Crιer un lien + +ClearGraph.name=Effacer le graphe +ClearGraph.dialog.text=Confirmer l'effacement du graphe ?
    Tous les noeuds et liens seront supprimιs.
    +ClearEdges.name=Effacer les liens + +MergeNodeDuplicates.name=Dιtecte et fusionne les noeuds en double +MergeNodeDuplicates.description=Dιtecte et fusionne automatiquement les noeuds en double selon une colonne. + +SearchReplace.name=Chercher/Remplacer +SearchReplace.window.close=Fermer +ImportCSV.name=Importer feuille de calcul +ExportTable.name=Exporter la table + +ManageColumnEstimators.name=Gιrer les estimateurs de colonnes dynamiques +ManageColumnEstimators.description=Configurez les estimateurs de colonnes dynamiques (TimestampMap ou IntervalMap types) diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_he.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_he.properties new file mode 100644 index 0000000000..eaba6afebc --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_he.properties @@ -0,0 +1,14 @@ +AddNodeToGraph.name=Add node +AddNodeToGraph.dialog.text=Label: +AddEdgeToGraph.name=Add edge +ClearGraph.name=Clear graph +ClearGraph.dialog.text=Confirm to clear the graph?
    All nodes and edges will be deleted.
    +ClearEdges.name=Clear edges +MergeNodeDuplicates.name=Detect and merge node duplicates +MergeNodeDuplicates.description=Automatically detects and merges node duplicates based on a column +SearchReplace.name=Search/Replace +SearchReplace.window.close=Close +ImportCSV.name=Import Spreadsheet +ExportTable.name=Export table +ManageColumnEstimators.name=Manage dynamic column estimators +ManageColumnEstimators.description=Configure estimators of dynamic columns (TimestampMap or IntervalMap types) diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_hu.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_hu.properties new file mode 100644 index 0000000000..8aa8390959 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_hu.properties @@ -0,0 +1,16 @@ + + +ManageColumnEstimators.name=Dinamikus oszlopbecsl\u00E9sek kezel\u00E9se +SearchReplace.name=Keres\u00E9s/csere +AddEdgeToGraph.name=Adjon hozz\u00E1 \u00E9lt +MergeNodeDuplicates.description=Egy oszlop alapj\u00E1n automatikusan \u00E9szleli \u00E9s egyes\u00EDti a csom\u00F3pont-duplik\u00E1ci\u00F3kat +ManageColumnEstimators.description=Dinamikus oszlopok becsl\u0151inek konfigur\u00E1l\u00E1sa (TimestampMap vagy IntervalMap t\u00EDpusok) +ClearGraph.dialog.text=Er\u0151s\u00EDtse meg a grafikon t\u00F6rl\u00E9s\u00E9t?
    Minden csom\u00F3pont \u00E9s \u00E9l t\u00F6rl\u0151dik.
    +ClearGraph.name=Tiszta grafikon +ExportTable.name=T\u00E1bl\u00E1zat export\u00E1l\u00E1sa +AddNodeToGraph.name=Csom\u00F3pont hozz\u00E1ad\u00E1sa +SearchReplace.window.close=Bez\u00E1r\u00E1s +ImportCSV.name=T\u00E1bl\u00E1zat import\u00E1l\u00E1sa +MergeNodeDuplicates.name=A csom\u00F3pont ism\u00E9tl\u0151d\u00E9seinek \u00E9szlel\u00E9se \u00E9s egyes\u00EDt\u00E9se +ClearEdges.name=Tiszta sz\u00E9lek +AddNodeToGraph.dialog.text=C\u00EDmke: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_it.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_it.properties new file mode 100644 index 0000000000..eaba6afebc --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_it.properties @@ -0,0 +1,14 @@ +AddNodeToGraph.name=Add node +AddNodeToGraph.dialog.text=Label: +AddEdgeToGraph.name=Add edge +ClearGraph.name=Clear graph +ClearGraph.dialog.text=Confirm to clear the graph?
    All nodes and edges will be deleted.
    +ClearEdges.name=Clear edges +MergeNodeDuplicates.name=Detect and merge node duplicates +MergeNodeDuplicates.description=Automatically detects and merges node duplicates based on a column +SearchReplace.name=Search/Replace +SearchReplace.window.close=Close +ImportCSV.name=Import Spreadsheet +ExportTable.name=Export table +ManageColumnEstimators.name=Manage dynamic column estimators +ManageColumnEstimators.description=Configure estimators of dynamic columns (TimestampMap or IntervalMap types) diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_ja.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_ja.properties index 61e46fc57c..2c123b9079 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_ja.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_ja.properties @@ -1,31 +1,18 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011, 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-15 08\:07+0000\nLast-Translator\: Siro Kida \nLanguage-Team\: Japanese (http\://www.transifex.com/projects/p/gephi/language/ja/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ja\nPlural-Forms\: nplurals\=1; plural\=0;\n - -AddNodeToGraph.name=\u30ce\u30fc\u30c9\u306e\u8ffd\u52a0 - -AddNodeToGraph.dialog.text=\u30e9\u30d9\u30eb\: - -AddEdgeToGraph.name=\u8fba\u306e\u8ffd\u52a0 - -ClearGraph.name=\u30b0\u30e9\u30d5\u3092\u30af\u30ea\u30a2 - -ClearGraph.dialog.text= \u672c\u5f53\u306b\u30b0\u30e9\u30d5\u3092\u6d88\u53bb\u3057\u307e\u3059\u304b\uff1f
    \u3059\u3079\u3066\u306e\u30ce\u30fc\u30c9\u3068\u8fba\u306f\u524a\u9664\u3055\u308c\u307e\u3059\u3002
    - -ClearEdges.name=\u8fba\u3092\u30af\u30ea\u30a2 - -MergeNodeDuplicates.name=\u9802\u70b9\u306e\u91cd\u8907\u3092\u691c\u77e5\u3001\u4f75\u5408\u3059\u308b - -MergeNodeDuplicates.description=\u3042\u308b\u884c\u306b\u304a\u3051\u308b\u9802\u70b9\u306e\u91cd\u8907\u306e\u81ea\u52d5\u7684\u306a\u691c\u51fa\u3068\u4f75\u5408 - -SearchReplace.name=\u691c\u7d22/\u7f6e\u63db - -SearchReplace.window.close=\u9589\u3058\u308b - -ImportCSV.name=\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u306e\u30a4\u30f3\u30dd\u30fc\u30c8 - -ExportTable.name=\u30c6\u30fc\u30d6\u30eb\u306e\u30a8\u30af\u30b9\u30dd\u30fc\u30c8 +AddNodeToGraph.name=\u30ce\u30fc\u30c9\u306e\u8ffd\u52a0 +AddNodeToGraph.dialog.text=\u30e9\u30d9\u30eb: +AddEdgeToGraph.name=\u8fba\u306e\u8ffd\u52a0 + +ClearGraph.name=\u30b0\u30e9\u30d5\u3092\u30af\u30ea\u30a2 +ClearGraph.dialog.text= \u672c\u5f53\u306b\u30b0\u30e9\u30d5\u3092\u6d88\u53bb\u3057\u307e\u3059\u304b\uff1f
    \u3059\u3079\u3066\u306e\u30ce\u30fc\u30c9\u3068\u8fba\u306f\u524a\u9664\u3055\u308c\u307e\u3059\u3002
    +ClearEdges.name=\u8fba\u3092\u30af\u30ea\u30a2 + +MergeNodeDuplicates.name=\u9802\u70b9\u306e\u91cd\u8907\u3092\u691c\u77e5\u3001\u4f75\u5408\u3059\u308b +MergeNodeDuplicates.description=\u3042\u308b\u884c\u306b\u304a\u3051\u308b\u9802\u70b9\u306e\u91cd\u8907\u306e\u81ea\u52d5\u7684\u306a\u691c\u51fa\u3068\u4f75\u5408 + +SearchReplace.name=\u691c\u7d22/\u7f6e\u63db +SearchReplace.window.close=\u9589\u3058\u308b +ImportCSV.name=\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u306e\u30a4\u30f3\u30dd\u30fc\u30c8 +ExportTable.name=\u30c6\u30fc\u30d6\u30eb\u306e\u30a8\u30af\u30b9\u30dd\u30fc\u30c8 + +# ManageColumnEstimators.name=Manage dynamic column estimators +# ManageColumnEstimators.description=Configure estimators of dynamic columns (TimestampMap or IntervalMap types) diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_nl.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_nl.properties new file mode 100644 index 0000000000..cad80ff864 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_nl.properties @@ -0,0 +1,14 @@ +AddNodeToGraph.name=Knoop toevoegen +AddNodeToGraph.dialog.text=Label: +AddEdgeToGraph.name=Add edge +ClearGraph.name=Graaf wissen +ClearGraph.dialog.text=Confirm to clear the graph?
    All nodes and edges will be deleted.
    +ClearEdges.name=Clear edges +MergeNodeDuplicates.name=Detect and merge node duplicates +MergeNodeDuplicates.description=Automatically detects and merges node duplicates based on a column +SearchReplace.name=Search/Replace +SearchReplace.window.close=Sluiten +ImportCSV.name=Spreadsheet importeren +ExportTable.name=Tabel exporteren +ManageColumnEstimators.name=Manage dynamic column estimators +ManageColumnEstimators.description=Configure estimators of dynamic columns (TimestampMap or IntervalMap types) diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_pt_BR.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_pt_BR.properties index c48ad5685a..620accdd06 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_pt_BR.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_pt_BR.properties @@ -1,32 +1,18 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# C\u00e9lio CJr , 2011. -# C\u00e9lio Faria Jr. , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-17 12\:36+0000\nLast-Translator\: C\u00e9lio Faria Jr. \nLanguage-Team\: Portuguese (Brazil) (http\://www.transifex.com/projects/p/gephi/language/pt_BR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt_BR\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -AddNodeToGraph.name=Adicionar n\u00f3 - -AddNodeToGraph.dialog.text=R\u00f3tulo\: - -AddEdgeToGraph.name=Adicionar aresta - -ClearGraph.name=Limpar grafo - -ClearGraph.dialog.text=Deseja realmente limpar o grafo?
    Todos os n\u00f3s e arestas ser\u00e3o apagados.
    - -ClearEdges.name=Limpar arestas - -MergeNodeDuplicates.name=Detectar e mesclar n\u00f3s duplicados - -MergeNodeDuplicates.description=Detectar e mesclar n\u00f3s duplicados automaticamente com base nos dados de uma coluna - -SearchReplace.name=Procurar/Substituir - -SearchReplace.window.close=Fechar - -ImportCSV.name=Importar planilha - -ExportTable.name=Exportar tabela +AddNodeToGraph.name=Adicionar nσ +AddNodeToGraph.dialog.text=Rσtulo: +AddEdgeToGraph.name=Adicionar aresta + +ClearGraph.name=Limpar grafo +ClearGraph.dialog.text=Deseja realmente limpar o grafo?
    Todos os nσs e arestas serγo apagados.
    +ClearEdges.name=Limpar arestas + +MergeNodeDuplicates.name=Detectar e mesclar nσs duplicados +MergeNodeDuplicates.description=Detectar e mesclar nσs duplicados automaticamente com base nos dados de uma coluna + +SearchReplace.name=Procurar/Substituir +SearchReplace.window.close=Fechar +ImportCSV.name=Importar planilha +ExportTable.name=Exportar tabela + +ManageColumnEstimators.name=Gerenciar os estimadores da coluna dinβmica +ManageColumnEstimators.description=Configure estimators of dynamic columns (tipo "TimestampMap" ou "IntervalMap") diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_ro.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_ro.properties new file mode 100644 index 0000000000..1f2f5a93a2 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_ro.properties @@ -0,0 +1,16 @@ + + +AddNodeToGraph.name=Adaug\u0103 nod +AddEdgeToGraph.name=Adaug\u0103 muchie +ClearGraph.name=Cur\u0103\u021B\u0103 graf +ClearGraph.dialog.text=Confirm\u0103 cur\u0103\u021Barea grafului?
    Toate nodurile \u0219i muchiile vor fi \u0219terse.
    +ClearEdges.name=Cur\u0103\u021B\u0103 muchiile +MergeNodeDuplicates.description=Detecteaz\u0103 automat nodurile duplicate \u0219i le \u00EEmbin\u0103 pe baza unei coloane +SearchReplace.name=C\u0103utare/\u00EEnlocuire +SearchReplace.window.close=\u00CEnchide +ImportCSV.name=Import\u0103 foaie de calcul +ExportTable.name=Export\u0103 tabel +ManageColumnEstimators.name=Gestioneaz\u0103 estimatorii de coloane dinamice +ManageColumnEstimators.description=Gestioneaz\u0103 estimatorii de coloane dinamice (tipurile TimestampMap sau IntervalMap) +AddNodeToGraph.dialog.text=Etichet\u0103: +MergeNodeDuplicates.name=Detecteaz\u0103 \u0219i \u00EEmbin\u0103 nodurile duplicate diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_ru.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_ru.properties index fdcf4892bd..7a3e00a41e 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_ru.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_ru.properties @@ -1,32 +1,18 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# , 2012. -# FIRST AUTHOR , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-15 08\:33+0000\nLast-Translator\: Altsoph \nLanguage-Team\: Russian (http\://www.transifex.com/projects/p/gephi/language/ru/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ru\nPlural-Forms\: nplurals\=3; plural\=(n%10\=\=1 && n%100\!\=11 ? 0 \: n%10>\=2 && n%10<\=4 && (n%100<10 || n%100>\=20) ? 1 \: 2);\n - -AddNodeToGraph.name=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0443\u0437\u0435\u043b - -AddNodeToGraph.dialog.text=\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u0443\u0437\u043b\u0430 - -AddEdgeToGraph.name=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0440\u0435\u0431\u0440\u043e - -ClearGraph.name=\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0433\u0440\u0430\u0444 - -ClearGraph.dialog.text=\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0433\u0440\u0430\u0444?
    \u0412\u0441\u0435 \u0443\u0437\u043b\u044b \u0438 \u0440\u0451\u0431\u0440\u0430 \u0431\u0443\u0434\u0443\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u044b\!
    - -ClearEdges.name=\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0440\u0435\u0431\u0440\u0430 - -MergeNodeDuplicates.name=\u041f\u043e\u0438\u0441\u043a \u0438 \u0441\u043b\u0438\u044f\u043d\u0438\u0435 \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u043e\u0432 \u0443\u0437\u043b\u043e\u0432 - -MergeNodeDuplicates.description=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u0442 \u0438 \u0441\u043a\u043b\u0435\u0438\u0432\u0430\u0435\u0442 \u0443\u0437\u043b\u044b \u0441 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0449\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0435 - -SearchReplace.name=\u041f\u043e\u0438\u0441\u043a/\u0417\u0430\u043c\u0435\u043d\u0430 - -SearchReplace.window.close=\u0417\u0430\u043a\u0440\u044b\u0442\u044c - -ImportCSV.name=\u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0437 CSV - -ExportTable.name=\u042d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 +AddNodeToGraph.name=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0443\u0437\u0435\u043b +AddNodeToGraph.dialog.text=\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u0443\u0437\u043b\u0430 +AddEdgeToGraph.name=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0440\u0435\u0431\u0440\u043e + +ClearGraph.name=\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0433\u0440\u0430\u0444 +ClearGraph.dialog.text=\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0433\u0440\u0430\u0444?
    \u0412\u0441\u0435 \u0443\u0437\u043b\u044b \u0438 \u0440\u0451\u0431\u0440\u0430 \u0431\u0443\u0434\u0443\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u044b!
    +ClearEdges.name=\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0440\u0435\u0431\u0440\u0430 + +MergeNodeDuplicates.name=\u041f\u043e\u0438\u0441\u043a \u0438 \u0441\u043b\u0438\u044f\u043d\u0438\u0435 \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u043e\u0432 \u0443\u0437\u043b\u043e\u0432 +MergeNodeDuplicates.description=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u0442 \u0438 \u0441\u043a\u043b\u0435\u0438\u0432\u0430\u0435\u0442 \u0443\u0437\u043b\u044b \u0441 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0449\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0435 + +SearchReplace.name=\u041f\u043e\u0438\u0441\u043a/\u0417\u0430\u043c\u0435\u043d\u0430 +SearchReplace.window.close=\u0417\u0430\u043a\u0440\u044b\u0442\u044c +ImportCSV.name=\u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0437 CSV +ExportTable.name=\u042d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 + +# ManageColumnEstimators.name=Manage dynamic column estimators +# ManageColumnEstimators.description=Configure estimators of dynamic columns (TimestampMap or IntervalMap types) diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_th.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_th.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_th.properties @@ -0,0 +1 @@ + diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_tr.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_tr.properties new file mode 100644 index 0000000000..8e62dc8f2a --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_tr.properties @@ -0,0 +1,14 @@ +AddNodeToGraph.name=Add node +AddNodeToGraph.dialog.text=Label: +AddEdgeToGraph.name=Add edge +ClearGraph.name=Clear graph +ClearGraph.dialog.text=Confirm to clear the graph?
    All nodes and edges will be deleted.
    +ClearEdges.name=Clear edges +MergeNodeDuplicates.name=Detect and merge node duplicates +MergeNodeDuplicates.description=Automatically detects and merges node duplicates based on a column +SearchReplace.name=Search/Replace +SearchReplace.window.close=Kapat +ImportCSV.name=Import Spreadsheet +ExportTable.name=Export table +ManageColumnEstimators.name=Manage dynamic column estimators +ManageColumnEstimators.description=Configure estimators of dynamic columns (TimestampMap or IntervalMap types) diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_uk.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_uk.properties new file mode 100644 index 0000000000..ff8c504278 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_uk.properties @@ -0,0 +1,14 @@ +ClearGraph.dialog.text=\u041F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0438 \u043E\u0447\u0438\u0449\u0435\u043D\u043D\u044F \u0433\u0440\u0430\u0444\u0456\u043A\u0430?
    \u0423\u0441\u0456 \u0432\u0443\u0437\u043B\u0438 \u0442\u0430 \u0440\u0435\u0431\u0440\u0430 \u0431\u0443\u0434\u0435 \u0432\u0438\u0434\u0430\u043B\u0435\u043D\u043E.
    +SearchReplace.window.close=\u0417\u0430\u043A\u0440\u0438\u0442\u0438 +AddEdgeToGraph.name=\u0414\u043E\u0434\u0430\u0439\u0442\u0435 \u043A\u0440\u0430\u0439 +ClearGraph.name=\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u0438 \u0433\u0440\u0430\u0444\u0456\u043A +MergeNodeDuplicates.name=\u0412\u0438\u044F\u0432\u043B\u044F\u0442\u0438 \u0442\u0430 \u043E\u0431\u2019\u0454\u0434\u043D\u0443\u0432\u0430\u0442\u0438 \u0434\u0443\u0431\u043B\u0456\u043A\u0430\u0442\u0438 \u0432\u0443\u0437\u043B\u0456\u0432 +MergeNodeDuplicates.description=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u0432\u0438\u044F\u0432\u043B\u044F\u0454 \u0442\u0430 \u043E\u0431\u2019\u0454\u0434\u043D\u0443\u0454 \u0434\u0443\u0431\u043B\u0456\u043A\u0430\u0442\u0438 \u0432\u0443\u0437\u043B\u0456\u0432 \u043D\u0430 \u043E\u0441\u043D\u043E\u0432\u0456 \u0441\u0442\u043E\u0432\u043F\u0446\u044F +SearchReplace.name=\u041F\u043E\u0448\u0443\u043A/\u0417\u0430\u043C\u0456\u043D\u0430 +AddNodeToGraph.name=\u0414\u043E\u0434\u0430\u0442\u0438 \u0432\u0443\u0437\u043E\u043B +AddNodeToGraph.dialog.text=\u041C\u0456\u0442\u043A\u0430: +ClearEdges.name=\u0427\u0456\u0442\u043A\u0438\u0439 \u043A\u0440\u0430\u0439 +ImportCSV.name=\u0406\u043C\u043F\u043E\u0440\u0442 \u0435\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0457 \u0442\u0430\u0431\u043B\u0438\u0446\u0456 +ExportTable.name=\u0415\u043A\u0441\u043F\u043E\u0440\u0442 \u0442\u0430\u0431\u043B\u0438\u0446\u0456 +ManageColumnEstimators.name=\u041A\u0435\u0440\u0443\u0439\u0442\u0435 \u0434\u0438\u043D\u0430\u043C\u0456\u0447\u043D\u0438\u043C\u0438 \u043E\u0446\u0456\u043D\u044E\u0432\u0430\u0447\u0430\u043C\u0438 \u0441\u0442\u043E\u0432\u043F\u0446\u0456\u0432 +ManageColumnEstimators.description=\u041D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u0442\u0438 \u043E\u0446\u0456\u043D\u044E\u0432\u0430\u0447\u0456 \u0434\u0438\u043D\u0430\u043C\u0456\u0447\u043D\u0438\u0445 \u0441\u0442\u043E\u0432\u043F\u0446\u0456\u0432 (\u0442\u0438\u043F\u0438 TimestampMap \u0430\u0431\u043E IntervalMap) diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_zh_CN.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_zh_CN.properties index cd9df74ab6..c621d8d4b4 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_zh_CN.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_zh_CN.properties @@ -1,31 +1,18 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Xi-Nian Zuo , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-03-15 09\:22+0000\nLast-Translator\: Xi-Nian Zuo \nLanguage-Team\: Chinese (China) (http\://www.transifex.com/projects/p/gephi/language/zh_CN/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: zh_CN\nPlural-Forms\: nplurals\=1; plural\=0;\n - -AddNodeToGraph.name=\u6dfb\u52a0\u8282\u70b9 - -AddNodeToGraph.dialog.text=\u6807\u8bb0\uff1a - -AddEdgeToGraph.name=\u6dfb\u52a0\u8fb9 - -ClearGraph.name=\u5220\u9664\u56fe\u8868 - -ClearGraph.dialog.text=\u786e\u5b9a\u5220\u9664\u56fe\u8868\uff1f
    \u6240\u6709\u7684\u8282\u70b9\u548c\u8fb9\u5c06\u88ab\u5220\u9664\u3002
    - -ClearEdges.name=\u5220\u9664\u8fb9 - -MergeNodeDuplicates.name=\u68c0\u6d4b\u5e76\u5408\u5e76\u91cd\u590d\u8282\u70b9 - -MergeNodeDuplicates.description=\u81ea\u52a8\u68c0\u6d4b\u5e76\u5408\u5e76\u5217\u5185\u91cd\u590d\u8282\u70b9 - -SearchReplace.name=\u641c\u7d22/\u66ff\u6362 - -SearchReplace.window.close=\u5173\u95ed - -ImportCSV.name=\u8f93\u5165\u7535\u5b50\u8868\u683c - -ExportTable.name=\u8f93\u51fa\u8868\u683c +AddNodeToGraph.name=\u6dfb\u52a0\u8282\u70b9 +AddNodeToGraph.dialog.text=\u6807\u8bb0\uff1a +AddEdgeToGraph.name=\u6dfb\u52a0\u8fb9 + +ClearGraph.name=\u5220\u9664\u56fe\u8868 +ClearGraph.dialog.text=\u786e\u5b9a\u5220\u9664\u56fe\u8868\uff1f
    \u6240\u6709\u7684\u8282\u70b9\u548c\u8fb9\u5c06\u88ab\u5220\u9664\u3002
    +ClearEdges.name=\u5220\u9664\u8fb9 + +MergeNodeDuplicates.name=\u68c0\u6d4b\u5e76\u5408\u5e76\u91cd\u590d\u8282\u70b9 +MergeNodeDuplicates.description=\u81ea\u52a8\u68c0\u6d4b\u5e76\u5408\u5e76\u5217\u5185\u91cd\u590d\u8282\u70b9 + +SearchReplace.name=\u641c\u7d22/\u66ff\u6362 +SearchReplace.window.close=\u5173\u95ed +ImportCSV.name=\u8f93\u5165\u7535\u5b50\u8868\u683c +ExportTable.name=\u8f93\u51fa\u8868\u683c + +ManageColumnEstimators.name=\u7ba1\u7406\u52a8\u6001\u5217\u4f30\u7b97 +ManageColumnEstimators.description=\u914d\u7f6e\u52a8\u6001\u5217\u7684\u4f30\u8ba1\uff08\u65f6\u95f4\u6233\u5730\u56fe\u6216\u533a\u95f4\u6620\u5c04\u7c7b\u578b\uff09 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_zh_TW.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_zh_TW.properties new file mode 100644 index 0000000000..eaba6afebc --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/Bundle_zh_TW.properties @@ -0,0 +1,14 @@ +AddNodeToGraph.name=Add node +AddNodeToGraph.dialog.text=Label: +AddEdgeToGraph.name=Add edge +ClearGraph.name=Clear graph +ClearGraph.dialog.text=Confirm to clear the graph?
    All nodes and edges will be deleted.
    +ClearEdges.name=Clear edges +MergeNodeDuplicates.name=Detect and merge node duplicates +MergeNodeDuplicates.description=Automatically detects and merges node duplicates based on a column +SearchReplace.name=Search/Replace +SearchReplace.window.close=Close +ImportCSV.name=Import Spreadsheet +ExportTable.name=Export table +ManageColumnEstimators.name=Manage dynamic column estimators +ManageColumnEstimators.description=Configure estimators of dynamic columns (TimestampMap or IntervalMap types) diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/cs.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/cs.po deleted file mode 100644 index 00fd99d35f..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/cs.po +++ /dev/null @@ -1,55 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# ZbynΔ›k Schwarz , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-02-27 14:22+0000\n" -"Last-Translator: ZbynΔ›k Schwarz \n" -"Language-Team: Czech (http://www.transifex.com/projects/p/gephi/language/cs/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: cs\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" - -msgid "AddNodeToGraph.name" -msgstr "PΕ™idat uzel" - -msgid "AddNodeToGraph.dialog.text" -msgstr "Ε tΓ­tek:" - -msgid "AddEdgeToGraph.name" -msgstr "PΕ™idat hranu" - -msgid "ClearGraph.name" -msgstr "Vyčistit graf" - -msgid "ClearGraph.dialog.text" -msgstr "Potvrdit vyčiΕ‘tΔ›nΓ­ grafu?
    VΕ‘echny uzle a hrany budou smazΓ‘ny.
    " - -msgid "ClearEdges.name" -msgstr "Vyčistit hrany" - -msgid "MergeNodeDuplicates.name" -msgstr "Zjistit a sloučit kopie uzlu" - -msgid "MergeNodeDuplicates.description" -msgstr "Automaticky zjistΓ­ a sloučí kopie uzlu na zΓ‘kladΔ› sloupce" - -msgid "SearchReplace.name" -msgstr "Hledat/Nahradit" - -msgid "SearchReplace.window.close" -msgstr "ZavΕ™Γ­t" - -msgid "ImportCSV.name" -msgstr "Importovat tabulky" - -msgid "ExportTable.name" -msgstr "Exportovat tabulky" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/es.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/es.po deleted file mode 100644 index 9a0c2796c4..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/es.po +++ /dev/null @@ -1,56 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Eduardo Ramos , 2012. -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-16 23:07+0000\n" -"Last-Translator: Eduardo Ramos \n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/gephi/language/es/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -msgid "AddNodeToGraph.name" -msgstr "AΓ±adir nodo" - -msgid "AddNodeToGraph.dialog.text" -msgstr "Etiqueta:" - -msgid "AddEdgeToGraph.name" -msgstr "AΓ±adir arista" - -msgid "ClearGraph.name" -msgstr "Vaciar grafo" - -msgid "ClearGraph.dialog.text" -msgstr "ΒΏConfirmar vaciar el grafo?
    Todos los nodos y aristas serΓ‘n eliminados
    " - -msgid "ClearEdges.name" -msgstr "Eliminar aristas" - -msgid "MergeNodeDuplicates.name" -msgstr "Detectar y mezclar duplicados" - -msgid "MergeNodeDuplicates.description" -msgstr "AutomΓ‘ticamente detecta y mezcla nodos duplicados a partir de una columna" - -msgid "SearchReplace.name" -msgstr "Buscar/Reemplazar" - -msgid "SearchReplace.window.close" -msgstr "Cerrar" - -msgid "ImportCSV.name" -msgstr "Importar hoja de cΓ‘lculo" - -msgid "ExportTable.name" -msgstr "Exportar tabla" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/fr.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/fr.po deleted file mode 100644 index 3bd4a4901b..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/fr.po +++ /dev/null @@ -1,56 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -# , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-03-08 15:13+0000\n" -"Last-Translator: gephi \n" -"Language-Team: French (http://www.transifex.com/projects/p/gephi/language/fr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "AddNodeToGraph.name" -msgstr "CrΓ©er un noeud" - -msgid "AddNodeToGraph.dialog.text" -msgstr "Label :" - -msgid "AddEdgeToGraph.name" -msgstr "CrΓ©er un lien" - -msgid "ClearGraph.name" -msgstr "Effacer le graphe" - -msgid "ClearGraph.dialog.text" -msgstr "Confirmer l'effacement du graphe ?
    Tous les noeuds et liens seront supprimΓ©s.
    " - -msgid "ClearEdges.name" -msgstr "Effacer les liens" - -msgid "MergeNodeDuplicates.name" -msgstr "DΓ©tecte et fusionne les noeuds en double" - -msgid "MergeNodeDuplicates.description" -msgstr "DΓ©tecte et fusionne automatiquement les noeuds en double selon une colonne." - -msgid "SearchReplace.name" -msgstr "Chercher/Remplacer" - -msgid "SearchReplace.window.close" -msgstr "Fermer" - -msgid "ImportCSV.name" -msgstr "Importer feuille de calcul" - -msgid "ExportTable.name" -msgstr "Exporter la table" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ja.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ja.po deleted file mode 100644 index 5210b21075..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ja.po +++ /dev/null @@ -1,55 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011, 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-15 08:07+0000\n" -"Last-Translator: Siro Kida \n" -"Language-Team: Japanese (http://www.transifex.com/projects/p/gephi/language/ja/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ja\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "AddNodeToGraph.name" -msgstr "γƒŽγƒΌγƒ‰γθΏ½εŠ " - -msgid "AddNodeToGraph.dialog.text" -msgstr "ラベル:" - -msgid "AddEdgeToGraph.name" -msgstr "θΎΊγθΏ½εŠ " - -msgid "ClearGraph.name" -msgstr "グラフをクγƒͺγ‚’" - -msgid "ClearGraph.dialog.text" -msgstr " ζœ¬ε½“γ«γ‚°γƒ©γƒ•γ‚’ζΆˆεŽ»γ—γΎγ™γ‹οΌŸ
    すべてγγƒŽγƒΌγƒ‰γ¨θΎΊγ―ε‰Šι™€γ•γ‚ŒγΎγ™γ€‚
    " - -msgid "ClearEdges.name" -msgstr "θΎΊγ‚’γ‚―γƒͺγ‚’" - -msgid "MergeNodeDuplicates.name" -msgstr "ι ‚η‚Ήγι‡θ€‡γ‚’ζ€œηŸ₯γ€δ½΅εˆγ™γ‚‹" - -msgid "MergeNodeDuplicates.description" -msgstr "γ‚γ‚‹θ‘Œγ«γŠγ‘γ‚‹ι ‚η‚Ήγι‡θ€‡γθ‡ͺε‹•ηš„γͺζ€œε‡Ίγ¨δ½΅εˆ" - -msgid "SearchReplace.name" -msgstr "怜紒/η½ζ›" - -msgid "SearchReplace.window.close" -msgstr "ι–‰γ˜γ‚‹" - -msgid "ImportCSV.name" -msgstr "γ‚Ήγƒ—γƒ¬γƒƒγƒ‰γ‚·γƒΌγƒˆγγ‚€γƒ³γƒγƒΌγƒˆ" - -msgid "ExportTable.name" -msgstr "テーブルγγ‚¨γ‚―γ‚ΉγƒγƒΌγƒˆ" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/org-gephi-datalab-plugin-manipulators-general.pot b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/org-gephi-datalab-plugin-manipulators-general.pot deleted file mode 100644 index 15b638b5a0..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/org-gephi-datalab-plugin-manipulators-general.pot +++ /dev/null @@ -1,54 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# Gephi Team , 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: Gephi 0.8\n" -"Report-Msgid-Bugs-To: gephi.team@lists.launchpad.net\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-05 14:52+0200\n" -"Last-Translator: Mathieu Bastian \n" -"Language-Team: English \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "AddNodeToGraph.name" -msgstr "Add node" - -msgid "AddNodeToGraph.dialog.text" -msgstr "Label:" - -msgid "AddEdgeToGraph.name" -msgstr "Add edge" - -msgid "ClearGraph.name" -msgstr "Clear graph" - -msgid "ClearGraph.dialog.text" -msgstr "" -"Confirm to clear the graph?
    All nodes and edges will be deleted." -"
    " - -msgid "ClearEdges.name" -msgstr "Clear edges" - -msgid "MergeNodeDuplicates.name" -msgstr "Detect and merge node duplicates" - -msgid "MergeNodeDuplicates.description" -msgstr "Automatically detects and merges node duplicates based on a column" - -msgid "SearchReplace.name" -msgstr "Search/Replace" - -msgid "SearchReplace.window.close" -msgstr "Close" - -msgid "ImportCSV.name" -msgstr "Import Spreadsheet" - -msgid "ExportTable.name" -msgstr "Export table" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/pt_BR.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/pt_BR.po deleted file mode 100644 index eeacb7f569..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/pt_BR.po +++ /dev/null @@ -1,56 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# CΓ©lio CJr , 2011. -# CΓ©lio Faria Jr. , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-17 12:36+0000\n" -"Last-Translator: CΓ©lio Faria Jr. \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/gephi/language/pt_BR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "AddNodeToGraph.name" -msgstr "Adicionar nΓ³" - -msgid "AddNodeToGraph.dialog.text" -msgstr "RΓ³tulo:" - -msgid "AddEdgeToGraph.name" -msgstr "Adicionar aresta" - -msgid "ClearGraph.name" -msgstr "Limpar grafo" - -msgid "ClearGraph.dialog.text" -msgstr "Deseja realmente limpar o grafo?
    Todos os nΓ³s e arestas serΓ£o apagados.
    " - -msgid "ClearEdges.name" -msgstr "Limpar arestas" - -msgid "MergeNodeDuplicates.name" -msgstr "Detectar e mesclar nΓ³s duplicados" - -msgid "MergeNodeDuplicates.description" -msgstr "Detectar e mesclar nΓ³s duplicados automaticamente com base nos dados de uma coluna" - -msgid "SearchReplace.name" -msgstr "Procurar/Substituir" - -msgid "SearchReplace.window.close" -msgstr "Fechar" - -msgid "ImportCSV.name" -msgstr "Importar planilha" - -msgid "ExportTable.name" -msgstr "Exportar tabela" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ru.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ru.po deleted file mode 100644 index 0864ac1ede..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ru.po +++ /dev/null @@ -1,56 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# , 2012. -# FIRST AUTHOR , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-15 08:33+0000\n" -"Last-Translator: Altsoph \n" -"Language-Team: Russian (http://www.transifex.com/projects/p/gephi/language/ru/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -msgid "AddNodeToGraph.name" -msgstr "Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡƒΠ·Π΅Π»" - -msgid "AddNodeToGraph.dialog.text" -msgstr "Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡƒΠ·Π»Π°" - -msgid "AddEdgeToGraph.name" -msgstr "Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ€Π΅Π±Ρ€ΠΎ" - -msgid "ClearGraph.name" -msgstr "ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π³Ρ€Π°Ρ„" - -msgid "ClearGraph.dialog.text" -msgstr "Π’Ρ‹ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π³Ρ€Π°Ρ„?
    ВсС ΡƒΠ·Π»Ρ‹ ΠΈ Ρ€Ρ‘Π±Ρ€Π° Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹!
    " - -msgid "ClearEdges.name" -msgstr "ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Ρ€Π΅Π±Ρ€Π°" - -msgid "MergeNodeDuplicates.name" -msgstr "Поиск ΠΈ слияниС Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ² ΡƒΠ·Π»ΠΎΠ²" - -msgid "MergeNodeDuplicates.description" -msgstr "АвтоматичСски Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈ склСиваСт ΡƒΠ·Π»Ρ‹ с ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΌΠΈ значСниями Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅" - -msgid "SearchReplace.name" -msgstr "Поиск/Π—Π°ΠΌΠ΅Π½Π°" - -msgid "SearchReplace.window.close" -msgstr "Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ" - -msgid "ImportCSV.name" -msgstr "Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ· CSV" - -msgid "ExportTable.name" -msgstr "Π­ΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle.properties index dfb48260f5..7d3950a8e6 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle.properties @@ -6,6 +6,7 @@ AddEdgeToGraphUI.directedRadioButton.text=Directed AddEdgeToGraphUI.undirectedRadioButton.text=Undirected AddEdgeToGraphUI.sourceNodeLabel.text=Source node: AddEdgeToGraphUI.targetNodeLabel.text=Target node: +AddEdgeToGraphUI.edgeTypeLabel.text=Edge Kind: SearchReplaceUI.searchLabel.text=Search: SearchReplaceUI.replaceLabel.text=Replace with: SearchReplaceUI.matchWholeValueCheckBox.text=Only match whole value @@ -28,41 +29,20 @@ SearchReplaceUI.replacements.count.message={0} ocurrences were replaced SearchReplaceUI.column=Column: ''{0}'' SearchReplaceUI.allColumns=--All columns-- -ImportCSVUIWizardAction.name=Import spreadsheet -ImportCSVUIVisualPanel1.name=General options -ImportCSVUIVisualPanel1.comma=Comma -ImportCSVUIVisualPanel1.semicolon=Semicolon -ImportCSVUIVisualPanel1.space=Space -ImportCSVUIVisualPanel1.tab=Tab -ImportCSVUIVisualPanel1.nodes-table=Nodes table -ImportCSVUIVisualPanel1.edges-table=Edges table -ImportCSVUIVisualPanel1.filechooser.csvDescription=CSV -ImportCSVUIVisualPanel1.tableLabel.text=As table: -ImportCSVUIVisualPanel1.pathTextField.text= -ImportCSVUIVisualPanel1.fileButton.text=... -ImportCSVUIVisualPanel1.separatorLabel.text=Separator: -ImportCSVUIVisualPanel1.descriptionLabel.text=Choose a CSV file to import: -ImportCSVUIVisualPanel1.previewLabel.text=Preview: -ImportCSVUIVisualPanel1.charsetLabel.text=Charset: -ImportCSVUIVisualPanel1.validation.invalid-file:Invalid CSV file -ImportCSVUIVisualPanel1.validation.no-columns:The file does not have any column -ImportCSVUIVisualPanel1.validation.repeated-columns:The file can't have repeated column names -ImportCSVUIVisualPanel1.validation.error=Error -ImportCSVUIVisualPanel1.validation.file-permissions-error=An error happened when reading the file. Make sure the file is not in use and you have permissions. -ImportCSVUIVisualPanel1.validation.edges.no-source-target-columns=Edges table needs a 'Source' and 'Target' column with nodes ids. -ImportCSVUIVisualPanel2.name=Import settings -ImportCSVUIVisualPanel2.columnsLabel.text=Imported columns: -ImportCSVUIVisualPanel2.nodes.description=New columns are created with the specified type.
    A generated id is assigned if missing.
    Unless the option 'Force nodes to be created as new ones' is enabled, already existing nodes will be updated. -ImportCSVUIVisualPanel2.nodes.assign-ids-checkbox=Force nodes to be created as new ones -ImportCSVUIVisualPanel2.edges.description=New columns are created with the specified type.
    A generated id is assigned if missing or existing.
    Edges need 'Source' and 'Target' columns with the id of the source and target nodes. If any is not provided for a row, it will be ignored.
    If no 'Type' column is provided, all edges will be directed.
    If an edge already exists, attributes will be ignored, but their weights will be added (weight=1 if not specified) -ImportCSVUIVisualPanel2.edges.create-new-nodes-checkbox=Create missing nodes SearchReplaceUI.regexReplaceCheckBox.text=Regular expression replacement SearchReplaceUI.columnsToSearchLabel.text=Columns to search/replace: -MergeNodeDuplicatesUI.description=Node duplicates are automatically detected and merged based on a column.
    For each group of node duplicates, one new node with the same color, size and position of the first node in the group is created.
    Edges are assigned to the new node.
    Each column uses the given strategy to reduce the rows values to one value.
    Hierarchy is ignored. +MergeNodeDuplicatesUI.description=Node duplicates are automatically detected and merged based on a column.
    For each group of node duplicates, one new node with the same color, size and position of the first node in the group is created.
    Edges are assigned to the new node.
    Each column uses the given strategy to reduce the rows values to one value. MergeNodeDuplicatesUI.noDuplicatesText=No duplicates found! MergeNodeDuplicatesUI.duplicateGroupsNumber={0} duplicates found! MergeNodeDuplicatesUI.deleteMergedNodesText=Delete merged nodes MergeNodeDuplicatesUI.configurationText=Configure MergeNodeDuplicatesUI.caseSensitiveText=Case sensitive MergeNodeDuplicatesUI.baseColumnText=Base column to detect duplicates: + +ManageColumnEstimatorsUI.estimator.AVERAGE=Average +ManageColumnEstimatorsUI.estimator.MEDIAN=Median +ManageColumnEstimatorsUI.estimator.MIN=Min +ManageColumnEstimatorsUI.estimator.MAX=Max +ManageColumnEstimatorsUI.estimator.FIRST=First +ManageColumnEstimatorsUI.estimator.LAST=Last \ No newline at end of file diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_ar.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_ar.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_ar.properties @@ -0,0 +1 @@ + diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_ca.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_ca.properties new file mode 100644 index 0000000000..b684987a6f --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_ca.properties @@ -0,0 +1,45 @@ +ClearEdgesUI.deleteDirectedCheckbox.text=Delete directed edges +ClearEdgesUI.descriptionLabel.text=Edge types to delete: +ClearEdgesUI.deleteUndirectedChekbox.text=Delete undirected edges +AddEdgeToGraphUI.descriptionLabel.text=Select the new edge type, source and target nodes: +AddEdgeToGraphUI.directedRadioButton.text=Dirigit +AddEdgeToGraphUI.undirectedRadioButton.text=No dirigit +AddEdgeToGraphUI.sourceNodeLabel.text=Source node: +AddEdgeToGraphUI.targetNodeLabel.text=Target node: +AddEdgeToGraphUI.edgeTypeLabel.text=Edge Kind: +SearchReplaceUI.searchLabel.text=Cerca: +SearchReplaceUI.replaceLabel.text=Reemplaηa amb: +SearchReplaceUI.matchWholeValueCheckBox.text=Only match whole value +SearchReplaceUI.caseSensitiveCheckBox.text=Case sensitive +SearchReplaceUI.normalSearchModeRadioButton.text=Normal search +SearchReplaceUI.regexSearchModeRadioButton.text=Regular expression search +SearchReplaceUI.findNextButton.text=Troba el segόent +SearchReplaceUI.replaceButton.text=Reemplaηa +SearchReplaceUI.replaceAllButton.text=Reemplaηa-les totes +SearchReplaceUI.descriptionLabel.text.nodes=Cerca a la taula dels nodes +SearchReplaceUI.descriptionLabel.text.edges=Searching on edges table +SearchReplaceUI.searchText.text= +SearchReplaceUI.replaceText.text= +SearchReplaceUI.resultLabel.text=Search match result: +SearchReplaceUI.resultText.contentType=text/html +SearchReplaceUI.not.found=No s'ha pogut trobar "{0}" +SearchReplaceUI.regexReplacementError=The replacement string is not correct for the regular expression +SearchReplaceUI.dialog.title.error=Error +SearchReplaceUI.replacements.count.message=S'han reemplaηat {0} ocurrθncies +SearchReplaceUI.column=Columna: "{0}" +SearchReplaceUI.allColumns=--Totes les columnes-- +SearchReplaceUI.regexReplaceCheckBox.text=Regular expression replacement +SearchReplaceUI.columnsToSearchLabel.text=Columnes on cerca/reemplaηar +MergeNodeDuplicatesUI.description=Node duplicates are automatically detected and merged based on a column.
    For each group of node duplicates, one new node with the same color, size and position of the first node in the group is created.
    Edges are assigned to the new node.
    Each column uses the given strategy to reduce the rows values to one value. +MergeNodeDuplicatesUI.noDuplicatesText=No duplicates found! +MergeNodeDuplicatesUI.duplicateGroupsNumber={0} duplicates found! +MergeNodeDuplicatesUI.deleteMergedNodesText=Delete merged nodes +MergeNodeDuplicatesUI.configurationText=Configura +MergeNodeDuplicatesUI.caseSensitiveText=Case sensitive +MergeNodeDuplicatesUI.baseColumnText=Base column to detect duplicates: +ManageColumnEstimatorsUI.estimator.AVERAGE=Mitjana +ManageColumnEstimatorsUI.estimator.MEDIAN=Mediana +ManageColumnEstimatorsUI.estimator.MIN=Mνnim +ManageColumnEstimatorsUI.estimator.MAX=Mΰxim +ManageColumnEstimatorsUI.estimator.FIRST=Primer: +ManageColumnEstimatorsUI.estimator.LAST=Ϊltim diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_cs.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_cs.properties index f8c3979de6..d74f862442 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_cs.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_cs.properties @@ -1,133 +1,48 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Zbyn\u011bk Schwarz , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-02-27 15\:36+0000\nLast-Translator\: Zbyn\u011bk Schwarz \nLanguage-Team\: Czech (http\://www.transifex.com/projects/p/gephi/language/cs/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: cs\nPlural-Forms\: nplurals\=3; plural\=(n\=\=1) ? 0 \: (n>\=2 && n<\=4) ? 1 \: 2;\n - -ClearEdgesUI.deleteDirectedCheckbox.text=Smazat \u0159\u00edzen\u00e9 hrany - -ClearEdgesUI.descriptionLabel.text=Typy hran ke smaz\u00e1n\u00ed\: - -ClearEdgesUI.deleteUndirectedChekbox.text=Smazat ne\u0159\u00edzen\u00e9 hrany - -AddEdgeToGraphUI.descriptionLabel.text=Vyberte nov\u00fd typ hrany, zdrojov\u00e9 a c\u00edlov\u00e9 uzle\: - -AddEdgeToGraphUI.directedRadioButton.text=\u0158\u00edzen\u00e9 - -AddEdgeToGraphUI.undirectedRadioButton.text=Ne\u0159\u00edzen\u00e9 - -AddEdgeToGraphUI.sourceNodeLabel.text=Zdrojov\u00fd uzel\: - -AddEdgeToGraphUI.targetNodeLabel.text=C\u00edlov\u00fd uzel\: - -SearchReplaceUI.searchLabel.text=Hledat\: - -SearchReplaceUI.replaceLabel.text=Nahradit \u010d\u00edm\: - -SearchReplaceUI.matchWholeValueCheckBox.text=Pouze shodovat celou hodnotu - -SearchReplaceUI.caseSensitiveCheckBox.text=Citliv\u00e9 na velikost ps\u00edmen - -SearchReplaceUI.normalSearchModeRadioButton.text=Norm\u00e1ln\u00ed hled\u00e1n\u00ed - -SearchReplaceUI.regexSearchModeRadioButton.text=Hled\u00e1n\u00ed regul\u00e1rn\u00edm v\u00fdrazem - -SearchReplaceUI.findNextButton.text=Naj\u00edt dal\u0161\u00ed - -SearchReplaceUI.replaceButton.text=Nahradit - -SearchReplaceUI.replaceAllButton.text=Nahradit v\u0161e - -SearchReplaceUI.descriptionLabel.text.nodes=Hledat v tabulce uzl\u016f - -SearchReplaceUI.descriptionLabel.text.edges=Hledat v tabulce hran - -SearchReplaceUI.resultLabel.text=V\u00fdsledky shody hled\u00e1n\u00ed\: - -SearchReplaceUI.resultText.contentType=text/html - -SearchReplaceUI.not.found=Nelze nal\u00e9zt "{0}" - -SearchReplaceUI.regexReplacementError=\u0158et\u011bzec nahrazen\u00ed nen\u00ed pro regul\u00e1rn\u00ed v\u00fdraz spr\u00e1vn\u00fd - -SearchReplaceUI.dialog.title.error=Chyba - -SearchReplaceUI.replacements.count.message={0} v\u00fdskyt\u016f bylo nahrazeno - -SearchReplaceUI.column=Sloupec\: ''{0}'' - -SearchReplaceUI.allColumns=--V\u0161echny sloupce-- - -ImportCSVUIWizardAction.name=Importovat tabulky - -ImportCSVUIVisualPanel1.name=Obecn\u00e9 mo\u017enosti - -ImportCSVUIVisualPanel1.comma=\u010c\u00e1rka - -ImportCSVUIVisualPanel1.semicolon=St\u0159edn\u00edk - -ImportCSVUIVisualPanel1.space=Mezera - -ImportCSVUIVisualPanel1.tab=Tabul\u00e1tor - -ImportCSVUIVisualPanel1.nodes-table=Tabulka uzl\u016f - -ImportCSVUIVisualPanel1.edges-table=Tabulka hran - -ImportCSVUIVisualPanel1.filechooser.csvDescription=CSV - -ImportCSVUIVisualPanel1.tableLabel.text=Jako tabulka\: - -ImportCSVUIVisualPanel1.fileButton.text=... - -ImportCSVUIVisualPanel1.separatorLabel.text=Odd\u011blova\u010d\: - -ImportCSVUIVisualPanel1.descriptionLabel.text=Zvolte soubor CSV k importu\: - -ImportCSVUIVisualPanel1.previewLabel.text=N\u00e1hled\: - -ImportCSVUIVisualPanel1.charsetLabel.text=Znakov\u00e1 sada\: - -ImportCSVUIVisualPanel1.validation.invalid-file=Neplatn\u00fd soubor CSV - -ImportCSVUIVisualPanel1.validation.no-columns=Soubor nem\u00e1 \u017e\u00e1ndn\u00fd sloupec - -ImportCSVUIVisualPanel1.validation.repeated-columns=Soubor nem\u016f\u017ee m\u00edt opakovan\u00e9 n\u00e1zvy sloupc\u016f - -ImportCSVUIVisualPanel1.validation.error=Chyba - -ImportCSVUIVisualPanel1.validation.file-permissions-error=P\u0159i \u010dten\u00ed souboru do\u0161lo k chyb\u011b. Ujist\u011bte se, \u017ee soubor nen\u00ed pou\u017e\u00edv\u00e1n a \u017ee m\u00e1te opr\u00e1vn\u011bn\u00ed. - -ImportCSVUIVisualPanel1.validation.edges.no-source-target-columns=Tabulka hran pot\u0159ebuje sloupce 'Source' a 'Target' s id uzl\u016f. - -ImportCSVUIVisualPanel2.name=Importovat nastaven\u00ed - -ImportCSVUIVisualPanel2.columnsLabel.text=Importovan\u00e9 sloupce\: - -ImportCSVUIVisualPanel2.nodes.description=Nov\u00e9 sloupce jsou vytvo\u0159eny pomoc\u00ed ur\u010den\u00e9ho typu.
    Vytvo\u0159en\u00e9 id je p\u0159id\u011bleno, pokud chyb\u00ed.
    Pokud mo\u017enost 'Donutit uzly, aby byly vytv\u00e1\u0159eny jako nov\u00e9' nen\u00ed povolena, ji\u017e existuj\u00edc\u00ed uzle budou aktualizov\u00e1ny. - -ImportCSVUIVisualPanel2.nodes.assign-ids-checkbox=Donutit uzly, aby byly vytv\u00e1\u0159eny jako nov\u00e9 - -ImportCSVUIVisualPanel2.edges.description=Nov\u00e9 sloupce jsou vytvo\u0159eny pomoc\u00ed ur\u010den\u00e9ho typu.
    Vytvo\u0159en\u00e9 id je p\u0159id\u011bleno, pokud chyb\u00ed nebo i kdy\u017e existuje.
    Hrany pot\u0159ebuj\u00ed sloupce 'Source' a 'Target' s id zdrojov\u00e9ho a c\u00edlov\u00e9ho uzlu. Pokud kter\u00fdkoliv nen\u00ed pro \u0159\u00e1dek poskytnut, bude ignorov\u00e1n.
    Pokud nen\u00ed poskytnut \u017e\u00e1dn\u00fd sloupec 'Type', v\u0161echny hrany budou \u0159\u00edzen\u00e9.
    Pokud hrana ji\u017e existuje, budou vlastnosti ignorov\u00e1ny, ale jejich v\u00e1hy budou p\u0159id\u00e1ny (pokud nen\u00ed ur\u010deno, pak v\u00e1ha je 1) - -ImportCSVUIVisualPanel2.edges.create-new-nodes-checkbox=Vytvo\u0159it chyb\u011bj\u00edc\u00ed uzle - -SearchReplaceUI.regexReplaceCheckBox.text=Nahrazen\u00ed regul\u00e1rn\u00edm v\u00fdrazem - -SearchReplaceUI.columnsToSearchLabel.text=Sloupce k hled\u00e1n\u00ed/nahrazen\u00ed - -MergeNodeDuplicatesUI.description=Kopie uzl\u016f jsou automaticky zji\u0161t\u011bny a slou\u010deny na z\u00e1klad\u011b sloupce.
    Za ka\u017edou skupinu kopi\u00ed uzl\u016f, bude vytvo\u0159en jeden se stejnou barvou, velikost\u00ed a um\u00edst\u011bn\u00edm jako prvn\u00ed uzel ve stejn\u00e9 skupin\u011b.
    Hrany jsou p\u0159id\u011bleny k nov\u00e9mu uzlu.
    Ka\u017ed\u00fd sloupce pou\u017e\u00edv\u00e1 danou strategii ke sn\u00ed\u017een\u00ed hodnot \u0159\u00e1dk\u016f na jednu.
    Hierarchie je ignorov\u00e1na. - -MergeNodeDuplicatesUI.noDuplicatesText=\u017d\u00e1dn\u00e9 kopie nenalezeny\! - -MergeNodeDuplicatesUI.duplicateGroupsNumber=Nalezeno {0} kopi\u00ed\! - -MergeNodeDuplicatesUI.deleteMergedNodesText=Smazat slou\u010den\u00e9 uzle - -MergeNodeDuplicatesUI.configurationText=Nastavit - -MergeNodeDuplicatesUI.caseSensitiveText=Citliv\u00e9 na velikost p\u00edsmen - -MergeNodeDuplicatesUI.baseColumnText=Z\u00e1kladn\u00ed sloupec pro zji\u0161\u0165ov\u00e1n\u00ed kopi\u00ed\: +ClearEdgesUI.deleteDirectedCheckbox.text=Smazat \u0159νzenι hrany +ClearEdgesUI.descriptionLabel.text=Typy hran ke smazαnν: +ClearEdgesUI.deleteUndirectedChekbox.text=Smazat ne\u0159νzenι hrany +AddEdgeToGraphUI.descriptionLabel.text=Vyberte novύ typ hrany, zdrojovι a cνlovι uzle: +AddEdgeToGraphUI.directedRadioButton.text=\u0158νzenι +AddEdgeToGraphUI.undirectedRadioButton.text=Ne\u0159νzenι +AddEdgeToGraphUI.sourceNodeLabel.text=Zdrojovύ uzel: +AddEdgeToGraphUI.targetNodeLabel.text=Cνlovύ uzel: +AddEdgeToGraphUI.edgeTypeLabel.text=Druh hrany: +SearchReplaceUI.searchLabel.text=Hledat: +SearchReplaceUI.replaceLabel.text=Nahradit \u010dνm: +SearchReplaceUI.matchWholeValueCheckBox.text=Pouze shodovat celou hodnotu +SearchReplaceUI.caseSensitiveCheckBox.text=Citlivι na velikost psνmen +SearchReplaceUI.normalSearchModeRadioButton.text=Normαlnν hledαnν +SearchReplaceUI.regexSearchModeRadioButton.text=Hledαnν regulαrnνm vύrazem +SearchReplaceUI.findNextButton.text=Najνt dal\u0161ν +SearchReplaceUI.replaceButton.text=Nahradit +SearchReplaceUI.replaceAllButton.text=Nahradit v\u0161e +SearchReplaceUI.descriptionLabel.text.nodes=Hledat v tabulce uzl\u016f +SearchReplaceUI.descriptionLabel.text.edges=Hledat v tabulce hran +SearchReplaceUI.searchText.text= +SearchReplaceUI.replaceText.text= +SearchReplaceUI.resultLabel.text=Vύsledky shody hledαnν: +SearchReplaceUI.resultText.contentType=text/html +SearchReplaceUI.not.found=Nelze nalιzt "{0}" +SearchReplaceUI.regexReplacementError=\u0158et\u011bzec nahrazenν nenν pro regulαrnν vύraz sprαvnύ +SearchReplaceUI.dialog.title.error=Chyba +SearchReplaceUI.replacements.count.message={0} vύskyt\u016f bylo nahrazeno +SearchReplaceUI.column=Sloupec: ''{0}'' +SearchReplaceUI.allColumns=--V\u0161echny sloupce-- + +SearchReplaceUI.regexReplaceCheckBox.text=Nahrazenν regulαrnνm vύrazem +SearchReplaceUI.columnsToSearchLabel.text=Sloupce k hledαnν/nahrazenν + +MergeNodeDuplicatesUI.description=Kopie uzl\u016f jsou automaticky zji\u0161t\u011bny a slou\u010deny na zαklad\u011b sloupce.
    Za ka\u017edou skupinu kopiν uzl\u016f, bude vytvo\u0159en jeden se stejnou barvou, velikostν a umνst\u011bnνm jako prvnν uzel ve stejnι skupin\u011b.
    Hrany jsou p\u0159id\u011bleny k novιmu uzlu.
    Ka\u017edύ sloupce pou\u017eνvα danou strategii ke snν\u017eenν hodnot \u0159αdk\u016f na jednu.
    Hierarchie je ignorovαna. +MergeNodeDuplicatesUI.noDuplicatesText=\u017dαdnι kopie nenalezeny! +MergeNodeDuplicatesUI.duplicateGroupsNumber=Nalezeno {0} kopiν! +MergeNodeDuplicatesUI.deleteMergedNodesText=Smazat slou\u010denι uzle +MergeNodeDuplicatesUI.configurationText=Nastavit +MergeNodeDuplicatesUI.caseSensitiveText=Citlivι na velikost pνsmen +MergeNodeDuplicatesUI.baseColumnText=Zαkladnν sloupec pro zji\u0161\u0165ovαnν kopiν: + +ManageColumnEstimatorsUI.estimator.AVERAGE=Pr\u016fm\u011br +ManageColumnEstimatorsUI.estimator.MEDIAN=Mediαn +ManageColumnEstimatorsUI.estimator.MIN=Minimum +ManageColumnEstimatorsUI.estimator.MAX=Maximum +ManageColumnEstimatorsUI.estimator.FIRST=Prvnν +ManageColumnEstimatorsUI.estimator.LAST=Poslednν diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_de.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_de.properties new file mode 100644 index 0000000000..ea8e545944 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_de.properties @@ -0,0 +1,48 @@ +ClearEdgesUI.deleteDirectedCheckbox.text=Gerichtete Kanten lφschen +ClearEdgesUI.descriptionLabel.text=Zu lφschende Kanten-Typen: +ClearEdgesUI.deleteUndirectedChekbox.text=Ungerichtete Kanten lφschen +AddEdgeToGraphUI.descriptionLabel.text=Wδhlen Sie den neuen Kanten-Typ, sowie Quell- und Ziel-Knoten: +AddEdgeToGraphUI.directedRadioButton.text=Gerichtet +AddEdgeToGraphUI.undirectedRadioButton.text=Ungerichtet +AddEdgeToGraphUI.sourceNodeLabel.text=Startknoten: +AddEdgeToGraphUI.targetNodeLabel.text=Ziel-Knoten: +AddEdgeToGraphUI.edgeTypeLabel.text=Kanten-Art: +SearchReplaceUI.searchLabel.text=Suche: +SearchReplaceUI.replaceLabel.text=Ersetzen durch: +SearchReplaceUI.matchWholeValueCheckBox.text=Nur Wert vergleichen +SearchReplaceUI.caseSensitiveCheckBox.text=Groί- /Kleinschreibung-unterscheidend +SearchReplaceUI.normalSearchModeRadioButton.text=Einfache Suche +SearchReplaceUI.regexSearchModeRadioButton.text=Suche mit regulδren Ausdrόcken +SearchReplaceUI.findNextButton.text=Weitersuchen +SearchReplaceUI.replaceButton.text=Ersetzen +SearchReplaceUI.replaceAllButton.text=Alle ersetzen +SearchReplaceUI.descriptionLabel.text.nodes=Suche in Knoten-Tabelle +SearchReplaceUI.descriptionLabel.text.edges=Suchen in Kanten-Tabelle +SearchReplaceUI.searchText.text= +SearchReplaceUI.replaceText.text= +SearchReplaceUI.resultLabel.text=Suchergebnis +SearchReplaceUI.resultText.contentType=text/html +SearchReplaceUI.not.found="{0}" konnte nicht gefunden werden +SearchReplaceUI.regexReplacementError=Die Ersatz-Zeichenkette ist nicht korrekt fόr den regulδren Ausdruck +SearchReplaceUI.dialog.title.error=Fehler +SearchReplaceUI.replacements.count.message={0} Vorkommen wurden ersetzt +SearchReplaceUI.column=Spalte:''{0}'' +SearchReplaceUI.allColumns=--Alle Spalten-- + +SearchReplaceUI.regexReplaceCheckBox.text=Regulδre Ausdrόcke Ersetzung +SearchReplaceUI.columnsToSearchLabel.text=Zu suchende/ersetzende Spalten: + +MergeNodeDuplicatesUI.description=Knoten-Duplikate werden anhand einer Spalte automatisch erkannt und verschmolzen.
    Fόr jede Gruppe von Knoten-Duplikaten, wird ein neuer Knoten mit der selben Farbe, Grφίe und Position des ersten Knoten der Gruppe erstellt.
    Kanten werden dem neuen Knoten zugewiesen
    Jede Spalte verwendet die angegebene Vorgehensweise um die Werte der Reihen auf einen Wert zu reduzieren. +MergeNodeDuplicatesUI.noDuplicatesText=Keine Duplikate gefunden! +MergeNodeDuplicatesUI.duplicateGroupsNumber={0} Duplikate gefundenen! +MergeNodeDuplicatesUI.deleteMergedNodesText=Verschmolzene Knoten lφschen +MergeNodeDuplicatesUI.configurationText=Konfigurieren +MergeNodeDuplicatesUI.caseSensitiveText=Groί- /Kleinschreibung-unterscheidend +MergeNodeDuplicatesUI.baseColumnText=Spalte um Duplikate zu erkennen: + +ManageColumnEstimatorsUI.estimator.AVERAGE=Durchschnitt +ManageColumnEstimatorsUI.estimator.MEDIAN=Median +ManageColumnEstimatorsUI.estimator.MIN=Min +ManageColumnEstimatorsUI.estimator.MAX=Max +ManageColumnEstimatorsUI.estimator.FIRST=Erste +ManageColumnEstimatorsUI.estimator.LAST=Letzte diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_es.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_es.properties index bd50f59fa4..65b599e3b5 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_es.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_es.properties @@ -1,135 +1,45 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Eduardo Ramos , 2011. -# FIRST AUTHOR , 2010. -# , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-03-31 12\:38+0000\nLast-Translator\: gephi \nLanguage-Team\: Spanish (http\://www.transifex.com/projects/p/gephi/language/es/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: es\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n - ClearEdgesUI.deleteDirectedCheckbox.text=Eliminar aristas dirigidas - -ClearEdgesUI.descriptionLabel.text=Tipos de aristas a eliminar\: - +ClearEdgesUI.descriptionLabel.text=Tipos de aristas a eliminar: ClearEdgesUI.deleteUndirectedChekbox.text=Eliminar aristas no dirigidas - -AddEdgeToGraphUI.descriptionLabel.text=Selecciona un tipo para la nueva arista y un nodo origen y destino\: - +AddEdgeToGraphUI.descriptionLabel.text=Selecciona un tipo para la nueva arista y un nodo origen y destino: AddEdgeToGraphUI.directedRadioButton.text=Dirigida - AddEdgeToGraphUI.undirectedRadioButton.text=No dirigida - -AddEdgeToGraphUI.sourceNodeLabel.text=Nodo origen\: - -AddEdgeToGraphUI.targetNodeLabel.text=Nodo destino\: - -SearchReplaceUI.searchLabel.text=B\u00fasqueda - -SearchReplaceUI.replaceLabel.text=Reemplazar con\: - -SearchReplaceUI.matchWholeValueCheckBox.text=S\u00f3lo valores completos - -SearchReplaceUI.caseSensitiveCheckBox.text=Sensible a may\u00fasculas - -SearchReplaceUI.normalSearchModeRadioButton.text=B\u00fasqueda normal - -SearchReplaceUI.regexSearchModeRadioButton.text=B\u00fasqueda con expresi\u00f3n regular - +AddEdgeToGraphUI.sourceNodeLabel.text=Nodo origen: +AddEdgeToGraphUI.targetNodeLabel.text=Nodo destino: +AddEdgeToGraphUI.edgeTypeLabel.text=Clase de arista: +SearchReplaceUI.searchLabel.text=Buscar: +SearchReplaceUI.replaceLabel.text=Reemplazar con: +SearchReplaceUI.matchWholeValueCheckBox.text=Sσlo valores completos +SearchReplaceUI.caseSensitiveCheckBox.text=Sensible a mayϊsculas +SearchReplaceUI.normalSearchModeRadioButton.text=Bϊsqueda normal +SearchReplaceUI.regexSearchModeRadioButton.text=Bϊsqueda con expresiσn regular SearchReplaceUI.findNextButton.text=Encontrar siguiente - SearchReplaceUI.replaceButton.text=Reemplazar - SearchReplaceUI.replaceAllButton.text=Reemplazar todo - SearchReplaceUI.descriptionLabel.text.nodes=Buscando en la tabla de nodos - SearchReplaceUI.descriptionLabel.text.edges=Buscando en la tabla de aristas - -SearchReplaceUI.resultLabel.text=Resultado de la b\u00fasqueda\: - +SearchReplaceUI.searchText.text= +SearchReplaceUI.replaceText.text= +SearchReplaceUI.resultLabel.text=Resultado de la bϊsqueda: SearchReplaceUI.resultText.contentType=text/html - SearchReplaceUI.not.found=No se pudo encontrar "{0}" - -SearchReplaceUI.regexReplacementError=El texto de reemplazado no es correcto para la expresi\u00f3n regular - +SearchReplaceUI.regexReplacementError=El texto de reemplazado no es correcto para la expresiσn regular SearchReplaceUI.dialog.title.error=Error - SearchReplaceUI.replacements.count.message={0} ocurrencias fueron reemplazadas - -SearchReplaceUI.column=Columna\: ''{0}'' - +SearchReplaceUI.column=Columna: ''{0}'' SearchReplaceUI.allColumns=--Todas columnas-- - -ImportCSVUIWizardAction.name=Importar hoja de c\u00e1lculo - -ImportCSVUIVisualPanel1.name=Opciones generales - -ImportCSVUIVisualPanel1.comma=Coma - -ImportCSVUIVisualPanel1.semicolon=Punto y coma - -ImportCSVUIVisualPanel1.space=Espacio - -ImportCSVUIVisualPanel1.tab=Tabulador - -ImportCSVUIVisualPanel1.nodes-table=Tabla de nodos - -ImportCSVUIVisualPanel1.edges-table=Tabla de aristas - -ImportCSVUIVisualPanel1.filechooser.csvDescription=CSV - -ImportCSVUIVisualPanel1.tableLabel.text=Tabla\: - -ImportCSVUIVisualPanel1.fileButton.text=... - -ImportCSVUIVisualPanel1.separatorLabel.text=Separador\: - -ImportCSVUIVisualPanel1.descriptionLabel.text=Escoge un archivo CSV a importar\: - -ImportCSVUIVisualPanel1.previewLabel.text=Previsualizaci\u00f3n\: - -ImportCSVUIVisualPanel1.charsetLabel.text=Conjunto de caracteres\: - -ImportCSVUIVisualPanel1.validation.invalid-file=Archivo CSV inv\u00e1lido - -ImportCSVUIVisualPanel1.validation.no-columns=El archivo no contiene ninguna columna - -ImportCSVUIVisualPanel1.validation.repeated-columns=El archivo no puede tener nombres de columnas repetidos - -ImportCSVUIVisualPanel1.validation.error=Error - -ImportCSVUIVisualPanel1.validation.file-permissions-error=Un error ocurri\u00f3 al leer el archivo. Aseg\u00farate de que el archivo no est\u00e1 en uso y tienes permisos - -ImportCSVUIVisualPanel1.validation.edges.no-source-target-columns=Importar a la tabla de aristas requiere las columnas llamadas 'Source' y 'Target' con las ids de los nodos - -ImportCSVUIVisualPanel2.name=Par\u00e1metros de importaci\u00f3n\: - -ImportCSVUIVisualPanel2.columnsLabel.text=Importar columnas\: - -ImportCSVUIVisualPanel2.nodes.description=Las columnas no existentes ser\u00e1n creadas con el tipo especificado.
    Si no se proporciona la id de un nodo, se le asignar\u00e1 una.
    A no ser que la opci\u00f3n 'Asignar un nuevo id a un nodo cuando ya existe' est\u00e9 activada, los datos de los nodos ya existentes ser\u00e1n actualizados con los datos del archivo CSV - -ImportCSVUIVisualPanel2.nodes.assign-ids-checkbox=Forzar que los nodos sean creados nuevos - -ImportCSVUIVisualPanel2.edges.description=Las columnas no existentes ser\u00e1n creadas con el tipo especificado.
    Si no se proporciona la id de una arista o una arista con esa id ya existe, se le asignar\u00e1 una.
    Las aristas necesitan las columnas llamadas 'Source' y 'Target' con las ids de los nodos origen y destino. Si alguna no es proporcionada en una fila ser\u00e1 ignorada.
    Si no se proporciona la columna 'Type', todas las aristas ser\u00e1n dirigidas.
    Si una arista ya existe, sus atributos ser\u00e1n ignorados, pero los pesos ser\u00e1n sumados (peso 1 si no se especifica) - -ImportCSVUIVisualPanel2.edges.create-new-nodes-checkbox=Crear nodos inexistentes - -SearchReplaceUI.regexReplaceCheckBox.text=Reemplazar en modo expresi\u00f3n regular - -SearchReplaceUI.columnsToSearchLabel.text=Columnas en las que buscar/reemplazar\: - -MergeNodeDuplicatesUI.description=Los nodos duplicados son detectados y mezclados autom\u00e1ticamente a partir de los valores de una columna.
    Para cada grupo de nodos duplicados, un nuevo nodo con el mismo color, tama\u00f1o y posici\u00f3n que el primer nodo del grupo es creado.
    Las aristas son asignadas al nuevo nodo.
    Cada columna utiliza la estrategia escogida para reducir los valores de las filas a un solo valor.
    La jerarqu\u00eda es ignorada. - -MergeNodeDuplicatesUI.noDuplicatesText=\u00a1No se encontraron duplicados\! - -MergeNodeDuplicatesUI.duplicateGroupsNumber=\u00a1{0} duplicados encontrados\! - -MergeNodeDuplicatesUI.deleteMergedNodesText=Borrar nodos mezclados - +SearchReplaceUI.regexReplaceCheckBox.text=Reemplazar en modo expresiσn regular +SearchReplaceUI.columnsToSearchLabel.text=Columnas en las que buscar/reemplazar: +MergeNodeDuplicatesUI.description=Los nodos duplicados se detectan y fusionan autom\u00E1ticamente en funci\u00F3n de una columna.
    Para cada grupo de nodos duplicados, se crea un nuevo nodo con el mismo color, tama\u00F1o y posici\u00F3n que el primer nodo del grupo.
    Los bordes se asignan al nuevo nodo.
    Cada columna reduce los valores a uno usando la estrategia dada. +MergeNodeDuplicatesUI.noDuplicatesText=‘No se encontraron duplicados! +MergeNodeDuplicatesUI.duplicateGroupsNumber=‘{0} duplicados encontrados! +MergeNodeDuplicatesUI.deleteMergedNodesText=Borrar nodos fusionados MergeNodeDuplicatesUI.configurationText=Configurar - -MergeNodeDuplicatesUI.caseSensitiveText=Sensible a may\u00fasculas - -MergeNodeDuplicatesUI.baseColumnText=Columna base para detectar duplicados\: +MergeNodeDuplicatesUI.caseSensitiveText=Sensible a mayϊsculas +MergeNodeDuplicatesUI.baseColumnText=Columna base para detectar duplicados: +ManageColumnEstimatorsUI.estimator.AVERAGE=Promedio +ManageColumnEstimatorsUI.estimator.MEDIAN=Mediana +ManageColumnEstimatorsUI.estimator.MIN=Mνnimo +ManageColumnEstimatorsUI.estimator.MAX=Mαximo +ManageColumnEstimatorsUI.estimator.FIRST=Primero +ManageColumnEstimatorsUI.estimator.LAST=Ϊltimo diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_fr.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_fr.properties index 216b896f85..51096de580 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_fr.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_fr.properties @@ -1,135 +1,48 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Eduardo Ramos , 2011. -# FIRST AUTHOR , 2010. -# , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-03-31 12\:50+0000\nLast-Translator\: gephi \nLanguage-Team\: French (http\://www.transifex.com/projects/p/gephi/language/fr/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fr\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -ClearEdgesUI.deleteDirectedCheckbox.text=Supprimer liens dirig\u00e9s - -ClearEdgesUI.descriptionLabel.text=Types de liens \u00e0 supprimer \: - -ClearEdgesUI.deleteUndirectedChekbox.text=Supprimer liens non dirig\u00e9s - -AddEdgeToGraphUI.descriptionLabel.text=S\u00e9lectionnez le type du lien cr\u00e9\u00e9, ses noeuds source et destination \: - -AddEdgeToGraphUI.directedRadioButton.text=Dirig\u00e9 - -AddEdgeToGraphUI.undirectedRadioButton.text=Non dirig\u00e9 - -AddEdgeToGraphUI.sourceNodeLabel.text=Noeud source \: - -AddEdgeToGraphUI.targetNodeLabel.text=Noeud de destination \: - -SearchReplaceUI.searchLabel.text=Rechercher \: - -SearchReplaceUI.replaceLabel.text=Remplacer par \: - -SearchReplaceUI.matchWholeValueCheckBox.text=Cha\u00eene compl\u00e8te - -SearchReplaceUI.caseSensitiveCheckBox.text=Sensible \u00e0 la casse - -SearchReplaceUI.normalSearchModeRadioButton.text=Recherche normale - -SearchReplaceUI.regexSearchModeRadioButton.text=Recherche par expression rationnelle - -SearchReplaceUI.findNextButton.text=Trouver suivant - -SearchReplaceUI.replaceButton.text=Remplacer - -SearchReplaceUI.replaceAllButton.text=Tout remplacer - -SearchReplaceUI.descriptionLabel.text.nodes=Chercher parmi les noeuds - -SearchReplaceUI.descriptionLabel.text.edges=Chercher parmi les liens - -SearchReplaceUI.resultLabel.text=R\u00e9sultat \: - -SearchReplaceUI.resultText.contentType=text/html - -SearchReplaceUI.not.found="{0}" introuvable - -SearchReplaceUI.regexReplacementError=Cha\u00efne de remplacement incorrecte pour l'expression rationnelle - -SearchReplaceUI.dialog.title.error=Erreur - -SearchReplaceUI.replacements.count.message={0} ocurrences ont \u00e9t\u00e9 remplac\u00e9es - -SearchReplaceUI.column=Colonne\: ''{0}'' - -SearchReplaceUI.allColumns=--Toutes les colonnes-- - -ImportCSVUIWizardAction.name=Importer feuille de calcul - -ImportCSVUIVisualPanel1.name=Options g\u00e9n\u00e9rales - -ImportCSVUIVisualPanel1.comma=Virgule - -ImportCSVUIVisualPanel1.semicolon=Point-virgule - -ImportCSVUIVisualPanel1.space=Espace - -ImportCSVUIVisualPanel1.tab=Tabulation - -ImportCSVUIVisualPanel1.nodes-table=Table des noeuds - -ImportCSVUIVisualPanel1.edges-table=Table des liens - -ImportCSVUIVisualPanel1.filechooser.csvDescription=CSV - -ImportCSVUIVisualPanel1.tableLabel.text=En tant que table \: - -ImportCSVUIVisualPanel1.fileButton.text=... - -ImportCSVUIVisualPanel1.separatorLabel.text=S\u00e9parateur \: - -ImportCSVUIVisualPanel1.descriptionLabel.text=Choisissez un fichier CSV \u00e0 importer \: - -ImportCSVUIVisualPanel1.previewLabel.text=Pr\u00e9visualisation \: - -ImportCSVUIVisualPanel1.charsetLabel.text=Encodage \: - -ImportCSVUIVisualPanel1.validation.invalid-file=Fichier CSV invalide - -ImportCSVUIVisualPanel1.validation.no-columns=Le fichier n'a aucune colonne. - -ImportCSVUIVisualPanel1.validation.repeated-columns=Les noms de colonne doivent \u00eatre unique dans le fichier. - -ImportCSVUIVisualPanel1.validation.error=Erreur - -ImportCSVUIVisualPanel1.validation.file-permissions-error=Erreur lors de la lecture du fichier. V\u00e9rifiez qu'il n'est pas utilis\u00e9 et que vous avez les bonnes permissions. - -ImportCSVUIVisualPanel1.validation.edges.no-source-target-columns=La tables des liens n\u00e9cessite les colonnes 'Source' et 'Target' contenant les ids des noeuds. - -ImportCSVUIVisualPanel2.name=Param\u00e8tres d'import - -ImportCSVUIVisualPanel2.columnsLabel.text=Colonnes import\u00e9es \: - -ImportCSVUIVisualPanel2.nodes.description=Les nouvelles colonnes ont le type sp\u00e9cifi\u00e9.
    Un identifiant est cr\u00e9\u00e9 s'il est manquant.
    Les noeuds existants sont mis \u00e0 jour sauf si l'option 'Forcer les noeuds import\u00e9s \u00e0 \u00eatre de nouveaux noeuds' est coch\u00e9e. - -ImportCSVUIVisualPanel2.nodes.assign-ids-checkbox=Forcer les noeuds import\u00e9s \u00e0 \u00eatre de nouveaux noeuds - -ImportCSVUIVisualPanel2.edges.description=Les nouvelles colonnes ont le type sp\u00e9cifi\u00e9.
    Un identifiant est cr\u00e9\u00e9 s'il est manquant ou d\u00e9j\u00e0 pr\u00e9sent.
    Les liens ont besoin de colonnes 'Source' et 'Target' contenant les ids des noeuds. Si une ligne n'en contient pas, elle est ignor\u00e9.
    Sans colonne 'Type', les liens sont dirig\u00e9s.
    Les attributs sont ignor\u00e9s si un lien est d\u00e9j\u00e0 pr\u00e9sent, mais leurs poids sont additionn\u00e9s (poids\=1 par d\u00e9faut) - -ImportCSVUIVisualPanel2.edges.create-new-nodes-checkbox=Cr\u00e9er les noeuds manquants - -SearchReplaceUI.regexReplaceCheckBox.text=Remplacement par expression rationnelle - -SearchReplaceUI.columnsToSearchLabel.text=Colonnes \u00e0 chercher/remplacer \: - -MergeNodeDuplicatesUI.description=Les noeuds en double sont automatiquement d\u00e9tect\u00e9s et fusionn\u00e9s selon une colonne donn\u00e9e.
    Pour chaque groupe de doublons, un nouveau noeud est cr\u00e9\u00e9 ayant m\u00eame couleur, taille et position que le premier noeud du groupe.
    Les liens sont affect\u00e9s au nouveau noeud.
    Chaque colonne utilise une strat\u00e9gie donn\u00e9e pour r\u00e9duire les diff\u00e9rentes valeurs \u00e0 une seule.
    La hi\u00e9rarchie est ignor\u00e9e. - -MergeNodeDuplicatesUI.noDuplicatesText=Aucun doublon trouv\u00e9 - -MergeNodeDuplicatesUI.duplicateGroupsNumber={0} doublons trouv\u00e9s - -MergeNodeDuplicatesUI.deleteMergedNodesText=Supprimer les noeuds fusionn\u00e9s - -MergeNodeDuplicatesUI.configurationText=Configurer - -MergeNodeDuplicatesUI.caseSensitiveText=Sensible \u00e0 la casse - -MergeNodeDuplicatesUI.baseColumnText=Colonne de base pour d\u00e9tecter les doublons \: +ClearEdgesUI.deleteDirectedCheckbox.text=Supprimer liens dirigιs +ClearEdgesUI.descriptionLabel.text=Types de liens ΰ supprimer : +ClearEdgesUI.deleteUndirectedChekbox.text=Supprimer liens non dirigιs +AddEdgeToGraphUI.descriptionLabel.text=Sιlectionnez le type du lien crιι, ses noeuds source et destination : +AddEdgeToGraphUI.directedRadioButton.text=Dirigι +AddEdgeToGraphUI.undirectedRadioButton.text=Non dirigι +AddEdgeToGraphUI.sourceNodeLabel.text=Noeud source : +AddEdgeToGraphUI.targetNodeLabel.text=Noeud de destination : +AddEdgeToGraphUI.edgeTypeLabel.text=Sorte de lien: +SearchReplaceUI.searchLabel.text=Rechercher : +SearchReplaceUI.replaceLabel.text=Remplacer par : +SearchReplaceUI.matchWholeValueCheckBox.text=Chaξne complθte +SearchReplaceUI.caseSensitiveCheckBox.text=Sensible ΰ la casse +SearchReplaceUI.normalSearchModeRadioButton.text=Recherche normale +SearchReplaceUI.regexSearchModeRadioButton.text=Recherche par expression rationnelle +SearchReplaceUI.findNextButton.text=Trouver suivant +SearchReplaceUI.replaceButton.text=Remplacer +SearchReplaceUI.replaceAllButton.text=Tout remplacer +SearchReplaceUI.descriptionLabel.text.nodes=Chercher parmi les noeuds +SearchReplaceUI.descriptionLabel.text.edges=Chercher parmi les liens +SearchReplaceUI.searchText.text= +SearchReplaceUI.replaceText.text= +SearchReplaceUI.resultLabel.text=Rιsultat : +SearchReplaceUI.resultText.contentType=text/html +SearchReplaceUI.not.found="{0}" introuvable +SearchReplaceUI.regexReplacementError=Chaοne de remplacement incorrecte pour l'expression rationnelle +SearchReplaceUI.dialog.title.error=Erreur +SearchReplaceUI.replacements.count.message={0} ocurrences ont ιtι remplacιes +SearchReplaceUI.column=Colonne: ''{0}'' +SearchReplaceUI.allColumns=--Toutes les colonnes-- + +SearchReplaceUI.regexReplaceCheckBox.text=Remplacement par expression rationnelle +SearchReplaceUI.columnsToSearchLabel.text=Colonnes ΰ chercher/remplacer : + +MergeNodeDuplicatesUI.description=Les noeuds en double sont automatiquement dιtectιs et fusionnιs selon une colonne donnιe.
    Pour chaque groupe de doublons, un nouveau noeud est crιι ayant mκme couleur, taille et position que le premier noeud du groupe.
    Les liens sont affectιs au nouveau noeud.
    Chaque colonne utilise une stratιgie donnιe pour rιduire les diffιrentes valeurs ΰ une seule.
    La hiιrarchie est ignorιe. +MergeNodeDuplicatesUI.noDuplicatesText=Aucun doublon trouvι +MergeNodeDuplicatesUI.duplicateGroupsNumber={0} doublons trouvιs +MergeNodeDuplicatesUI.deleteMergedNodesText=Supprimer les noeuds fusionnιs +MergeNodeDuplicatesUI.configurationText=Configurer +MergeNodeDuplicatesUI.caseSensitiveText=Sensible ΰ la casse +MergeNodeDuplicatesUI.baseColumnText=Colonne de base pour dιtecter les doublons : + +ManageColumnEstimatorsUI.estimator.AVERAGE=Moyenne +ManageColumnEstimatorsUI.estimator.MEDIAN=Mιdiane +ManageColumnEstimatorsUI.estimator.MIN=Minimum +ManageColumnEstimatorsUI.estimator.MAX=Maximum +ManageColumnEstimatorsUI.estimator.FIRST=Premier +ManageColumnEstimatorsUI.estimator.LAST=Dernier diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_he.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_he.properties new file mode 100644 index 0000000000..fc69652366 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_he.properties @@ -0,0 +1,45 @@ +ClearEdgesUI.deleteDirectedCheckbox.text=Delete directed edges +ClearEdgesUI.descriptionLabel.text=Edge types to delete: +ClearEdgesUI.deleteUndirectedChekbox.text=Delete undirected edges +AddEdgeToGraphUI.descriptionLabel.text=Select the new edge type, source and target nodes: +AddEdgeToGraphUI.directedRadioButton.text=Directed +AddEdgeToGraphUI.undirectedRadioButton.text=Undirected +AddEdgeToGraphUI.sourceNodeLabel.text=Source node: +AddEdgeToGraphUI.targetNodeLabel.text=Target node: +AddEdgeToGraphUI.edgeTypeLabel.text=Edge Kind: +SearchReplaceUI.searchLabel.text=Search: +SearchReplaceUI.replaceLabel.text=Replace with: +SearchReplaceUI.matchWholeValueCheckBox.text=Only match whole value +SearchReplaceUI.caseSensitiveCheckBox.text=Case sensitive +SearchReplaceUI.normalSearchModeRadioButton.text=Normal search +SearchReplaceUI.regexSearchModeRadioButton.text=Regular expression search +SearchReplaceUI.findNextButton.text=Find next +SearchReplaceUI.replaceButton.text=Replace +SearchReplaceUI.replaceAllButton.text=Replace all +SearchReplaceUI.descriptionLabel.text.nodes=Searching on nodes table +SearchReplaceUI.descriptionLabel.text.edges=Searching on edges table +SearchReplaceUI.searchText.text= +SearchReplaceUI.replaceText.text= +SearchReplaceUI.resultLabel.text=Search match result: +SearchReplaceUI.resultText.contentType=text/html +SearchReplaceUI.not.found=Could not find "{0}" +SearchReplaceUI.regexReplacementError=The replacement string is not correct for the regular expression +SearchReplaceUI.dialog.title.error=Error +SearchReplaceUI.replacements.count.message={0} ocurrences were replaced +SearchReplaceUI.column=Column: ''{0}'' +SearchReplaceUI.allColumns=--All columns-- +SearchReplaceUI.regexReplaceCheckBox.text=Regular expression replacement +SearchReplaceUI.columnsToSearchLabel.text=Columns to search/replace: +MergeNodeDuplicatesUI.description=Node duplicates are automatically detected and merged based on a column.
    For each group of node duplicates, one new node with the same color, size and position of the first node in the group is created.
    Edges are assigned to the new node.
    Each column uses the given strategy to reduce the rows values to one value. +MergeNodeDuplicatesUI.noDuplicatesText=No duplicates found! +MergeNodeDuplicatesUI.duplicateGroupsNumber={0} duplicates found! +MergeNodeDuplicatesUI.deleteMergedNodesText=Delete merged nodes +MergeNodeDuplicatesUI.configurationText=Configure +MergeNodeDuplicatesUI.caseSensitiveText=Case sensitive +MergeNodeDuplicatesUI.baseColumnText=Base column to detect duplicates: +ManageColumnEstimatorsUI.estimator.AVERAGE=Average +ManageColumnEstimatorsUI.estimator.MEDIAN=Median +ManageColumnEstimatorsUI.estimator.MIN=Min +ManageColumnEstimatorsUI.estimator.MAX=Max +ManageColumnEstimatorsUI.estimator.FIRST=First +ManageColumnEstimatorsUI.estimator.LAST=Last diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_hu.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_hu.properties new file mode 100644 index 0000000000..e99e9cf2ae --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_hu.properties @@ -0,0 +1,45 @@ + + +SearchReplaceUI.replaceAllButton.text=Cser\u00E9lje ki az \u00F6sszeset +AddEdgeToGraphUI.directedRadioButton.text=Ir\u00E1ny\u00EDtott +SearchReplaceUI.matchWholeValueCheckBox.text=Csak a teljes \u00E9rt\u00E9knek feleljen meg +SearchReplaceUI.columnsToSearchLabel.text=Keresend\u0151/cser\u00E9lhet\u0151 oszlopok: +SearchReplaceUI.replacements.count.message={0} el\u0151fordul\u00E1s lecser\u00E9lve +ManageColumnEstimatorsUI.estimator.FIRST=Els\u0151 +MergeNodeDuplicatesUI.description=A csom\u00F3pont-duplik\u00E1ci\u00F3kat a rendszer automatikusan \u00E9szleli \u00E9s egy oszlop alapj\u00E1n egyes\u00EDti.
    A csom\u00F3pont-duplik\u00E1tumok minden csoportj\u00E1hoz egy \u00FAj csom\u00F3pont j\u00F6n l\u00E9tre, amelynek sz\u00EDne, m\u00E9rete \u00E9s poz\u00EDci\u00F3ja megegyezik a csoport els\u0151 csom\u00F3pontj\u00E1val.
    Az \u00E9lek hozz\u00E1 vannak rendelve az \u00FAj csom\u00F3ponthoz.
    Minden oszlop a megadott strat\u00E9gi\u00E1t haszn\u00E1lja a sorok \u00E9rt\u00E9keinek egy \u00E9rt\u00E9kre val\u00F3 cs\u00F6kkent\u00E9s\u00E9re. +MergeNodeDuplicatesUI.caseSensitiveText=Kis-nagybet\u0171 \u00E9rz\u00E9keny +SearchReplaceUI.regexReplaceCheckBox.text=Regul\u00E1ris kifejez\u00E9s helyettes\u00EDt\u00E9se +SearchReplaceUI.not.found="{0}" nem tal\u00E1lhat\u00F3 +MergeNodeDuplicatesUI.baseColumnText=Alaposzlop az ism\u00E9tl\u0151d\u00E9sek \u00E9szlel\u00E9s\u00E9hez: +AddEdgeToGraphUI.descriptionLabel.text=V\u00E1lassza ki az \u00FAj \u00E9lt\u00EDpust, forr\u00E1s- \u00E9s c\u00E9lcsom\u00F3pontokat: +SearchReplaceUI.normalSearchModeRadioButton.text=Norm\u00E1l keres\u00E9s +MergeNodeDuplicatesUI.duplicateGroupsNumber={0} ism\u00E9tl\u0151d\u00E9s tal\u00E1lhat\u00F3! +AddEdgeToGraphUI.undirectedRadioButton.text=Ir\u00E1ny\u00EDtatlan +SearchReplaceUI.regexReplacementError=A helyettes\u00EDt\u0151 karakterl\u00E1nc nem megfelel\u0151 a regul\u00E1ris kifejez\u00E9shez +SearchReplaceUI.searchLabel.text=Keres\u00E9s: +SearchReplaceUI.resultLabel.text=Keres\u00E9s egyez\u00E9s eredm\u00E9nye: +SearchReplaceUI.resultText.contentType=sz\u00F6veg/html +SearchReplaceUI.replaceButton.text=Cser\u00E9lje ki +MergeNodeDuplicatesUI.noDuplicatesText=Nem tal\u00E1lhat\u00F3 ism\u00E9tl\u0151d\u00E9s! +MergeNodeDuplicatesUI.deleteMergedNodesText=Az egyes\u00EDtett csom\u00F3pontok t\u00F6rl\u00E9se +ClearEdgesUI.deleteDirectedCheckbox.text=Ir\u00E1ny\u00EDtott \u00E9lek t\u00F6rl\u00E9se +ManageColumnEstimatorsUI.estimator.MAX=Maximum +AddEdgeToGraphUI.sourceNodeLabel.text=Forr\u00E1s csom\u00F3pont: +SearchReplaceUI.caseSensitiveCheckBox.text=Kis-nagybet\u0171 \u00E9rz\u00E9keny +ManageColumnEstimatorsUI.estimator.LAST=Utols\u00F3 +SearchReplaceUI.replaceLabel.text=Cser\u00E9ld ki: +AddEdgeToGraphUI.targetNodeLabel.text=C\u00E9lcsom\u00F3pont: +SearchReplaceUI.descriptionLabel.text.edges=Keres\u00E9s az asztal sz\u00E9l\u00E9n +ClearEdgesUI.descriptionLabel.text=T\u00F6r\u00F6lend\u0151 \u00E9lt\u00EDpusok: +AddEdgeToGraphUI.edgeTypeLabel.text=Edge t\u00EDpus: +ClearEdgesUI.deleteUndirectedChekbox.text=Ir\u00E1ny\u00EDtatlan \u00E9lek t\u00F6rl\u00E9se +SearchReplaceUI.descriptionLabel.text.nodes=Keres\u00E9s a csom\u00F3pontok t\u00E1bl\u00E1j\u00E1n +MergeNodeDuplicatesUI.configurationText=Be\u00E1ll\u00EDt\u00E1s +SearchReplaceUI.findNextButton.text=Keresse meg a k\u00F6vetkez\u0151t +ManageColumnEstimatorsUI.estimator.MEDIAN=K\u00F6z\u00E9ps\u0151 +ManageColumnEstimatorsUI.estimator.MIN=Min +ManageColumnEstimatorsUI.estimator.AVERAGE=\u00C1tlagos +SearchReplaceUI.column=Oszlop: ''{0}'' +SearchReplaceUI.dialog.title.error=Hiba +SearchReplaceUI.allColumns=--Minden oszlop-- +SearchReplaceUI.regexSearchModeRadioButton.text=Regul\u00E1ris kifejez\u00E9s keres\u00E9se diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_it.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_it.properties new file mode 100644 index 0000000000..d75b4af0ca --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_it.properties @@ -0,0 +1,45 @@ +ClearEdgesUI.deleteDirectedCheckbox.text=Delete directed edges +ClearEdgesUI.descriptionLabel.text=Edge types to delete: +ClearEdgesUI.deleteUndirectedChekbox.text=Delete undirected edges +AddEdgeToGraphUI.descriptionLabel.text=Select the new edge type, source and target nodes: +AddEdgeToGraphUI.directedRadioButton.text=Orientato +AddEdgeToGraphUI.undirectedRadioButton.text=Non orientato +AddEdgeToGraphUI.sourceNodeLabel.text=Source node: +AddEdgeToGraphUI.targetNodeLabel.text=Target node: +AddEdgeToGraphUI.edgeTypeLabel.text=Edge Kind: +SearchReplaceUI.searchLabel.text=Search: +SearchReplaceUI.replaceLabel.text=Replace with: +SearchReplaceUI.matchWholeValueCheckBox.text=Only match whole value +SearchReplaceUI.caseSensitiveCheckBox.text=Case sensitive +SearchReplaceUI.normalSearchModeRadioButton.text=Normal search +SearchReplaceUI.regexSearchModeRadioButton.text=Regular expression search +SearchReplaceUI.findNextButton.text=Find next +SearchReplaceUI.replaceButton.text=Replace +SearchReplaceUI.replaceAllButton.text=Replace all +SearchReplaceUI.descriptionLabel.text.nodes=Searching on nodes table +SearchReplaceUI.descriptionLabel.text.edges=Searching on edges table +SearchReplaceUI.searchText.text= +SearchReplaceUI.replaceText.text= +SearchReplaceUI.resultLabel.text=Search match result: +SearchReplaceUI.resultText.contentType=text/html +SearchReplaceUI.not.found=Could not find "{0}" +SearchReplaceUI.regexReplacementError=The replacement string is not correct for the regular expression +SearchReplaceUI.dialog.title.error=Error +SearchReplaceUI.replacements.count.message={0} ocurrences were replaced +SearchReplaceUI.column=Column: ''{0}'' +SearchReplaceUI.allColumns=--All columns-- +SearchReplaceUI.regexReplaceCheckBox.text=Regular expression replacement +SearchReplaceUI.columnsToSearchLabel.text=Columns to search/replace: +MergeNodeDuplicatesUI.description=Node duplicates are automatically detected and merged based on a column.
    For each group of node duplicates, one new node with the same color, size and position of the first node in the group is created.
    Edges are assigned to the new node.
    Each column uses the given strategy to reduce the rows values to one value. +MergeNodeDuplicatesUI.noDuplicatesText=No duplicates found! +MergeNodeDuplicatesUI.duplicateGroupsNumber={0} duplicates found! +MergeNodeDuplicatesUI.deleteMergedNodesText=Delete merged nodes +MergeNodeDuplicatesUI.configurationText=Configure +MergeNodeDuplicatesUI.caseSensitiveText=Case sensitive +MergeNodeDuplicatesUI.baseColumnText=Base column to detect duplicates: +ManageColumnEstimatorsUI.estimator.AVERAGE=Average +ManageColumnEstimatorsUI.estimator.MEDIAN=Median +ManageColumnEstimatorsUI.estimator.MIN=Min +ManageColumnEstimatorsUI.estimator.MAX=Max +ManageColumnEstimatorsUI.estimator.FIRST=First +ManageColumnEstimatorsUI.estimator.LAST=Last diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_ja.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_ja.properties index e750ee47c4..c7099c5d18 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_ja.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_ja.properties @@ -1,133 +1,48 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011, 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-15 07\:52+0000\nLast-Translator\: Siro Kida \nLanguage-Team\: Japanese (http\://www.transifex.com/projects/p/gephi/language/ja/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ja\nPlural-Forms\: nplurals\=1; plural\=0;\n - -ClearEdgesUI.deleteDirectedCheckbox.text=\u6709\u5411\u8fba\u3092\u524a\u9664\u3059\u308b - -ClearEdgesUI.descriptionLabel.text=\u524a\u9664\u3059\u308b\u30a8\u30c3\u30b8\u306e\u7a2e\u985e\: - -ClearEdgesUI.deleteUndirectedChekbox.text=\u7121\u5411\u30a8\u30c3\u30b8\u3092\u524a\u9664\u3059\u308b - -AddEdgeToGraphUI.descriptionLabel.text=\u65b0\u898f\u8fba\u306e\u7a2e\u985e\u3001\u30bd\u30fc\u30b9\u3001\u30bf\u30fc\u30b2\u30c3\u30c8\u3092\u9078\u629e\u3002 - -AddEdgeToGraphUI.directedRadioButton.text=\u6709\u5411 - -AddEdgeToGraphUI.undirectedRadioButton.text=\u7121\u5411 - -AddEdgeToGraphUI.sourceNodeLabel.text=\u30bd\u30fc\u30b9\u30ce\u30fc\u30c9\: - -AddEdgeToGraphUI.targetNodeLabel.text=\u30bf\u30fc\u30b2\u30c3\u30c8\u30ce\u30fc\u30c9\: - -SearchReplaceUI.searchLabel.text=\u691c\u7d22\: - -SearchReplaceUI.replaceLabel.text=\u7f6e\u63db\: - -SearchReplaceUI.matchWholeValueCheckBox.text=\u5024\u5168\u4f53\u306e\u4e00\u81f4\u306e\u307f - -SearchReplaceUI.caseSensitiveCheckBox.text=\u5927\u6587\u5b57\u3068\u5c0f\u6587\u5b57\u3092\u533a\u5225 - -SearchReplaceUI.normalSearchModeRadioButton.text=\u901a\u5e38\u691c\u7d22 - -SearchReplaceUI.regexSearchModeRadioButton.text=\u6b63\u898f\u8868\u73fe\u691c\u7d22 - -SearchReplaceUI.findNextButton.text=\u6b21\u3092\u691c\u7d22 - -SearchReplaceUI.replaceButton.text=\u7f6e\u63db - -SearchReplaceUI.replaceAllButton.text=\u3059\u3079\u3066\u3092\u7f6e\u63db - -SearchReplaceUI.descriptionLabel.text.nodes=\u30ce\u30fc\u30c9\u306e\u30c6\u30fc\u30d6\u30eb\u3092\u4f7f\u7528\u3057\u305f\u691c\u7d22 - -SearchReplaceUI.descriptionLabel.text.edges=\u8fba\u30c6\u30fc\u30d6\u30eb\u3092\u691c\u7d22 - -SearchReplaceUI.resultLabel.text=\u4e00\u81f4\u7d50\u679c\u3092\u691c\u7d22\: - -SearchReplaceUI.resultText.contentType=text/html - -SearchReplaceUI.not.found="{0}"\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f - -SearchReplaceUI.regexReplacementError=\u7f6e\u63db\u6587\u5b57\u5217\u306e\u6b63\u898f\u8868\u73fe\u304c\u4e0d\u6b63\u78ba\u3067\u3059 - -SearchReplaceUI.dialog.title.error=\u30a8\u30e9\u30fc - -SearchReplaceUI.replacements.count.message={0}\u4ef6\u3092\u7f6e\u63db - -SearchReplaceUI.column=\u5217\:'' {0} '' - -SearchReplaceUI.allColumns=--\u5168\u5217-- - -ImportCSVUIWizardAction.name=\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u306e\u30a4\u30f3\u30dd\u30fc\u30c8 - -ImportCSVUIVisualPanel1.name=\u7dcf\u5408\u7684\u30aa\u30d7\u30b7\u30e7\u30f3 - -ImportCSVUIVisualPanel1.comma=\u30b3\u30f3\u30de - -ImportCSVUIVisualPanel1.semicolon=\u30bb\u30df\u30b3\u30ed\u30f3 - -ImportCSVUIVisualPanel1.space=\u30b9\u30da\u30fc\u30b9 - -ImportCSVUIVisualPanel1.tab=\u30bf\u30d6 - -ImportCSVUIVisualPanel1.nodes-table=\u30ce\u30fc\u30c9\u30c6\u30fc\u30d6\u30eb - -ImportCSVUIVisualPanel1.edges-table=\u8fba\u30c6\u30fc\u30d6\u30eb - -ImportCSVUIVisualPanel1.filechooser.csvDescription=CSV - -ImportCSVUIVisualPanel1.tableLabel.text=\u30c6\u30fc\u30d6\u30eb\u3068\u3057\u3066\: - -ImportCSVUIVisualPanel1.fileButton.text=... - -ImportCSVUIVisualPanel1.separatorLabel.text=\u30bb\u30d1\u30ec\u30fc\u30bf\: - -ImportCSVUIVisualPanel1.descriptionLabel.text=\u30a4\u30f3\u30dd\u30fc\u30c8\u3059\u308bCSV\u30d5\u30a1\u30a4\u30eb\u3092\u9078\u629e\: - -ImportCSVUIVisualPanel1.previewLabel.text=\u30d7\u30ec\u30d3\u30e5\u30fc\: - -ImportCSVUIVisualPanel1.charsetLabel.text=\u6587\u5b57\u30bb\u30c3\u30c8\: - -ImportCSVUIVisualPanel1.validation.invalid-file=\u7121\u52b9\u306aCSV\u30d5\u30a1\u30a4\u30eb - -ImportCSVUIVisualPanel1.validation.no-columns=\u30d5\u30a1\u30a4\u30eb\u306b\u5217\u304c\u3042\u308a\u307e\u305b\u3093 - -ImportCSVUIVisualPanel1.validation.repeated-columns=\u30d5\u30a1\u30a4\u30eb\u306f\u7e70\u308a\u8fd4\u3057\u305f\u5217\u540d\u3092\u4ed8\u3051\u3089\u308c\u307e\u305b\u3093\u3002 - -ImportCSVUIVisualPanel1.validation.error=\u30a8\u30e9\u30fc - -ImportCSVUIVisualPanel1.validation.file-permissions-error=\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u8fbc\u3080\u3068\u304d\u306b\u30a8\u30e9\u30fc\u304c\u8d77\u3053\u3063\u305f\u3002\u30d5\u30a1\u30a4\u30eb\u304c\u4f7f\u7528\u4e2d\u3067\u306a\u3044\u304b\u30a2\u30af\u30bb\u30b9\u8a31\u53ef\u304c\u3042\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002 - -ImportCSVUIVisualPanel1.validation.edges.no-source-target-columns=\u8fba\u30c6\u30fc\u30d6\u30eb\u306b\u306f\u30ce\u30fc\u30c9ID\u3092\u6301\u3064"\u30bd\u30fc\u30b9"\u3068"\u30bf\u30fc\u30b2\u30c3\u30c8"\u5217\u304c\u5fc5\u8981\u3067\u3059\u3002 - -ImportCSVUIVisualPanel2.name=\u8a2d\u5b9a\u3092\u30a4\u30f3\u30dd\u30fc\u30c8 - -ImportCSVUIVisualPanel2.columnsLabel.text=\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u305f\u5217\: - -ImportCSVUIVisualPanel2.nodes.description=\u65b0\u3057\u3044\u5217\u306f\u7279\u5b9a\u306e\u30bf\u30a4\u30d7\u3067\u751f\u6210\u3055\u308c\u307e\u3059\u3002
    \u306a\u3051\u308c\u3070\u751f\u6210\u3055\u308c\u305fid\u304c\u5272\u308a\u5f53\u3066\u3089\u308c\u307e\u3059\u3002
    '\u65b0\u3057\u3044\u30ce\u30fc\u30c9\u3068\u3057\u3066\u5f37\u5236\u7684\u306b\u4f5c\u6210'\u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u53ef\u80fd\u3067\u306a\u3051\u308c\u3070\u3001\u65e2\u5b58\u306e\u30ce\u30fc\u30c9\u304c\u66f4\u65b0\u3055\u308c\u307e\u3059\u3002 - -ImportCSVUIVisualPanel2.nodes.assign-ids-checkbox=\u5f37\u5236\u7684\u306b\u65b0\u898f\u30ce\u30fc\u30c9\u3068\u3057\u3066\u751f\u6210 - -ImportCSVUIVisualPanel2.edges.description=\u65b0\u3057\u3044\u5217\u306f\u7279\u5b9a\u306e\u30bf\u30a4\u30d7\u3067\u751f\u6210\u3055\u308c\u307e\u3059\u3002
    \u3042\u3063\u3066\u3082\u306a\u304f\u3068\u3082\u751f\u6210\u3055\u308c\u305fid\u304c\u5272\u308a\u5f53\u3066\u3089\u308c\u307e\u3059\u3002
    \u8fba\u306f\u30bd\u30fc\u30b9\u53ca\u3073\u30bf\u30fc\u30b2\u30c3\u30c8\u30ce\u30fc\u30c9\u306eid\u3092\u6301\u3063\u305f'Source'\u53ca\u3073'Target'\u5217\u3092\u5fc5\u8981\u3068\u3057\u307e\u3059\u3002\u4f55\u3082\u884c\u306b\u5145\u5f53\u3055\u308c\u306a\u3051\u308c\u3070\u7121\u8996\u3055\u308c\u307e\u3059\u3002
    'Type'\u5217\u304c\u306a\u3051\u308c\u3070\u3059\u3079\u3066\u306e\u8fba\u306f\u6709\u5411\u306b\u306a\u308a\u307e\u3059\u3002
    \u8fba\u304c\u65e2\u5b58\u306e\u5834\u5408\u3001\u5c5e\u6027\u306f\u7121\u8996\u3055\u308c\u307e\u3059\u304c\u3001\u91cd\u307f\u306f\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002(\u6307\u5b9a\u304c\u306a\u3051\u308c\u3070\u91cd\u307f\=1) - -ImportCSVUIVisualPanel2.edges.create-new-nodes-checkbox=\u6b20\u843d\u30ce\u30fc\u30c9\u3092\u751f\u6210 - -SearchReplaceUI.regexReplaceCheckBox.text=\u6b63\u898f\u8868\u73fe\u306e\u7f6e\u63db - -SearchReplaceUI.columnsToSearchLabel.text=\u691c\u7d22/\u7f6e\u63db\u3059\u308b\u5217 - -MergeNodeDuplicatesUI.description=\u9802\u70b9\u306e\u91cd\u8907\u306f\u81ea\u52d5\u7684\u306b\u691c\u51fa\u3055\u308c\uff11\u3064\u306e\u5217\u306b\u4f75\u5408\u3055\u308c\u307e\u3059\u3002
    \u9802\u70b9\u306e\u91cd\u8907\uff11\u7d44\u306b\u3064\u304d\uff11\u3064\u65b0\u898f\u306e\u9802\u70b9\u304c\u540c\u8272\u3001\u540c\u30b5\u30a4\u30ba\u3001\u305d\u306e\u7fa4\u306e\u4e2d\u306e\u7b2c\uff11\u9802\u70b9\u306e\u4f4d\u7f6e\u306b\u751f\u6210\u3055\u308c\u307e\u3059\u3002
    \u8fba\u306f\u65b0\u305f\u306a\u9802\u70b9\u306b\u5272\u308a\u5f53\u3066\u3089\u308c\u307e\u3059\u3002
    \u5404\u5217\u306f\u884c\u306e\u5024\u3092\uff11\u3064\u306e\u5024\u306b\u6e1b\u3089\u3059\u3068\u3044\u3046\u6240\u5b9a\u306e\u6226\u7565\u3092\u7528\u3044\u307e\u3059\u3002
    \u968e\u5c64\u306f\u7121\u8996\u3055\u308c\u307e\u3059\u3002 - -MergeNodeDuplicatesUI.noDuplicatesText=\u91cd\u8907\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\uff01 - -MergeNodeDuplicatesUI.duplicateGroupsNumber={0} \u500b\u306e\u91cd\u8907\u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f\uff01 - -MergeNodeDuplicatesUI.deleteMergedNodesText=\u4f75\u5408\u3057\u305f\u9802\u70b9\u3092\u6d88\u53bb - -MergeNodeDuplicatesUI.configurationText=\u69cb\u6210\u3059\u308b - -MergeNodeDuplicatesUI.caseSensitiveText=\u5927\u6587\u5b57\u3068\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3059\u308b - -MergeNodeDuplicatesUI.baseColumnText=\u91cd\u8907\u691c\u77e5\u306e\u57fa\u790e\u5217\: +ClearEdgesUI.deleteDirectedCheckbox.text=\u6709\u5411\u8fba\u3092\u524a\u9664\u3059\u308b +ClearEdgesUI.descriptionLabel.text=\u524a\u9664\u3059\u308b\u30a8\u30c3\u30b8\u306e\u7a2e\u985e: +ClearEdgesUI.deleteUndirectedChekbox.text=\u7121\u5411\u30a8\u30c3\u30b8\u3092\u524a\u9664\u3059\u308b +AddEdgeToGraphUI.descriptionLabel.text=\u65b0\u898f\u8fba\u306e\u7a2e\u985e\u3001\u30bd\u30fc\u30b9\u3001\u30bf\u30fc\u30b2\u30c3\u30c8\u3092\u9078\u629e\u3002 +AddEdgeToGraphUI.directedRadioButton.text=\u6709\u5411 +AddEdgeToGraphUI.undirectedRadioButton.text=\u7121\u5411 +AddEdgeToGraphUI.sourceNodeLabel.text=\u30bd\u30fc\u30b9\u30ce\u30fc\u30c9: +AddEdgeToGraphUI.targetNodeLabel.text=\u30bf\u30fc\u30b2\u30c3\u30c8\u30ce\u30fc\u30c9: +# AddEdgeToGraphUI.edgeTypeLabel.text=Edge Kind: +SearchReplaceUI.searchLabel.text=\u691c\u7d22: +SearchReplaceUI.replaceLabel.text=\u7f6e\u63db: +SearchReplaceUI.matchWholeValueCheckBox.text=\u5024\u5168\u4f53\u306e\u4e00\u81f4\u306e\u307f +SearchReplaceUI.caseSensitiveCheckBox.text=\u5927\u6587\u5b57\u3068\u5c0f\u6587\u5b57\u3092\u533a\u5225 +SearchReplaceUI.normalSearchModeRadioButton.text=\u901a\u5e38\u691c\u7d22 +SearchReplaceUI.regexSearchModeRadioButton.text=\u6b63\u898f\u8868\u73fe\u691c\u7d22 +SearchReplaceUI.findNextButton.text=\u6b21\u3092\u691c\u7d22 +SearchReplaceUI.replaceButton.text=\u7f6e\u63db +SearchReplaceUI.replaceAllButton.text=\u3059\u3079\u3066\u3092\u7f6e\u63db +SearchReplaceUI.descriptionLabel.text.nodes=\u30ce\u30fc\u30c9\u306e\u30c6\u30fc\u30d6\u30eb\u3092\u4f7f\u7528\u3057\u305f\u691c\u7d22 +SearchReplaceUI.descriptionLabel.text.edges=\u8fba\u30c6\u30fc\u30d6\u30eb\u3092\u691c\u7d22 +SearchReplaceUI.searchText.text= +SearchReplaceUI.replaceText.text= +SearchReplaceUI.resultLabel.text=\u4e00\u81f4\u7d50\u679c\u3092\u691c\u7d22: +SearchReplaceUI.resultText.contentType=text/html +SearchReplaceUI.not.found="{0}"\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f +SearchReplaceUI.regexReplacementError=\u7f6e\u63db\u6587\u5b57\u5217\u306e\u6b63\u898f\u8868\u73fe\u304c\u4e0d\u6b63\u78ba\u3067\u3059 +SearchReplaceUI.dialog.title.error=\u30a8\u30e9\u30fc +SearchReplaceUI.replacements.count.message={0}\u4ef6\u3092\u7f6e\u63db +SearchReplaceUI.column=\u5217:'' {0} '' +SearchReplaceUI.allColumns=--\u5168\u5217-- + +SearchReplaceUI.regexReplaceCheckBox.text=\u6b63\u898f\u8868\u73fe\u306e\u7f6e\u63db +SearchReplaceUI.columnsToSearchLabel.text=\u691c\u7d22/\u7f6e\u63db\u3059\u308b\u5217 + +MergeNodeDuplicatesUI.description=\u9802\u70b9\u306e\u91cd\u8907\u306f\u81ea\u52d5\u7684\u306b\u691c\u51fa\u3055\u308c\uff11\u3064\u306e\u5217\u306b\u4f75\u5408\u3055\u308c\u307e\u3059\u3002
    \u9802\u70b9\u306e\u91cd\u8907\uff11\u7d44\u306b\u3064\u304d\uff11\u3064\u65b0\u898f\u306e\u9802\u70b9\u304c\u540c\u8272\u3001\u540c\u30b5\u30a4\u30ba\u3001\u305d\u306e\u7fa4\u306e\u4e2d\u306e\u7b2c\uff11\u9802\u70b9\u306e\u4f4d\u7f6e\u306b\u751f\u6210\u3055\u308c\u307e\u3059\u3002
    \u8fba\u306f\u65b0\u305f\u306a\u9802\u70b9\u306b\u5272\u308a\u5f53\u3066\u3089\u308c\u307e\u3059\u3002
    \u5404\u5217\u306f\u884c\u306e\u5024\u3092\uff11\u3064\u306e\u5024\u306b\u6e1b\u3089\u3059\u3068\u3044\u3046\u6240\u5b9a\u306e\u6226\u7565\u3092\u7528\u3044\u307e\u3059\u3002
    \u968e\u5c64\u306f\u7121\u8996\u3055\u308c\u307e\u3059\u3002 +MergeNodeDuplicatesUI.noDuplicatesText=\u91cd\u8907\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\uff01 +MergeNodeDuplicatesUI.duplicateGroupsNumber={0} \u500b\u306e\u91cd\u8907\u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f\uff01 +MergeNodeDuplicatesUI.deleteMergedNodesText=\u4f75\u5408\u3057\u305f\u9802\u70b9\u3092\u6d88\u53bb +MergeNodeDuplicatesUI.configurationText=\u69cb\u6210\u3059\u308b +MergeNodeDuplicatesUI.caseSensitiveText=\u5927\u6587\u5b57\u3068\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3059\u308b +MergeNodeDuplicatesUI.baseColumnText=\u91cd\u8907\u691c\u77e5\u306e\u57fa\u790e\u5217: + +# ManageColumnEstimatorsUI.estimator.AVERAGE=Average +# ManageColumnEstimatorsUI.estimator.MEDIAN=Median +# ManageColumnEstimatorsUI.estimator.MIN=Min +# ManageColumnEstimatorsUI.estimator.MAX=Max +# ManageColumnEstimatorsUI.estimator.FIRST=First +# ManageColumnEstimatorsUI.estimator.LAST=Last diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_ko.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_ko.properties new file mode 100644 index 0000000000..aed4a738b9 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_ko.properties @@ -0,0 +1,45 @@ + + +SearchReplaceUI.replaceAllButton.text=\uBAA8\uB450 \uB300\uCCB4 +AddEdgeToGraphUI.directedRadioButton.text=\uBC29\uD5A5\uC131 +SearchReplaceUI.matchWholeValueCheckBox.text=\uC804\uCCB4 \uAC12\uC774 \uC77C\uCE58\uD558\uB294 \uACBD\uC6B0\uB9CC +SearchReplaceUI.columnsToSearchLabel.text=\uAC80\uC0C9/\uB300\uCCB4\uD560 \uC5F4: +SearchReplaceUI.replacements.count.message={0}\uAC1C\uAC00 \uB300\uCCB4\uB410\uC2B5\uB2C8\uB2E4 +ManageColumnEstimatorsUI.estimator.FIRST=\uCC98\uC74C +MergeNodeDuplicatesUI.description=\uB178\uB4DC \uC911\uBCF5\uC740 \uC5F4\uC744 \uAE30\uC900\uC73C\uB85C \uD558\uC5EC \uC790\uB3D9\uC73C\uB85C \uD0D0\uC9C0 \uBC0F \uBCD1\uD569\uB429\uB2C8\uB2E4.
    \uAC01 \uB178\uB4DC \uC911\uBCF5 \uADF8\uB8F9\uC5D0 \uB300\uD574, \uADF8\uB8F9\uC758 \uCCAB \uBC88\uC9F8 \uB178\uB4DC\uC640 \uAC19\uC740 \uC0C9\uC0C1, \uD06C\uAE30 \uBC0F \uC704\uCE58\uB97C \uAC16\uB294 \uD558\uB098\uC758 \uC0C8 \uB178\uB4DC\uAC00 \uC0DD\uC131\uB429\uB2C8\uB2E4.
    \uC0C8 \uB178\uB4DC\uC5D0 \uC5E3\uC9C0\uAC00 \uBC30\uC815\uB429\uB2C8\uB2E4.
    \uAC01 \uC5F4\uC740 \uC5EC\uB7EC \uD589 \uAC12\uB4E4\uC744 \uD558\uB098\uB85C \uC904\uC774\uAE30 \uC704\uD574 \uC8FC\uC5B4\uC9C4 \uBC29\uBC95\uC744 \uC0AC\uC6A9\uD569\uB2C8\uB2E4. +MergeNodeDuplicatesUI.caseSensitiveText=\uB300\uC18C\uBB38\uC790 \uAD6C\uBD84 +SearchReplaceUI.regexReplaceCheckBox.text=\uC815\uADDC\uC2DD \uB300\uCCB4 +SearchReplaceUI.not.found="{0}"\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4 +MergeNodeDuplicatesUI.baseColumnText=\uC911\uBCF5\uC744 \uD0D0\uC9C0\uD560 \uAE30\uC900 \uC5F4: +AddEdgeToGraphUI.descriptionLabel.text=\uC0C8\uB85C\uC6B4 \uC5E3\uC9C0 \uD0C0\uC785\uACFC \uC18C\uC2A4 \uBC0F \uD0C0\uAC9F \uB178\uB4DC \uC120\uD0DD: +SearchReplaceUI.normalSearchModeRadioButton.text=\uC77C\uBC18 \uAC80\uC0C9 +MergeNodeDuplicatesUI.duplicateGroupsNumber={0} \uAC1C\uC758 \uC911\uBCF5\uC774 \uC788\uC2B5\uB2C8\uB2E4! +AddEdgeToGraphUI.undirectedRadioButton.text=\uBE44\uBC29\uD5A5\uC131 +SearchReplaceUI.regexReplacementError=\uB300\uCCB4 \uBB38\uC790\uC5F4\uC774 \uC815\uADDC\uC2DD\uC5D0 \uB9DE\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4 +SearchReplaceUI.searchLabel.text=\uD0D0\uC0C9: +SearchReplaceUI.resultLabel.text=\uC77C\uCE58 \uACB0\uACFC \uCC3E\uAE30: +SearchReplaceUI.resultText.contentType=text/html +SearchReplaceUI.replaceButton.text=\uB300\uCCB4\uD558\uAE30 +MergeNodeDuplicatesUI.noDuplicatesText=\uC911\uBCF5\uC774 \uC5C6\uC2B5\uB2C8\uB2E4! +MergeNodeDuplicatesUI.deleteMergedNodesText=\uBCD1\uD569\uB41C \uB178\uB4DC \uC0AD\uC81C +ClearEdgesUI.deleteDirectedCheckbox.text=\uBC29\uD5A5\uC131 \uC5E3\uC9C0 \uC0AD\uC81C +ManageColumnEstimatorsUI.estimator.MAX=\uCD5C\uB313\uAC12 +AddEdgeToGraphUI.sourceNodeLabel.text=\uC18C\uC2A4 \uB178\uB4DC: +SearchReplaceUI.caseSensitiveCheckBox.text=\uB300\uC18C\uBB38\uC790 \uAD6C\uBD84 +ManageColumnEstimatorsUI.estimator.LAST=\uB9C8\uC9C0\uB9C9 +SearchReplaceUI.replaceLabel.text=\uBC14\uAFB8\uAE30 \uC18C\uC2A4: +AddEdgeToGraphUI.targetNodeLabel.text=\uD0C0\uAC9F \uB178\uB4DC: +SearchReplaceUI.descriptionLabel.text.edges=\uC5E3\uC9C0 \uD14C\uC774\uBE14\uC5D0\uC11C \uCC3E\uAE30 +ClearEdgesUI.descriptionLabel.text=\uC0AD\uC81C\uD560 \uC5E3\uC9C0 \uC720\uD615: +AddEdgeToGraphUI.edgeTypeLabel.text=\uC5E3\uC9C0 \uC885\uB958: +ClearEdgesUI.deleteUndirectedChekbox.text=\uBE44\uBC29\uD5A5\uC131 \uC5E3\uC9C0 \uC0AD\uC81C +SearchReplaceUI.descriptionLabel.text.nodes=\uB178\uB4DC \uD14C\uC774\uBE14\uC5D0\uC11C \uCC3E\uAE30 +MergeNodeDuplicatesUI.configurationText=\uAD6C\uC131\uD558\uAE30 +SearchReplaceUI.findNextButton.text=\uB2E4\uC74C \uCC3E\uAE30 +ManageColumnEstimatorsUI.estimator.MEDIAN=\uC911\uAC04\uAC12 +ManageColumnEstimatorsUI.estimator.MIN=\uCD5C\uC19F\uAC12 +ManageColumnEstimatorsUI.estimator.AVERAGE=\uD3C9\uADE0 +SearchReplaceUI.column=\uC5F4: ''{0}'' +SearchReplaceUI.dialog.title.error=\uC624\uB958 +SearchReplaceUI.allColumns=--\uBAA8\uB4E0 \uC5F4-- +SearchReplaceUI.regexSearchModeRadioButton.text=\uC815\uADDC\uC2DD \uAC80\uC0C9 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_nl.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_nl.properties new file mode 100644 index 0000000000..2e7f8781d1 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_nl.properties @@ -0,0 +1,45 @@ +ClearEdgesUI.deleteDirectedCheckbox.text=Delete directed edges +ClearEdgesUI.descriptionLabel.text=Edge types to delete: +ClearEdgesUI.deleteUndirectedChekbox.text=Delete undirected edges +AddEdgeToGraphUI.descriptionLabel.text=Select the new edge type, source and target nodes: +AddEdgeToGraphUI.directedRadioButton.text=Gericht +AddEdgeToGraphUI.undirectedRadioButton.text=Ongericht +AddEdgeToGraphUI.sourceNodeLabel.text=Bronknoop: +AddEdgeToGraphUI.targetNodeLabel.text=Doelknoop: +AddEdgeToGraphUI.edgeTypeLabel.text=Edge Kind: +SearchReplaceUI.searchLabel.text=Zoeken: +SearchReplaceUI.replaceLabel.text=Vervangen door: +SearchReplaceUI.matchWholeValueCheckBox.text=Only match whole value +SearchReplaceUI.caseSensitiveCheckBox.text=Hoofdlettergevoelig +SearchReplaceUI.normalSearchModeRadioButton.text=Normaal zoeken +SearchReplaceUI.regexSearchModeRadioButton.text=Regular expression search +SearchReplaceUI.findNextButton.text=Volgende zoeken +SearchReplaceUI.replaceButton.text=Vervangen +SearchReplaceUI.replaceAllButton.text=Alles vervangen +SearchReplaceUI.descriptionLabel.text.nodes=Zoeken in knooptabel +SearchReplaceUI.descriptionLabel.text.edges=Searching on edges table +SearchReplaceUI.searchText.text= +SearchReplaceUI.replaceText.text= +SearchReplaceUI.resultLabel.text=Search match result: +SearchReplaceUI.resultText.contentType=tekst/html +SearchReplaceUI.not.found=Kan "{0}" niet vinden +SearchReplaceUI.regexReplacementError=The replacement string is not correct for the regular expression +SearchReplaceUI.dialog.title.error=Fout +SearchReplaceUI.replacements.count.message={0} ocurrences were replaced +SearchReplaceUI.column=Kolom: "{0}" +SearchReplaceUI.allColumns=--Alle kolommen-- +SearchReplaceUI.regexReplaceCheckBox.text=Regular expression replacement +SearchReplaceUI.columnsToSearchLabel.text=Columns to search/replace: +MergeNodeDuplicatesUI.description=Node duplicates are automatically detected and merged based on a column.
    For each group of node duplicates, one new node with the same color, size and position of the first node in the group is created.
    Edges are assigned to the new node.
    Each column uses the given strategy to reduce the rows values to one value. +MergeNodeDuplicatesUI.noDuplicatesText=No duplicates found! +MergeNodeDuplicatesUI.duplicateGroupsNumber={0} duplicates found! +MergeNodeDuplicatesUI.deleteMergedNodesText=Samengevoegde knopen verwijderen +MergeNodeDuplicatesUI.configurationText=Configureren +MergeNodeDuplicatesUI.caseSensitiveText=Hoofdlettergevoelig +MergeNodeDuplicatesUI.baseColumnText=Base column to detect duplicates: +ManageColumnEstimatorsUI.estimator.AVERAGE=Gemiddelde +ManageColumnEstimatorsUI.estimator.MEDIAN=Mediaan +ManageColumnEstimatorsUI.estimator.MIN=Minimum +ManageColumnEstimatorsUI.estimator.MAX=Maximum +ManageColumnEstimatorsUI.estimator.FIRST=Eerste +ManageColumnEstimatorsUI.estimator.LAST=Laatste diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_pt.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_pt.properties new file mode 100644 index 0000000000..6b7d4d4db6 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_pt.properties @@ -0,0 +1,43 @@ +ClearEdgesUI.deleteDirectedCheckbox.text=Apagar arestas dirigidas +ClearEdgesUI.descriptionLabel.text=Tipos de arestas a apagar: +ClearEdgesUI.deleteUndirectedChekbox.text=Apagar arestas n\u00E3o dirigidas +AddEdgeToGraphUI.descriptionLabel.text=Selecione um tipo para a nova aresta e os n\u00F3s origem e destino: +AddEdgeToGraphUI.directedRadioButton.text=Dirigida +AddEdgeToGraphUI.undirectedRadioButton.text=N\u00E3o dirigida +AddEdgeToGraphUI.sourceNodeLabel.text=N\u00F3 origem: +AddEdgeToGraphUI.targetNodeLabel.text=N\u00F3 destino: +AddEdgeToGraphUI.edgeTypeLabel.text=Tipo da aresta: +SearchReplaceUI.searchLabel.text=Busca: +SearchReplaceUI.replaceLabel.text=Substituir por: +SearchReplaceUI.matchWholeValueCheckBox.text=Somente valores completos +SearchReplaceUI.caseSensitiveCheckBox.text=Mai\u00FAsculas e min\u00FAsculas +SearchReplaceUI.normalSearchModeRadioButton.text=Busca normal +SearchReplaceUI.regexSearchModeRadioButton.text=Busca com express\u00E3o regular +SearchReplaceUI.findNextButton.text=Localizar pr\u00F3xima +SearchReplaceUI.replaceButton.text=Substituir +SearchReplaceUI.replaceAllButton.text=Substituir todos +SearchReplaceUI.descriptionLabel.text.nodes=A procurar na tabela de n\u00F3s +SearchReplaceUI.descriptionLabel.text.edges=A procurar na tabela de arestas +SearchReplaceUI.resultLabel.text=Resultado da busca: +SearchReplaceUI.resultText.contentType=text/html +SearchReplaceUI.not.found=N\u00E3o foi poss\u00EDvel encontrar "{0}" +SearchReplaceUI.regexReplacementError=A cadeia de substitui\u00E7\u00E3o n\u00E3o \u00E9 correta para a express\u00E3o regular +SearchReplaceUI.dialog.title.error=Erro +SearchReplaceUI.replacements.count.message={0} ocorr\u00EAncias foram substitu\u00EDdas +SearchReplaceUI.column=Coluna: ''{0}'' +SearchReplaceUI.allColumns=--Todas as colunas-- +SearchReplaceUI.regexReplaceCheckBox.text=Substituir usando express\u00E3o regular +SearchReplaceUI.columnsToSearchLabel.text=Colunas para buscar/substituir: +MergeNodeDuplicatesUI.noDuplicatesText=Nenhuma duplica\u00E7\u00E3o encontrada! +MergeNodeDuplicatesUI.duplicateGroupsNumber={0} duplica\u00E7\u00F5es encontradas! +MergeNodeDuplicatesUI.deleteMergedNodesText=Remover n\u00F3s duplicados +MergeNodeDuplicatesUI.configurationText=Configurar +MergeNodeDuplicatesUI.caseSensitiveText=Diferenciar mai\u00FAsculas e min\u00FAsculas +ManageColumnEstimatorsUI.estimator.AVERAGE=M\u00E9dia +ManageColumnEstimatorsUI.estimator.MEDIAN=Mediana +ManageColumnEstimatorsUI.estimator.MIN=M\u00EDnimo +ManageColumnEstimatorsUI.estimator.MAX=M\u00E1ximo +MergeNodeDuplicatesUI.description=N\u00F3s duplicados s\u00E3o automaticamente detetados e mesclados \u00E0 base do valor de uma coluna.
    Para cada grupo de n\u00F3s duplicados, ser\u00E1 criado um n\u00F3 com a mesma cor, tamanho e posi\u00E7\u00E3o do primeiro n\u00F3 do grupo.
    As arestas ser\u00E3o atribu\u00EDdas ao novo n\u00F3.
    Cada coluna usar\u00E1 a estrat\u00E9gia escolhida para reduzir os valores das linhas apenas a um valor. +MergeNodeDuplicatesUI.baseColumnText=Coluna base para a dete\u00E7\u00E3o de duplicatas: +ManageColumnEstimatorsUI.estimator.FIRST=Primeiro +ManageColumnEstimatorsUI.estimator.LAST=\u00DAltimo diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_pt_BR.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_pt_BR.properties index d3770b1223..261f9b11a6 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_pt_BR.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_pt_BR.properties @@ -1,134 +1,48 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# C\u00e9lio CJr , 2011. -# C\u00e9lio Faria Jr. , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-17 13\:07+0000\nLast-Translator\: C\u00e9lio Faria Jr. \nLanguage-Team\: Portuguese (Brazil) (http\://www.transifex.com/projects/p/gephi/language/pt_BR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt_BR\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -ClearEdgesUI.deleteDirectedCheckbox.text=Excluir arestas dirigidas - -ClearEdgesUI.descriptionLabel.text=Tipos de arestas a excluir\: - -ClearEdgesUI.deleteUndirectedChekbox.text=Excluir arestas n\u00e3o dirigidas - -AddEdgeToGraphUI.descriptionLabel.text=Selecione um tipo para a nova aresta e os n\u00f3s origem e destino\: - -AddEdgeToGraphUI.directedRadioButton.text=Dirigida - -AddEdgeToGraphUI.undirectedRadioButton.text=N\u00e3o dirigida - -AddEdgeToGraphUI.sourceNodeLabel.text=N\u00f3 origem\: - -AddEdgeToGraphUI.targetNodeLabel.text=N\u00f3 destino\: - -SearchReplaceUI.searchLabel.text=Busca\: - -SearchReplaceUI.replaceLabel.text=Substituir por\: - -SearchReplaceUI.matchWholeValueCheckBox.text=Somente valores completos - -SearchReplaceUI.caseSensitiveCheckBox.text=Mai\u00fasculas e min\u00fasculas - -SearchReplaceUI.normalSearchModeRadioButton.text=Busca normal - -SearchReplaceUI.regexSearchModeRadioButton.text=Busca com express\u00e3o regular - -SearchReplaceUI.findNextButton.text=Localizar pr\u00f3xima - -SearchReplaceUI.replaceButton.text=Substituir - -SearchReplaceUI.replaceAllButton.text=Substituir todos - -SearchReplaceUI.descriptionLabel.text.nodes=Buscando na tabela de n\u00f3s - -SearchReplaceUI.descriptionLabel.text.edges=Buscando na tabela de arestas - -SearchReplaceUI.resultLabel.text=Resultado da busca\: - -SearchReplaceUI.resultText.contentType=text/html - -SearchReplaceUI.not.found=N\u00e3o foi poss\u00edvel encontrar "{0}" - -SearchReplaceUI.regexReplacementError=O texto de substitui\u00e7\u00e3o n\u00e3o \u00e9 correto para a express\u00e3o regular - -SearchReplaceUI.dialog.title.error=Erro - -SearchReplaceUI.replacements.count.message={0} ocorr\u00eancias foram substitu\u00eddas - -SearchReplaceUI.column=Coluna\: ''{0}'' - -SearchReplaceUI.allColumns=--Todas as colunas-- - -ImportCSVUIWizardAction.name=Importar planilha - -ImportCSVUIVisualPanel1.name=Op\u00e7\u00f5es gerais - -ImportCSVUIVisualPanel1.comma=V\u00edrgula - -ImportCSVUIVisualPanel1.semicolon=Ponto e v\u00edrgula - -ImportCSVUIVisualPanel1.space=Espa\u00e7o - -ImportCSVUIVisualPanel1.tab=Tabula\u00e7\u00e3o - -ImportCSVUIVisualPanel1.nodes-table=Tabela de n\u00f3s - -ImportCSVUIVisualPanel1.edges-table=Tabela de arestas - -ImportCSVUIVisualPanel1.filechooser.csvDescription=CSV - -ImportCSVUIVisualPanel1.tableLabel.text=Tabela\: - -ImportCSVUIVisualPanel1.fileButton.text=... - -ImportCSVUIVisualPanel1.separatorLabel.text=Separador\: - -ImportCSVUIVisualPanel1.descriptionLabel.text=Escolha um arquivo CSV para importar\: - -ImportCSVUIVisualPanel1.previewLabel.text=Visualiza\u00e7\u00e3o\: - -ImportCSVUIVisualPanel1.charsetLabel.text=Codifica\u00e7\u00e3o de caracteres\: - -ImportCSVUIVisualPanel1.validation.invalid-file=Arquivo CSV inv\u00e1lido - -ImportCSVUIVisualPanel1.validation.no-columns=O arquivo n\u00e3o cont\u00e9m nenhuma coluna - -ImportCSVUIVisualPanel1.validation.repeated-columns=O arquivo n\u00e3o pode conter colunas com nomes repetidos - -ImportCSVUIVisualPanel1.validation.error=Erro - -ImportCSVUIVisualPanel1.validation.file-permissions-error=Um erro ocorreu ao ler o arquivo. Verifique se o arquivo n\u00e3o est\u00e1 em uso e voc\u00ea tem permiss\u00f5es. - -ImportCSVUIVisualPanel1.validation.edges.no-source-target-columns=A tabela de arestas precisa conter colunas chamadas 'Source' e 'Target' (contendo os ids dos n\u00f3s origem e destino). - -ImportCSVUIVisualPanel2.name=Configura\u00e7\u00f5es de importa\u00e7\u00e3o - -ImportCSVUIVisualPanel2.columnsLabel.text=Colunas importadas\: - -ImportCSVUIVisualPanel2.nodes.description=Novas colunas ser\u00e3o criadas com o tipo especificado.
    Se o id de um n\u00f3 n\u00e3o for especificado, um id gerado ser\u00e1 atribu\u00eddo a ele.
    A menos que a op\u00e7\u00e3o 'For\u00e7ar n\u00f3s a serem criados como novos' esteja habilitada, os dados dos n\u00f3s j\u00e1 existentes ser\u00e3o atualizados com os dados do arquivo CSV. - -ImportCSVUIVisualPanel2.nodes.assign-ids-checkbox=For\u00e7ar n\u00f3s a serem criados como novos - -ImportCSVUIVisualPanel2.edges.description=Novas colunas ser\u00e3o criadas com o tipo especificado.
    Se o id de uma aresta n\u00e3o for especificado, um id gerado ser\u00e1 atribu\u00eddo a ela.
    A tabela de arestas precisa conter colunas chamadas 'Source' e 'Target' com os ids dos n\u00f3s origem e destino. Se qualquer dos id n\u00e3o forem fornecidos em uma determinada linha, ela ser\u00e1 ignorada.
    Se n\u00e3o existir uma coluna 'Type' no arquivo, todas as arestas ser\u00e3o dirigidas.
    Se uma aresta j\u00e1 existir, seus atributos ser\u00e3o ignorados, mas seu peso ser\u00e1 alterado (caso o peso n\u00e3o seja especificado, ser\u00e1 utilizado peso\=1) - -ImportCSVUIVisualPanel2.edges.create-new-nodes-checkbox=Criar n\u00f3s inexistentes - -SearchReplaceUI.regexReplaceCheckBox.text=Substituir usando express\u00e3o regular - -SearchReplaceUI.columnsToSearchLabel.text=Colunas para buscar/substituir\: - -MergeNodeDuplicatesUI.description=N\u00f3s duplicados s\u00e3o automaticamente detectados e mesclados baseados no valor de uma coluna.
    Para cada grupos de n\u00f3s duplicados, ser\u00e1 criado um novo n\u00f3 com a mesma cor, tamanho e posi\u00e7\u00e3o do primeiro n\u00f3 do grupo.
    As arestas ser\u00e3o atribu\u00eddas ao novo n\u00f3.
    Cada coluna usar\u00e1 a estrat\u00e9gia escolhida para reduzir os valores das linhas a um valor apenas.
    A hierarquia ser\u00e1 ignorada. - -MergeNodeDuplicatesUI.noDuplicatesText=Nenhuma duplica\u00e7\u00e3o encontrada\! - -MergeNodeDuplicatesUI.duplicateGroupsNumber={0} duplica\u00e7\u00f5es encontradas\! - -MergeNodeDuplicatesUI.deleteMergedNodesText=Remover n\u00f3s duplicados - -MergeNodeDuplicatesUI.configurationText=Configurar - -MergeNodeDuplicatesUI.caseSensitiveText=Diferenciar mai\u00fasculas e min\u00fasculas - -MergeNodeDuplicatesUI.baseColumnText=Coluna-base para a detec\u00e7\u00e3o de duplicatas +ClearEdgesUI.deleteDirectedCheckbox.text=Excluir arestas dirigidas +ClearEdgesUI.descriptionLabel.text=Tipos de arestas a excluir: +ClearEdgesUI.deleteUndirectedChekbox.text=Excluir arestas nγo dirigidas +AddEdgeToGraphUI.descriptionLabel.text=Selecione um tipo para a nova aresta e os nσs origem e destino: +AddEdgeToGraphUI.directedRadioButton.text=Dirigida +AddEdgeToGraphUI.undirectedRadioButton.text=Nγo dirigida +AddEdgeToGraphUI.sourceNodeLabel.text=Nσ origem: +AddEdgeToGraphUI.targetNodeLabel.text=Nσ destino: +AddEdgeToGraphUI.edgeTypeLabel.text=Tipo da aresta: +SearchReplaceUI.searchLabel.text=Busca: +SearchReplaceUI.replaceLabel.text=Substituir por: +SearchReplaceUI.matchWholeValueCheckBox.text=Somente valores completos +SearchReplaceUI.caseSensitiveCheckBox.text=Maiϊsculas e minϊsculas +SearchReplaceUI.normalSearchModeRadioButton.text=Busca normal +SearchReplaceUI.regexSearchModeRadioButton.text=Busca com expressγo regular +SearchReplaceUI.findNextButton.text=Localizar prσxima +SearchReplaceUI.replaceButton.text=Substituir +SearchReplaceUI.replaceAllButton.text=Substituir todos +SearchReplaceUI.descriptionLabel.text.nodes=Buscando na tabela de nσs +SearchReplaceUI.descriptionLabel.text.edges=Buscando na tabela de arestas +SearchReplaceUI.searchText.text= +SearchReplaceUI.replaceText.text= +SearchReplaceUI.resultLabel.text=Resultado da busca: +SearchReplaceUI.resultText.contentType=text/html +SearchReplaceUI.not.found=Nγo foi possνvel encontrar "{0}" +SearchReplaceUI.regexReplacementError=O texto de substituiηγo nγo ι correto para a expressγo regular +SearchReplaceUI.dialog.title.error=Erro +SearchReplaceUI.replacements.count.message={0} ocorrκncias foram substituνdas +SearchReplaceUI.column=Coluna: ''{0}'' +SearchReplaceUI.allColumns=--Todas as colunas-- + +SearchReplaceUI.regexReplaceCheckBox.text=Substituir usando expressγo regular +SearchReplaceUI.columnsToSearchLabel.text=Colunas para buscar/substituir: + +MergeNodeDuplicatesUI.description=Nσs duplicados sγo automaticamente detectados e mesclados baseados no valor de uma coluna.
    Para cada grupos de nσs duplicados, serα criado um novo nσ com a mesma cor, tamanho e posiηγo do primeiro nσ do grupo.
    As arestas serγo atribuνdas ao novo nσ.
    Cada coluna usarα a estratιgia escolhida para reduzir os valores das linhas a um valor apenas.
    A hierarquia serα ignorada. +MergeNodeDuplicatesUI.noDuplicatesText=Nenhuma duplicaηγo encontrada! +MergeNodeDuplicatesUI.duplicateGroupsNumber={0} duplicaηυes encontradas! +MergeNodeDuplicatesUI.deleteMergedNodesText=Remover nσs duplicados +MergeNodeDuplicatesUI.configurationText=Configurar +MergeNodeDuplicatesUI.caseSensitiveText=Diferenciar maiϊsculas e minϊsculas +MergeNodeDuplicatesUI.baseColumnText=Coluna-base para a detecηγo de duplicatas + +ManageColumnEstimatorsUI.estimator.AVERAGE=Mιdia +ManageColumnEstimatorsUI.estimator.MEDIAN=Mediana +ManageColumnEstimatorsUI.estimator.MIN=Mνnimo +ManageColumnEstimatorsUI.estimator.MAX=Mαximo +ManageColumnEstimatorsUI.estimator.FIRST=Primeiro +ManageColumnEstimatorsUI.estimator.LAST=Ϊltimo diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_ro.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_ro.properties new file mode 100644 index 0000000000..cb1c7aed7a --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_ro.properties @@ -0,0 +1,45 @@ + + +SearchReplaceUI.matchWholeValueCheckBox.text=Potrive\u0219te doar valoarea complet\u0103 +SearchReplaceUI.replaceLabel.text=\u00CEnlocuie\u0219te cu: +SearchReplaceUI.searchLabel.text=C\u0103utare: +SearchReplaceUI.normalSearchModeRadioButton.text=C\u0103utare normal\u0103 +SearchReplaceUI.regexSearchModeRadioButton.text=C\u0103utare prin expresii regulate +ClearEdgesUI.descriptionLabel.text=Tipuri de muchii de \u0219ters: +ClearEdgesUI.deleteUndirectedChekbox.text=\u0218terge muchiile neorientate +AddEdgeToGraphUI.targetNodeLabel.text=Nod \u021Bint\u0103: +AddEdgeToGraphUI.edgeTypeLabel.text=Fel de muchie: +SearchReplaceUI.caseSensitiveCheckBox.text=Sensibil la majuscule +SearchReplaceUI.findNextButton.text=G\u0103se\u0219te urm\u0103torul +SearchReplaceUI.replaceButton.text=\u00CEnlocuie\u0219te +SearchReplaceUI.replaceAllButton.text=\u00CEnlocuie\u0219te tot +SearchReplaceUI.descriptionLabel.text.nodes=C\u0103utare \u00EEn tabelul de noduri +SearchReplaceUI.resultLabel.text=Rezultatul c\u0103ut\u0103rii: +SearchReplaceUI.not.found=Nu s-a putut g\u0103si "{0}" +SearchReplaceUI.regexReplacementError=\u0218irul de \u00EEnlocuire nu este corect pentru expresia regulat\u0103 +SearchReplaceUI.replacements.count.message={0} apari\u021Bii au fost \u00EEnlocuite +SearchReplaceUI.column=Coloana: ''{0}'' +SearchReplaceUI.regexReplaceCheckBox.text=\u00CEnlocuire prin expresie regulat\u0103 +SearchReplaceUI.columnsToSearchLabel.text=Coloane de c\u0103utat/\u00EEnlocuit: +MergeNodeDuplicatesUI.deleteMergedNodesText=\u0218terge nodurile \u00EEmbinate +MergeNodeDuplicatesUI.configurationText=Configureaz\u0103 +MergeNodeDuplicatesUI.caseSensitiveText=Sensibil la majuscule +ManageColumnEstimatorsUI.estimator.AVERAGE=Media +ManageColumnEstimatorsUI.estimator.MEDIAN=Mediana +ManageColumnEstimatorsUI.estimator.MIN=Min +ManageColumnEstimatorsUI.estimator.MAX=Max +ManageColumnEstimatorsUI.estimator.FIRST=Prima +ManageColumnEstimatorsUI.estimator.LAST=Ultima +AddEdgeToGraphUI.descriptionLabel.text=Selecteaz\u0103 noul tip de muchie \u0219i nodurile surs\u0103 \u0219i \u021Bint\u0103: +AddEdgeToGraphUI.directedRadioButton.text=Orientat +AddEdgeToGraphUI.undirectedRadioButton.text=Neorientat +ClearEdgesUI.deleteDirectedCheckbox.text=\u0218terge muchiile orientate +AddEdgeToGraphUI.sourceNodeLabel.text=Nod surs\u0103: +SearchReplaceUI.resultText.contentType=text/html +SearchReplaceUI.allColumns=--Toate coloanele-- +SearchReplaceUI.descriptionLabel.text.edges=C\u0103utare \u00EEn tabelul de muchii +MergeNodeDuplicatesUI.noDuplicatesText=Niciun duplicat g\u0103sit! +SearchReplaceUI.dialog.title.error=Eroare +MergeNodeDuplicatesUI.description=Nodurile duplicate sunt detectate automat \u0219i \u00EEmbinate pe baza unei coloane.
    Pentru fiecare grup de noduri duplicate este creat un nou nod de aceea\u0219i culoare, dimensiune \u0219i pozi\u021Bie ca primul nod din grup.
    Muchiile sunt atribuite nodului nou.
    Fiecare coloan\u0103 reduce valorile la una singur\u0103 folosind strategia dat\u0103. +MergeNodeDuplicatesUI.duplicateGroupsNumber={0} duplicate g\u0103site! +MergeNodeDuplicatesUI.baseColumnText=Coloana de baz\u0103 pentru detectarea duplicatelor: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_ru.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_ru.properties index 5d83311276..ad020637ec 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_ru.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_ru.properties @@ -1,135 +1,48 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# , 2011, 2012. -# FIRST AUTHOR , 2011. -# , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-03-31 12\:51+0000\nLast-Translator\: gephi \nLanguage-Team\: Russian (http\://www.transifex.com/projects/p/gephi/language/ru/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ru\nPlural-Forms\: nplurals\=3; plural\=(n%10\=\=1 && n%100\!\=11 ? 0 \: n%10>\=2 && n%10<\=4 && (n%100<10 || n%100>\=20) ? 1 \: 2);\n - -ClearEdgesUI.deleteDirectedCheckbox.text=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0440\u0451\u0431\u0440\u0430 - -ClearEdgesUI.descriptionLabel.text=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0442\u0438\u043f\u044b \u0440\u0451\u0431\u0435\u0440\: - -ClearEdgesUI.deleteUndirectedChekbox.text=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043d\u0435\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0440\u0451\u0431\u0440\u0430 - -AddEdgeToGraphUI.descriptionLabel.text=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0442\u0438\u043f \u043d\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u0431\u0440\u0430, \u0435\u0433\u043e \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0443\u0437\u043b\u044b\: - -AddEdgeToGraphUI.directedRadioButton.text=\u041e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 - -AddEdgeToGraphUI.undirectedRadioButton.text=\u041d\u0435\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 - -AddEdgeToGraphUI.sourceNodeLabel.text=\u041d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0443\u0437\u0435\u043b\: - -AddEdgeToGraphUI.targetNodeLabel.text=\u041a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0443\u0437\u0435\u043b\: - -SearchReplaceUI.searchLabel.text=\u041f\u043e\u0438\u0441\u043a\: - -SearchReplaceUI.replaceLabel.text=\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430\: - -SearchReplaceUI.matchWholeValueCheckBox.text=\u0418\u0441\u043a\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u044b\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f - -SearchReplaceUI.caseSensitiveCheckBox.text=\u0423\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0440\u0435\u0433\u0438\u0441\u0442\u0440 - -SearchReplaceUI.normalSearchModeRadioButton.text=\u041e\u0431\u044b\u0447\u043d\u044b\u0439 \u043f\u043e\u0438\u0441\u043a - -SearchReplaceUI.regexSearchModeRadioButton.text=\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f - -SearchReplaceUI.findNextButton.text=\u041d\u0430\u0439\u0442\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 - -SearchReplaceUI.replaceButton.text=\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c - -SearchReplaceUI.replaceAllButton.text=\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0432\u0441\u0435 - -SearchReplaceUI.descriptionLabel.text.nodes=\u0418\u0441\u043a\u0430\u0442\u044c \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0443\u0437\u043b\u043e\u0432 - -SearchReplaceUI.descriptionLabel.text.edges=\u0418\u0441\u043a\u0430\u0442\u044c \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0440\u0451\u0431\u0435\u0440 - -SearchReplaceUI.resultLabel.text=\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u043e\u0438\u0441\u043a\u0430\: - -SearchReplaceUI.resultText.contentType=text/html - -SearchReplaceUI.not.found=\u041d\u0435 \u043c\u043e\u0433\u0443 \u043d\u0430\u0439\u0442\u0438 "{0}" - -SearchReplaceUI.regexReplacementError=\u0421\u0442\u0440\u043e\u043a\u0430 \u0437\u0430\u043c\u0435\u043d\u044b \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 - -SearchReplaceUI.dialog.title.error=\u041e\u0448\u0438\u0431\u043a\u0430 - -SearchReplaceUI.replacements.count.message={0} \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u0431\u044b\u043b\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043e - -SearchReplaceUI.column=\u0421\u0442\u043e\u043b\u0431\u0435\u0446\: ''{0}'' - -SearchReplaceUI.allColumns=-- \u0412\u0441\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u044b-- - -ImportCSVUIWizardAction.name=\u0418\u043c\u043f\u043e\u0440\u0442 CSV \u0444\u0430\u0439\u043b\u0430 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 - -ImportCSVUIVisualPanel1.name=\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043e\u043f\u0446\u0438\u0438 - -ImportCSVUIVisualPanel1.comma=\u0437\u0430\u043f\u044f\u0442\u0430\u044f - -ImportCSVUIVisualPanel1.semicolon=\u0442\u043e\u0447\u043a\u0430 \u0441 \u0437\u0430\u043f\u044f\u0442\u043e\u0439 - -ImportCSVUIVisualPanel1.space=\u041f\u0440\u043e\u0431\u0435\u043b - -ImportCSVUIVisualPanel1.tab=\u0422\u0430\u0431\u0443\u043b\u044f\u0446\u0438\u044f - -ImportCSVUIVisualPanel1.nodes-table=\u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u0443\u0437\u043b\u043e\u0432 - -ImportCSVUIVisualPanel1.edges-table=\u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u0440\u0451\u0431\u0435\u0440 - -ImportCSVUIVisualPanel1.filechooser.csvDescription=ImportCSVUIVisualPanel1.filechooser.csvDescription - -ImportCSVUIVisualPanel1.tableLabel.text=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0442\u0430\u043b\u0438\u0446\u0443\: - -ImportCSVUIVisualPanel1.fileButton.text=ImportCSVUIVisualPanel1.fileButton.text - -ImportCSVUIVisualPanel1.separatorLabel.text=\u0420\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c\: - -ImportCSVUIVisualPanel1.descriptionLabel.text=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 CSV \u0444\u0430\u0439\u043b \u0434\u043b\u044f \u0438\u043c\u043f\u043e\u0440\u0442\u0430 - -ImportCSVUIVisualPanel1.previewLabel.text=\u041f\u0440\u0435\u0432\u044c\u044e\: - -ImportCSVUIVisualPanel1.charsetLabel.text=\u041a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430\: - -ImportCSVUIVisualPanel1.validation.invalid-file=\u041e\u0448\u0438\u0431\u043a\u0430 \u0432 CSV \u0444\u0430\u0439\u043b\u0435 - -ImportCSVUIVisualPanel1.validation.no-columns=\u0412 \u0444\u0430\u0439\u043b\u0435 \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u043d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430 - -ImportCSVUIVisualPanel1.validation.repeated-columns=\u0412 \u0444\u0430\u0439\u043b\u0435 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0441 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c\u0438 \u0438\u043c\u0435\u043d\u0430\u043c\u0438 - -ImportCSVUIVisualPanel1.validation.error=\u041e\u0448\u0438\u0431\u043a\u0430 - -ImportCSVUIVisualPanel1.validation.file-permissions-error=\u0412\u043e \u0432\u0440\u0435\u043c\u044f \u0447\u0442\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430. \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0444\u0430\u0439\u043b \r\n\u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u0438 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u043d\u0430 \u043d\u0435\u0433\u043e \u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 - -ImportCSVUIVisualPanel1.validation.edges.no-source-target-columns=\u0412 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0441 \u0440\u0451\u0431\u0440\u0430\u043c\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043a\u043e\u043b\u043e\u043d\u043a\u0438 'Source' \u0438 'Target', \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0435 id \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0443\u0437\u043b\u043e\u0432 - -ImportCSVUIVisualPanel2.name=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0430 - -ImportCSVUIVisualPanel2.columnsLabel.text=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u0434\u043b\u044f \u0438\u043c\u043f\u043e\u0440\u0442\u0430\: - -ImportCSVUIVisualPanel2.nodes.description=\u0412\u0441\u0435 \u043d\u0435\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u044b \u0438 \u0431\u0443\u0434\u0443\u0442 \u0438\u043c\u0435\u0442\u044c \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0439 \u0442\u0438\u043f.
    \u0415\u0441\u043b\u0438 \u0434\u043b\u044f \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u043d\u0435 \u0437\u0430\u0434\u0430\u043d id, \u0442\u043e \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438
    \u0415\u0441\u043b\u0438 \u043d\u0435 \u0441\u0442\u043e\u0438\u0442 \u0433\u0430\u043b\u043e\u0447\u043a\u0438 \u043d\u0430\u043f\u0440\u043e\u0442\u0438\u0432 '\u041f\u0440\u0438\u0441\u0432\u043e\u0438\u0442\u044c \u043d\u043e\u0432\u043e\u0451 id \u0432\u0435\u0440\u0448\u0438\u043d\u0435, \u0435\u0441\u043b\u0438 \u043e\u043d\u0430 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435', \u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u0432\u0435\u0440\u0448\u0438\u043d\u0430." - -ImportCSVUIVisualPanel2.nodes.assign-ids-checkbox=\u041f\u0440\u0438\u0441\u0432\u043e\u0438\u0442\u044c \u043d\u043e\u0432\u043e\u0435 id \u0432\u0435\u0440\u0448\u0438\u043d\u0435, \u0435\u0441\u043b\u0438 \u043e\u043d\u0430 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 - -ImportCSVUIVisualPanel2.edges.description=\u0412\u0441\u0435 \u043d\u0435\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u044b \u0438 \u0438\u043c\u0435\u0442\u044c \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0439 \u0442\u0438\u043f.
    \r\n\u0415\u0441\u043b\u0438 \u0443 \u0440\u0435\u0431\u0440\u0430 \u043d\u0435 \u0437\u0430\u0434\u0430\u043d id, \u0442\u043e \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438.
    \r\n\u0414\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0440\u0435\u0431\u0440\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b \u0441\u0442\u043e\u043b\u0431\u0446\u044b 'Source' \u0438 'Target', \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0435 id \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0432\u0435\u0440\u0448\u0438\u043d. \u0415\u0441\u043b\u0438 \u0434\u043b\u044f \u043a\u0430\u043a\u043e\u0433\u043e-\u0442\u043e \u0438\u0437 \u0440\u0451\u0431\u0435\u0440 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u044b \u044d\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0442\u043e \u043e\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u043e.
    \r\n\u0415\u0441\u043b\u0438 \u043d\u0435\u0442 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 'Type', \u0442\u043e \u0432\u0441\u0435 \u0440\u0451\u0431\u0440\u0430 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u044b \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438.
    \r\n\u0415\u0441\u043b\u0438 \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u0438\u0437 \u0440\u0451\u0431\u0435\u0440 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0438\u043b\u0438 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u043e, \u0442\u043e \u043e\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043e, \u043d\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u044b. - -ImportCSVUIVisualPanel2.edges.create-new-nodes-checkbox=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u0432\u0435\u0440\u0448\u0438\u043d\u0443, \u0435\u0441\u043b\u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0439 \u0438\u043b\u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u0433\u0440\u0430\u0444\u0430 \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 - -SearchReplaceUI.regexReplaceCheckBox.text=\u0417\u0430\u043c\u0435\u043d\u0430 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c - -SearchReplaceUI.columnsToSearchLabel.text=\u0421\u0442\u043e\u043b\u0431\u0446\u044b \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430/\u0437\u0430\u043c\u0435\u043d\u044b - -MergeNodeDuplicatesUI.description=\u0414\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u044b \u0443\u0437\u043b\u043e\u0432 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u044b\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0435 \u0438 \u0441\u043a\u043b\u0435\u0438\u0432\u0430\u044e\u0442\u0441\u044f.
    \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u043e\u0432 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0439 \u0443\u0437\u0435\u043b \u0441 \u0446\u0432\u0435\u0442\u043e\u043c, \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0438 \u043f\u043e\u0437\u0438\u0446\u0438\u0435\u0439, \u0432\u0437\u044f\u0442\u044b\u043c\u0438 \u0443 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0443\u0437\u043b\u0430 \u0432 \u0433\u0440\u0443\u043f\u043f\u0435.
    \u0420\u0451\u0431\u0440\u0430 \u043f\u0435\u0440\u0435\u043d\u0430\u0437\u043d\u0430\u0447\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 \u0443\u0437\u0435\u043b.
    \u0418\u0435\u0440\u0430\u0440\u0445\u0438\u044f \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f. - -MergeNodeDuplicatesUI.noDuplicatesText=\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u0439\u0442\u0438 \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u044b\! - -MergeNodeDuplicatesUI.duplicateGroupsNumber={0} \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u043e\u0432 \u043d\u0430\u0439\u0434\u0435\u043d\u043e\! - -MergeNodeDuplicatesUI.deleteMergedNodesText=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u043a\u043b\u0435\u0435\u043d\u044b\u0435 \u0432\u0435\u0440\u0448\u0438\u043d\u044b - -MergeNodeDuplicatesUI.configurationText=\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c - -MergeNodeDuplicatesUI.caseSensitiveText=\u0423\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 - -MergeNodeDuplicatesUI.baseColumnText=\u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043a\u043e\u043b\u043e\u043d\u043a\u0430 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u043e\u0432\: +ClearEdgesUI.deleteDirectedCheckbox.text=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0440\u0451\u0431\u0440\u0430 +ClearEdgesUI.descriptionLabel.text=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0442\u0438\u043f\u044b \u0440\u0451\u0431\u0435\u0440: +ClearEdgesUI.deleteUndirectedChekbox.text=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043d\u0435\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0440\u0451\u0431\u0440\u0430 +AddEdgeToGraphUI.descriptionLabel.text=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0442\u0438\u043f \u043d\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u0431\u0440\u0430, \u0435\u0433\u043e \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0443\u0437\u043b\u044b: +AddEdgeToGraphUI.directedRadioButton.text=\u041e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 +AddEdgeToGraphUI.undirectedRadioButton.text=\u041d\u0435\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 +AddEdgeToGraphUI.sourceNodeLabel.text=\u041d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0443\u0437\u0435\u043b: +AddEdgeToGraphUI.targetNodeLabel.text=\u041a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0443\u0437\u0435\u043b: +# AddEdgeToGraphUI.edgeTypeLabel.text=Edge Kind: +SearchReplaceUI.searchLabel.text=\u041f\u043e\u0438\u0441\u043a: +SearchReplaceUI.replaceLabel.text=\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430: +SearchReplaceUI.matchWholeValueCheckBox.text=\u0418\u0441\u043a\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u044b\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f +SearchReplaceUI.caseSensitiveCheckBox.text=\u0423\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0440\u0435\u0433\u0438\u0441\u0442\u0440 +SearchReplaceUI.normalSearchModeRadioButton.text=\u041e\u0431\u044b\u0447\u043d\u044b\u0439 \u043f\u043e\u0438\u0441\u043a +SearchReplaceUI.regexSearchModeRadioButton.text=\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f +SearchReplaceUI.findNextButton.text=\u041d\u0430\u0439\u0442\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 +SearchReplaceUI.replaceButton.text=\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c +SearchReplaceUI.replaceAllButton.text=\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0432\u0441\u0435 +SearchReplaceUI.descriptionLabel.text.nodes=\u0418\u0441\u043a\u0430\u0442\u044c \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0443\u0437\u043b\u043e\u0432 +SearchReplaceUI.descriptionLabel.text.edges=\u0418\u0441\u043a\u0430\u0442\u044c \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0440\u0451\u0431\u0435\u0440 +SearchReplaceUI.searchText.text= +SearchReplaceUI.replaceText.text= +SearchReplaceUI.resultLabel.text=\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u043e\u0438\u0441\u043a\u0430: +SearchReplaceUI.resultText.contentType=text/html +SearchReplaceUI.not.found=\u041d\u0435 \u043c\u043e\u0433\u0443 \u043d\u0430\u0439\u0442\u0438 "{0}" +SearchReplaceUI.regexReplacementError=\u0421\u0442\u0440\u043e\u043a\u0430 \u0437\u0430\u043c\u0435\u043d\u044b \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 +SearchReplaceUI.dialog.title.error=\u041e\u0448\u0438\u0431\u043a\u0430 +SearchReplaceUI.replacements.count.message={0} \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u0431\u044b\u043b\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043e +SearchReplaceUI.column=\u0421\u0442\u043e\u043b\u0431\u0435\u0446: ''{0}'' +SearchReplaceUI.allColumns=-- \u0412\u0441\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u044b-- + +SearchReplaceUI.regexReplaceCheckBox.text=\u0417\u0430\u043c\u0435\u043d\u0430 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c +SearchReplaceUI.columnsToSearchLabel.text=\u0421\u0442\u043e\u043b\u0431\u0446\u044b \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430/\u0437\u0430\u043c\u0435\u043d\u044b + +MergeNodeDuplicatesUI.description=\u0414\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u044b \u0443\u0437\u043b\u043e\u0432 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u044b\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0435 \u0438 \u0441\u043a\u043b\u0435\u0438\u0432\u0430\u044e\u0442\u0441\u044f.
    \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u043e\u0432 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0439 \u0443\u0437\u0435\u043b \u0441 \u0446\u0432\u0435\u0442\u043e\u043c, \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0438 \u043f\u043e\u0437\u0438\u0446\u0438\u0435\u0439, \u0432\u0437\u044f\u0442\u044b\u043c\u0438 \u0443 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0443\u0437\u043b\u0430 \u0432 \u0433\u0440\u0443\u043f\u043f\u0435.
    \u0420\u0451\u0431\u0440\u0430 \u043f\u0435\u0440\u0435\u043d\u0430\u0437\u043d\u0430\u0447\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 \u0443\u0437\u0435\u043b.
    \u0418\u0435\u0440\u0430\u0440\u0445\u0438\u044f \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f. +MergeNodeDuplicatesUI.noDuplicatesText=\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u0439\u0442\u0438 \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u044b! +MergeNodeDuplicatesUI.duplicateGroupsNumber={0} \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u043e\u0432 \u043d\u0430\u0439\u0434\u0435\u043d\u043e! +MergeNodeDuplicatesUI.deleteMergedNodesText=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u043a\u043b\u0435\u0435\u043d\u044b\u0435 \u0432\u0435\u0440\u0448\u0438\u043d\u044b +MergeNodeDuplicatesUI.configurationText=\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c +MergeNodeDuplicatesUI.caseSensitiveText=\u0423\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 +MergeNodeDuplicatesUI.baseColumnText=\u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043a\u043e\u043b\u043e\u043d\u043a\u0430 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u043e\u0432: + +# ManageColumnEstimatorsUI.estimator.AVERAGE=Average +# ManageColumnEstimatorsUI.estimator.MEDIAN=Median +# ManageColumnEstimatorsUI.estimator.MIN=Min +# ManageColumnEstimatorsUI.estimator.MAX=Max +# ManageColumnEstimatorsUI.estimator.FIRST=First +# ManageColumnEstimatorsUI.estimator.LAST=Last diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_th.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_th.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_th.properties @@ -0,0 +1 @@ + diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_tr.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_tr.properties new file mode 100644 index 0000000000..a6e1146f7e --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_tr.properties @@ -0,0 +1,45 @@ +ClearEdgesUI.deleteDirectedCheckbox.text=Delete directed edges +ClearEdgesUI.descriptionLabel.text=Edge types to delete: +ClearEdgesUI.deleteUndirectedChekbox.text=Delete undirected edges +AddEdgeToGraphUI.descriptionLabel.text=Select the new edge type, source and target nodes: +AddEdgeToGraphUI.directedRadioButton.text=Yφnlό +AddEdgeToGraphUI.undirectedRadioButton.text=Yφnsόz +AddEdgeToGraphUI.sourceNodeLabel.text=Source node: +AddEdgeToGraphUI.targetNodeLabel.text=Target node: +AddEdgeToGraphUI.edgeTypeLabel.text=Edge Kind: +SearchReplaceUI.searchLabel.text=Search: +SearchReplaceUI.replaceLabel.text=Replace with: +SearchReplaceUI.matchWholeValueCheckBox.text=Only match whole value +SearchReplaceUI.caseSensitiveCheckBox.text=Case sensitive +SearchReplaceUI.normalSearchModeRadioButton.text=Normal search +SearchReplaceUI.regexSearchModeRadioButton.text=Regular expression search +SearchReplaceUI.findNextButton.text=Find next +SearchReplaceUI.replaceButton.text=Replace +SearchReplaceUI.replaceAllButton.text=Replace all +SearchReplaceUI.descriptionLabel.text.nodes=Searching on nodes table +SearchReplaceUI.descriptionLabel.text.edges=Searching on edges table +SearchReplaceUI.searchText.text= +SearchReplaceUI.replaceText.text= +SearchReplaceUI.resultLabel.text=Search match result: +SearchReplaceUI.resultText.contentType=text/html +SearchReplaceUI.not.found=Could not find "{0}" +SearchReplaceUI.regexReplacementError=The replacement string is not correct for the regular expression +SearchReplaceUI.dialog.title.error=Error +SearchReplaceUI.replacements.count.message={0} ocurrences were replaced +SearchReplaceUI.column=Column: ''{0}'' +SearchReplaceUI.allColumns=--All columns-- +SearchReplaceUI.regexReplaceCheckBox.text=Regular expression replacement +SearchReplaceUI.columnsToSearchLabel.text=Columns to search/replace: +MergeNodeDuplicatesUI.description=Node duplicates are automatically detected and merged based on a column.
    For each group of node duplicates, one new node with the same color, size and position of the first node in the group is created.
    Edges are assigned to the new node.
    Each column uses the given strategy to reduce the rows values to one value. +MergeNodeDuplicatesUI.noDuplicatesText=No duplicates found! +MergeNodeDuplicatesUI.duplicateGroupsNumber={0} duplicates found! +MergeNodeDuplicatesUI.deleteMergedNodesText=Delete merged nodes +MergeNodeDuplicatesUI.configurationText=Configure +MergeNodeDuplicatesUI.caseSensitiveText=Case sensitive +MergeNodeDuplicatesUI.baseColumnText=Base column to detect duplicates: +ManageColumnEstimatorsUI.estimator.AVERAGE=Ortalama +ManageColumnEstimatorsUI.estimator.MEDIAN=Ortanca +ManageColumnEstimatorsUI.estimator.MIN=Min +ManageColumnEstimatorsUI.estimator.MAX=Max +ManageColumnEstimatorsUI.estimator.FIRST=First +ManageColumnEstimatorsUI.estimator.LAST=Last diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_zh_CN.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_zh_CN.properties index 782f20acbc..f21e6fd36f 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_zh_CN.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_zh_CN.properties @@ -1,133 +1,45 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Xi-Nian Zuo , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-03-15 09\:13+0000\nLast-Translator\: Xi-Nian Zuo \nLanguage-Team\: Chinese (China) (http\://www.transifex.com/projects/p/gephi/language/zh_CN/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: zh_CN\nPlural-Forms\: nplurals\=1; plural\=0;\n - ClearEdgesUI.deleteDirectedCheckbox.text=\u5220\u9664\u6709\u5411\u8fb9 - ClearEdgesUI.descriptionLabel.text=\u8981\u5220\u9664\u7684\u8fb9\u7684\u7c7b\u578b\uff1a - ClearEdgesUI.deleteUndirectedChekbox.text=\u5220\u9664\u65e0\u5411\u8fb9 - AddEdgeToGraphUI.descriptionLabel.text=\u9009\u62e9\u65b0\u7684\u8fb9\u7684\u7c7b\u578b\uff0c\u6e90\u8282\u70b9\u548c\u76ee\u6807\u8282\u70b9\uff1a - AddEdgeToGraphUI.directedRadioButton.text=\u6709\u5411\u7684 - AddEdgeToGraphUI.undirectedRadioButton.text=\u65e0\u5411\u7684 - AddEdgeToGraphUI.sourceNodeLabel.text=\u6e90\u8282\u70b9\uff1a - AddEdgeToGraphUI.targetNodeLabel.text=\u76ee\u6807\u8282\u70b9\uff1a - +AddEdgeToGraphUI.edgeTypeLabel.text=\u8FB9\u79CD\u7C7B\uFF1A SearchReplaceUI.searchLabel.text=\u641c\u7d22\uff1a - SearchReplaceUI.replaceLabel.text=\u66ff\u6362\u4e3a\uff1a - SearchReplaceUI.matchWholeValueCheckBox.text=\u4ec5\u5339\u914d\u6240\u6709\u6570\u503c - SearchReplaceUI.caseSensitiveCheckBox.text=\u533a\u5206\u5927\u5c0f\u5199 - SearchReplaceUI.normalSearchModeRadioButton.text=\u666e\u901a\u641c\u7d22 - SearchReplaceUI.regexSearchModeRadioButton.text=\u652f\u6301\u6b63\u5219\u8868\u8fbe\u5f0f\u7684\u641c\u7d22 - SearchReplaceUI.findNextButton.text=\u67e5\u627e\u4e0b\u4e00\u4e2a - SearchReplaceUI.replaceButton.text=\u66ff\u6362 - SearchReplaceUI.replaceAllButton.text=\u66ff\u6362\u6240\u6709 - SearchReplaceUI.descriptionLabel.text.nodes=\u641c\u7d22\u8282\u70b9\u8868 - SearchReplaceUI.descriptionLabel.text.edges=\u641c\u7d22\u8fb9\u5217\u8868 - +SearchReplaceUI.searchText.text= +SearchReplaceUI.replaceText.text= SearchReplaceUI.resultLabel.text=\u641c\u7d22\u5339\u914d\u7ed3\u679c\uff1a - SearchReplaceUI.resultText.contentType=\u6587\u672c\u7f16\u8f91\u5668 - SearchReplaceUI.not.found=\u627e\u4e0d\u5230\u201c{0}\u201d - SearchReplaceUI.regexReplacementError=\u8981\u66ff\u6362\u7684\u5b57\u7b26\u4e0e\u6b63\u5219\u8868\u8fbe\u5f0f\u4e0d\u5339\u914d - SearchReplaceUI.dialog.title.error=\u9519\u8bef - SearchReplaceUI.replacements.count.message={0}\u88ab\u66ff\u6362 - SearchReplaceUI.column=\u5217\uff1a\u201c{0}\u201d - SearchReplaceUI.allColumns=--\u6240\u6709\u5217-- - -ImportCSVUIWizardAction.name=\u8f93\u5165\u7535\u5b50\u8868\u683c - -ImportCSVUIVisualPanel1.name=\u5e38\u89c4\u9009\u9879 - -ImportCSVUIVisualPanel1.comma=\u9017\u53f7 - -ImportCSVUIVisualPanel1.semicolon=\u5206\u53f7 - -ImportCSVUIVisualPanel1.space=\u7a7a\u683c - -ImportCSVUIVisualPanel1.tab=\u5236\u8868\u7b26Tab - -ImportCSVUIVisualPanel1.nodes-table=\u8282\u70b9\u8868\u683c - -ImportCSVUIVisualPanel1.edges-table=\u8fb9\u8868\u683c - -ImportCSVUIVisualPanel1.filechooser.csvDescription=CSV - -ImportCSVUIVisualPanel1.tableLabel.text=\u5982\u8868\u683c\uff1a - -ImportCSVUIVisualPanel1.fileButton.text=\u2026\u2026 - -ImportCSVUIVisualPanel1.separatorLabel.text=\u5206\u9694\u7b26\uff1a - -ImportCSVUIVisualPanel1.descriptionLabel.text=\u9009\u62e9\u4e00\u4e2aCSV\u6587\u4ef6\u8f93\u5165\uff1a - -ImportCSVUIVisualPanel1.previewLabel.text=\u9884\u89c8\uff1a - -ImportCSVUIVisualPanel1.charsetLabel.text=\u683c\u5f0f\uff1a - -ImportCSVUIVisualPanel1.validation.invalid-file=\u65e0\u6548\u7684CSV\u6587\u4ef6 - -ImportCSVUIVisualPanel1.validation.no-columns=\u6587\u4ef6\u4e0d\u5305\u542b\u4efb\u4f55\u5217 - -ImportCSVUIVisualPanel1.validation.repeated-columns=\u6587\u4ef6\u4e0d\u5305\u542b\u91cd\u590d\u7684\u540d\u5b57 - -ImportCSVUIVisualPanel1.validation.error=\u9519\u8bef - -ImportCSVUIVisualPanel1.validation.file-permissions-error=\u8bfb\u6587\u4ef6\u65f6\u62a5\u9519\u3002\u786e\u8ba4\u6587\u4ef6\u662f\u5426\u6b63\u5728\u88ab\u4f7f\u7528\uff0c\u5e76\u786e\u4fdd\u4f60\u6709\u6743\u9650\u3002 - -ImportCSVUIVisualPanel1.validation.edges.no-source-target-columns=\u8fb9\u8868\u683c\u9700\u8981\u4e00\u4e2a\u5305\u542b\u8282\u70b9\u6807\u53f7\u7684\u201c\u6e90\u201d\u548c\u201c\u76ee\u6807\u201d\u5217\u3002 - -ImportCSVUIVisualPanel2.name=\u8f93\u5165\u8bbe\u7f6e - -ImportCSVUIVisualPanel2.columnsLabel.text=\u8f93\u5165\u5217\uff1a - -ImportCSVUIVisualPanel2.nodes.description=\u521b\u5efa\u65b0\u7684\u7279\u6b8a\u79cd\u7c7b\u7684\u5217\u3002
    \u5982\u679c\u4e22\u5931\u6807\u53f7\uff0c\u5206\u914d\u4e00\u4e2a\u65b0\u7684\u6807\u53f7\u3002
    \u9664\u975e\u6fc0\u6d3b\u9009\u9879\u201c\u5f3a\u5236\u521b\u5efa\u65b0\u7684\u8282\u70b9\u201d\uff0c\u5426\u5219\u4f1a\u4e0d\u4f1a\u66f4\u65b0\u5b58\u5728\u7684\u8282\u70b9\u3002 - -ImportCSVUIVisualPanel2.nodes.assign-ids-checkbox=\u5f3a\u5236\u521b\u5efa\u65b0\u7684\u8282\u70b9 - -ImportCSVUIVisualPanel2.edges.description=\u521b\u5efa\u65b0\u7684\u7279\u6b8a\u79cd\u7c7b\u7684\u5217\u3002
    \u5982\u679c\u4e22\u5931\u6807\u53f7\uff0c\u5206\u914d\u4e00\u4e2a\u65b0\u7684\u6807\u53f7\u3002
    \u8fb9\u9700\u8981\u586b\u5199\u4e86\u6e90\u8282\u70b9\u6807\u53f7\u548c\u76ee\u6807\u8282\u70b9\u6807\u53f7\u7684\u201c\u6e90\u201d\u548c\u201c\u76ee\u6807\u201d\u5217\u3002\u5982\u679c\u4e0d\u662f\u4ee5\u884c\u7684\u5f62\u5f0f\u63d0\u4f9b\uff0c\u5c06\u4f1a\u88ab\u7f3a\u7701\u3002
    \u5982\u679c\u6ca1\u63d0\u4f9b\u201c\u7c7b\u578b\u201d\u5217\uff0c\u6240\u6709\u7684\u8fb9\u5c06\u88ab\u5b9a\u4e49\u4e3a\u6709\u5411\u7684\u3002
    \u5982\u679c\u8fb9\u5df2\u7ecf\u5b58\u5728\uff0c\u5c5e\u6027\u5c06\u7f3a\u7701\uff0c\u4f46\u662f\u8981\u52a0\u4e0a\u5b83\u4eec\u7684\u6743\u91cd\uff08\u9ed8\u8ba4\u6743\u91cd\u4e3a1\uff09\u3002 - -ImportCSVUIVisualPanel2.edges.create-new-nodes-checkbox=\u521b\u5efa\u4e22\u5931\u7684jiedian - SearchReplaceUI.regexReplaceCheckBox.text=\u6b63\u5219\u8868\u8fbe\u5f0f\u66ff\u6362 - SearchReplaceUI.columnsToSearchLabel.text=\u641c\u7d22/\u66ff\u6362\u7684\u5217\uff1a - MergeNodeDuplicatesUI.description=\u81ea\u52a8\u68c0\u6d4b\u8282\u70b9\u91cd\u590d\u5e76\u5408\u5e76.
    \u5bf9\u6bcf\u4e00\u7ec4\u8282\u70b9\u590d\u5236, \u65b0\u8282\u70b9\u5c06\u4f1a\u548c\u8fd9\u4e00\u7ec4\u7684\u7b2c\u4e00\u4e2a\u8282\u70b9\u5177\u6709\u76f8\u540c\u989c\u8272\u3001\u5927\u5c0f\u548c\u4f4d\u7f6e.
    \u6bcf\u4e00\u5217\u4f7f\u7528\u4e0a\u8ff0\u7b56\u7565\u6765\u964d\u4f4e\u884c\u503c\u6570\u5230\u4e00\u4e2a\u503c.
    \u7b49\u7ea7\u662f\u5ffd\u7565\u7684. - -MergeNodeDuplicatesUI.noDuplicatesText=\u672a\u53d1\u73b0\u91cd\u590d\u7ed3\u70b9\! - -MergeNodeDuplicatesUI.duplicateGroupsNumber={0} \u4e2a\u8282\u70b9\u91cd\u590d\u53d1\u73b0\! - +MergeNodeDuplicatesUI.noDuplicatesText=\u672a\u53d1\u73b0\u91cd\u590d\u7ed3\u70b9! +MergeNodeDuplicatesUI.duplicateGroupsNumber={0} \u4e2a\u8282\u70b9\u91cd\u590d\u53d1\u73b0! MergeNodeDuplicatesUI.deleteMergedNodesText=\u5220\u9664\u5408\u5e76\u7684\u8282\u70b9 - MergeNodeDuplicatesUI.configurationText=\u914d\u7f6e - MergeNodeDuplicatesUI.caseSensitiveText=\u533a\u5206\u5927\u5c0f\u5199 - -MergeNodeDuplicatesUI.baseColumnText=\u57fa\u4e8e\u5217\u6765\u5220\u9664\u91cd\u590d\: +MergeNodeDuplicatesUI.baseColumnText=\u57fa\u4e8e\u5217\u6765\u5220\u9664\u91cd\u590d: +ManageColumnEstimatorsUI.estimator.AVERAGE=\u5e73\u5747 +ManageColumnEstimatorsUI.estimator.MEDIAN=\u4e2d\u95f4 +ManageColumnEstimatorsUI.estimator.MIN=\u6700\u5c0f +ManageColumnEstimatorsUI.estimator.MAX=\u6700\u5927 +ManageColumnEstimatorsUI.estimator.FIRST=\u9996\u5148 +ManageColumnEstimatorsUI.estimator.LAST=\u6700\u540e diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_zh_TW.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_zh_TW.properties new file mode 100644 index 0000000000..e410cce7e1 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/Bundle_zh_TW.properties @@ -0,0 +1,45 @@ +ClearEdgesUI.deleteDirectedCheckbox.text=Delete directed edges +ClearEdgesUI.descriptionLabel.text=Edge types to delete: +ClearEdgesUI.deleteUndirectedChekbox.text=Delete undirected edges +AddEdgeToGraphUI.descriptionLabel.text=Select the new edge type, source and target nodes: +AddEdgeToGraphUI.directedRadioButton.text=\u6709\u5411\u6027 +AddEdgeToGraphUI.undirectedRadioButton.text=\u7121\u5411\u6027 +AddEdgeToGraphUI.sourceNodeLabel.text=Source node: +AddEdgeToGraphUI.targetNodeLabel.text=Target node: +AddEdgeToGraphUI.edgeTypeLabel.text=Edge Kind: +SearchReplaceUI.searchLabel.text=Search: +SearchReplaceUI.replaceLabel.text=Replace with: +SearchReplaceUI.matchWholeValueCheckBox.text=Only match whole value +SearchReplaceUI.caseSensitiveCheckBox.text=Case sensitive +SearchReplaceUI.normalSearchModeRadioButton.text=Normal search +SearchReplaceUI.regexSearchModeRadioButton.text=Regular expression search +SearchReplaceUI.findNextButton.text=Find next +SearchReplaceUI.replaceButton.text=Replace +SearchReplaceUI.replaceAllButton.text=Replace all +SearchReplaceUI.descriptionLabel.text.nodes=Searching on nodes table +SearchReplaceUI.descriptionLabel.text.edges=Searching on edges table +SearchReplaceUI.searchText.text= +SearchReplaceUI.replaceText.text= +SearchReplaceUI.resultLabel.text=Search match result: +SearchReplaceUI.resultText.contentType=text/html +SearchReplaceUI.not.found=Could not find "{0}" +SearchReplaceUI.regexReplacementError=The replacement string is not correct for the regular expression +SearchReplaceUI.dialog.title.error=Error +SearchReplaceUI.replacements.count.message={0} ocurrences were replaced +SearchReplaceUI.column=Column: ''{0}'' +SearchReplaceUI.allColumns=--All columns-- +SearchReplaceUI.regexReplaceCheckBox.text=Regular expression replacement +SearchReplaceUI.columnsToSearchLabel.text=Columns to search/replace: +MergeNodeDuplicatesUI.description=Node duplicates are automatically detected and merged based on a column.
    For each group of node duplicates, one new node with the same color, size and position of the first node in the group is created.
    Edges are assigned to the new node.
    Each column uses the given strategy to reduce the rows values to one value. +MergeNodeDuplicatesUI.noDuplicatesText=No duplicates found! +MergeNodeDuplicatesUI.duplicateGroupsNumber={0} duplicates found! +MergeNodeDuplicatesUI.deleteMergedNodesText=Delete merged nodes +MergeNodeDuplicatesUI.configurationText=Configure +MergeNodeDuplicatesUI.caseSensitiveText=Case sensitive +MergeNodeDuplicatesUI.baseColumnText=Base column to detect duplicates: +ManageColumnEstimatorsUI.estimator.AVERAGE=Average +ManageColumnEstimatorsUI.estimator.MEDIAN=Median +ManageColumnEstimatorsUI.estimator.MIN=Min +ManageColumnEstimatorsUI.estimator.MAX=Max +ManageColumnEstimatorsUI.estimator.FIRST=First +ManageColumnEstimatorsUI.estimator.LAST=Last diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/cs.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/cs.po deleted file mode 100644 index a338e3b2e9..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/cs.po +++ /dev/null @@ -1,208 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# ZbynΔ›k Schwarz , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-02-27 15:36+0000\n" -"Last-Translator: ZbynΔ›k Schwarz \n" -"Language-Team: Czech (http://www.transifex.com/projects/p/gephi/language/cs/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: cs\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" - -msgid "ClearEdgesUI.deleteDirectedCheckbox.text" -msgstr "Smazat Ε™Γ­zenΓ© hrany" - -msgid "ClearEdgesUI.descriptionLabel.text" -msgstr "Typy hran ke smazΓ‘nΓ­:" - -msgid "ClearEdgesUI.deleteUndirectedChekbox.text" -msgstr "Smazat neΕ™Γ­zenΓ© hrany" - -msgid "AddEdgeToGraphUI.descriptionLabel.text" -msgstr "Vyberte novΓ½ typ hrany, zdrojovΓ© a cΓ­lovΓ© uzle:" - -msgid "AddEdgeToGraphUI.directedRadioButton.text" -msgstr "ŘízenΓ©" - -msgid "AddEdgeToGraphUI.undirectedRadioButton.text" -msgstr "NeΕ™Γ­zenΓ©" - -msgid "AddEdgeToGraphUI.sourceNodeLabel.text" -msgstr "ZdrojovΓ½ uzel:" - -msgid "AddEdgeToGraphUI.targetNodeLabel.text" -msgstr "CΓ­lovΓ½ uzel:" - -msgid "SearchReplaceUI.searchLabel.text" -msgstr "Hledat:" - -msgid "SearchReplaceUI.replaceLabel.text" -msgstr "Nahradit čím:" - -msgid "SearchReplaceUI.matchWholeValueCheckBox.text" -msgstr "Pouze shodovat celou hodnotu" - -msgid "SearchReplaceUI.caseSensitiveCheckBox.text" -msgstr "CitlivΓ© na velikost psΓ­men" - -msgid "SearchReplaceUI.normalSearchModeRadioButton.text" -msgstr "NormΓ‘lnΓ­ hledΓ‘nΓ­" - -msgid "SearchReplaceUI.regexSearchModeRadioButton.text" -msgstr "HledΓ‘nΓ­ regulΓ‘rnΓ­m vΓ½razem" - -msgid "SearchReplaceUI.findNextButton.text" -msgstr "NajΓ­t dalΕ‘Γ­" - -msgid "SearchReplaceUI.replaceButton.text" -msgstr "Nahradit" - -msgid "SearchReplaceUI.replaceAllButton.text" -msgstr "Nahradit vΕ‘e" - -msgid "SearchReplaceUI.descriptionLabel.text.nodes" -msgstr "Hledat v tabulce uzlΕ―" - -msgid "SearchReplaceUI.descriptionLabel.text.edges" -msgstr "Hledat v tabulce hran" - -msgid "SearchReplaceUI.resultLabel.text" -msgstr "VΓ½sledky shody hledΓ‘nΓ­:" - -msgid "SearchReplaceUI.resultText.contentType" -msgstr "text/html" - -msgid "SearchReplaceUI.not.found" -msgstr "Nelze nalΓ©zt \"{0}\"" - -msgid "SearchReplaceUI.regexReplacementError" -msgstr "ŘetΔ›zec nahrazenΓ­ nenΓ­ pro regulΓ‘rnΓ­ vΓ½raz sprΓ‘vnΓ½" - -msgid "SearchReplaceUI.dialog.title.error" -msgstr "Chyba" - -msgid "SearchReplaceUI.replacements.count.message" -msgstr "{0} vΓ½skytΕ― bylo nahrazeno" - -msgid "SearchReplaceUI.column" -msgstr "Sloupec: ''{0}''" - -msgid "SearchReplaceUI.allColumns" -msgstr "--VΕ‘echny sloupce--" - -msgid "ImportCSVUIWizardAction.name" -msgstr "Importovat tabulky" - -msgid "ImportCSVUIVisualPanel1.name" -msgstr "ObecnΓ© moΕΎnosti" - -msgid "ImportCSVUIVisualPanel1.comma" -msgstr "ČÑrka" - -msgid "ImportCSVUIVisualPanel1.semicolon" -msgstr "StΕ™ednΓ­k" - -msgid "ImportCSVUIVisualPanel1.space" -msgstr "Mezera" - -msgid "ImportCSVUIVisualPanel1.tab" -msgstr "TabulΓ‘tor" - -msgid "ImportCSVUIVisualPanel1.nodes-table" -msgstr "Tabulka uzlΕ―" - -msgid "ImportCSVUIVisualPanel1.edges-table" -msgstr "Tabulka hran" - -msgid "ImportCSVUIVisualPanel1.filechooser.csvDescription" -msgstr "CSV" - -msgid "ImportCSVUIVisualPanel1.tableLabel.text" -msgstr "Jako tabulka:" - -msgid "ImportCSVUIVisualPanel1.fileButton.text" -msgstr "..." - -msgid "ImportCSVUIVisualPanel1.separatorLabel.text" -msgstr "OddΔ›lovač:" - -msgid "ImportCSVUIVisualPanel1.descriptionLabel.text" -msgstr "Zvolte soubor CSV k importu:" - -msgid "ImportCSVUIVisualPanel1.previewLabel.text" -msgstr "NΓ‘hled:" - -msgid "ImportCSVUIVisualPanel1.charsetLabel.text" -msgstr "ZnakovΓ‘ sada:" - -msgid "ImportCSVUIVisualPanel1.validation.invalid-file" -msgstr "NeplatnΓ½ soubor CSV" - -msgid "ImportCSVUIVisualPanel1.validation.no-columns" -msgstr "Soubor nemΓ‘ ΕΎΓ‘ndnΓ½ sloupec" - -msgid "ImportCSVUIVisualPanel1.validation.repeated-columns" -msgstr "Soubor nemΕ―ΕΎe mΓ­t opakovanΓ© nΓ‘zvy sloupcΕ―" - -msgid "ImportCSVUIVisualPanel1.validation.error" -msgstr "Chyba" - -msgid "ImportCSVUIVisualPanel1.validation.file-permissions-error" -msgstr "PΕ™i čtenΓ­ souboru doΕ‘lo k chybΔ›. UjistΔ›te se, ΕΎe soubor nenΓ­ pouΕΎΓ­vΓ‘n a ΕΎe mΓ‘te oprΓ‘vnΔ›nΓ­." - -msgid "ImportCSVUIVisualPanel1.validation.edges.no-source-target-columns" -msgstr "Tabulka hran potΕ™ebuje sloupce 'Source' a 'Target' s id uzlΕ―." - -msgid "ImportCSVUIVisualPanel2.name" -msgstr "Importovat nastavenΓ­" - -msgid "ImportCSVUIVisualPanel2.columnsLabel.text" -msgstr "ImportovanΓ© sloupce:" - -msgid "ImportCSVUIVisualPanel2.nodes.description" -msgstr "NovΓ© sloupce jsou vytvoΕ™eny pomocΓ­ určenΓ©ho typu.
    VytvoΕ™enΓ© id je pΕ™idΔ›leno, pokud chybΓ­.
    Pokud moΕΎnost 'Donutit uzly, aby byly vytvΓ‘Ε™eny jako novΓ©' nenΓ­ povolena, jiΕΎ existujΓ­cΓ­ uzle budou aktualizovΓ‘ny." - -msgid "ImportCSVUIVisualPanel2.nodes.assign-ids-checkbox" -msgstr "Donutit uzly, aby byly vytvΓ‘Ε™eny jako novΓ©" - -msgid "ImportCSVUIVisualPanel2.edges.description" -msgstr "NovΓ© sloupce jsou vytvoΕ™eny pomocΓ­ určenΓ©ho typu.
    VytvoΕ™enΓ© id je pΕ™idΔ›leno, pokud chybΓ­ nebo i kdyΕΎ existuje.
    Hrany potΕ™ebujΓ­ sloupce 'Source' a 'Target' s id zdrojovΓ©ho a cΓ­lovΓ©ho uzlu. Pokud kterΓ½koliv nenΓ­ pro Ε™Γ‘dek poskytnut, bude ignorovΓ‘n.
    Pokud nenΓ­ poskytnut ΕΎΓ‘dnΓ½ sloupec 'Type', vΕ‘echny hrany budou Ε™Γ­zenΓ©.
    Pokud hrana jiΕΎ existuje, budou vlastnosti ignorovΓ‘ny, ale jejich vΓ‘hy budou pΕ™idΓ‘ny (pokud nenΓ­ určeno, pak vΓ‘ha je 1)" - -msgid "ImportCSVUIVisualPanel2.edges.create-new-nodes-checkbox" -msgstr "VytvoΕ™it chybΔ›jΓ­cΓ­ uzle" - -msgid "SearchReplaceUI.regexReplaceCheckBox.text" -msgstr "NahrazenΓ­ regulΓ‘rnΓ­m vΓ½razem" - -msgid "SearchReplaceUI.columnsToSearchLabel.text" -msgstr "Sloupce k hledΓ‘nΓ­/nahrazenΓ­" - -msgid "MergeNodeDuplicatesUI.description" -msgstr "Kopie uzlΕ― jsou automaticky zjiΕ‘tΔ›ny a sloučeny na zΓ‘kladΔ› sloupce.
    Za kaΕΎdou skupinu kopiΓ­ uzlΕ―, bude vytvoΕ™en jeden se stejnou barvou, velikostΓ­ a umΓ­stΔ›nΓ­m jako prvnΓ­ uzel ve stejnΓ© skupinΔ›.
    Hrany jsou pΕ™idΔ›leny k novΓ©mu uzlu.
    KaΕΎdΓ½ sloupce pouΕΎΓ­vΓ‘ danou strategii ke snΓ­ΕΎenΓ­ hodnot Ε™Γ‘dkΕ― na jednu.
    Hierarchie je ignorovΓ‘na." - -msgid "MergeNodeDuplicatesUI.noDuplicatesText" -msgstr "Ε½Γ‘dnΓ© kopie nenalezeny!" - -msgid "MergeNodeDuplicatesUI.duplicateGroupsNumber" -msgstr "Nalezeno {0} kopiΓ­!" - -msgid "MergeNodeDuplicatesUI.deleteMergedNodesText" -msgstr "Smazat sloučenΓ© uzle" - -msgid "MergeNodeDuplicatesUI.configurationText" -msgstr "Nastavit" - -msgid "MergeNodeDuplicatesUI.caseSensitiveText" -msgstr "CitlivΓ© na velikost pΓ­smen" - -msgid "MergeNodeDuplicatesUI.baseColumnText" -msgstr "ZΓ‘kladnΓ­ sloupec pro zjiΕ‘Ε₯ovΓ‘nΓ­ kopiΓ­:" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/es.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/es.po deleted file mode 100644 index 6801c6cd34..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/es.po +++ /dev/null @@ -1,210 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Eduardo Ramos , 2011. -# FIRST AUTHOR , 2010. -# , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-03-31 12:38+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/gephi/language/es/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -msgid "ClearEdgesUI.deleteDirectedCheckbox.text" -msgstr "Eliminar aristas dirigidas" - -msgid "ClearEdgesUI.descriptionLabel.text" -msgstr "Tipos de aristas a eliminar:" - -msgid "ClearEdgesUI.deleteUndirectedChekbox.text" -msgstr "Eliminar aristas no dirigidas" - -msgid "AddEdgeToGraphUI.descriptionLabel.text" -msgstr "Selecciona un tipo para la nueva arista y un nodo origen y destino:" - -msgid "AddEdgeToGraphUI.directedRadioButton.text" -msgstr "Dirigida" - -msgid "AddEdgeToGraphUI.undirectedRadioButton.text" -msgstr "No dirigida" - -msgid "AddEdgeToGraphUI.sourceNodeLabel.text" -msgstr "Nodo origen:" - -msgid "AddEdgeToGraphUI.targetNodeLabel.text" -msgstr "Nodo destino:" - -msgid "SearchReplaceUI.searchLabel.text" -msgstr "BΓΊsqueda" - -msgid "SearchReplaceUI.replaceLabel.text" -msgstr "Reemplazar con:" - -msgid "SearchReplaceUI.matchWholeValueCheckBox.text" -msgstr "SΓ³lo valores completos" - -msgid "SearchReplaceUI.caseSensitiveCheckBox.text" -msgstr "Sensible a mayΓΊsculas" - -msgid "SearchReplaceUI.normalSearchModeRadioButton.text" -msgstr "BΓΊsqueda normal" - -msgid "SearchReplaceUI.regexSearchModeRadioButton.text" -msgstr "BΓΊsqueda con expresiΓ³n regular" - -msgid "SearchReplaceUI.findNextButton.text" -msgstr "Encontrar siguiente" - -msgid "SearchReplaceUI.replaceButton.text" -msgstr "Reemplazar" - -msgid "SearchReplaceUI.replaceAllButton.text" -msgstr "Reemplazar todo" - -msgid "SearchReplaceUI.descriptionLabel.text.nodes" -msgstr "Buscando en la tabla de nodos" - -msgid "SearchReplaceUI.descriptionLabel.text.edges" -msgstr "Buscando en la tabla de aristas" - -msgid "SearchReplaceUI.resultLabel.text" -msgstr "Resultado de la bΓΊsqueda:" - -msgid "SearchReplaceUI.resultText.contentType" -msgstr "text/html" - -msgid "SearchReplaceUI.not.found" -msgstr "No se pudo encontrar \"{0}\"" - -msgid "SearchReplaceUI.regexReplacementError" -msgstr "El texto de reemplazado no es correcto para la expresiΓ³n regular" - -msgid "SearchReplaceUI.dialog.title.error" -msgstr "Error" - -msgid "SearchReplaceUI.replacements.count.message" -msgstr "{0} ocurrencias fueron reemplazadas" - -msgid "SearchReplaceUI.column" -msgstr "Columna: ''{0}''" - -msgid "SearchReplaceUI.allColumns" -msgstr "--Todas columnas--" - -msgid "ImportCSVUIWizardAction.name" -msgstr "Importar hoja de cΓ‘lculo" - -msgid "ImportCSVUIVisualPanel1.name" -msgstr "Opciones generales" - -msgid "ImportCSVUIVisualPanel1.comma" -msgstr "Coma" - -msgid "ImportCSVUIVisualPanel1.semicolon" -msgstr "Punto y coma" - -msgid "ImportCSVUIVisualPanel1.space" -msgstr "Espacio" - -msgid "ImportCSVUIVisualPanel1.tab" -msgstr "Tabulador" - -msgid "ImportCSVUIVisualPanel1.nodes-table" -msgstr "Tabla de nodos" - -msgid "ImportCSVUIVisualPanel1.edges-table" -msgstr "Tabla de aristas" - -msgid "ImportCSVUIVisualPanel1.filechooser.csvDescription" -msgstr "CSV" - -msgid "ImportCSVUIVisualPanel1.tableLabel.text" -msgstr "Tabla:" - -msgid "ImportCSVUIVisualPanel1.fileButton.text" -msgstr "..." - -msgid "ImportCSVUIVisualPanel1.separatorLabel.text" -msgstr "Separador:" - -msgid "ImportCSVUIVisualPanel1.descriptionLabel.text" -msgstr "Escoge un archivo CSV a importar:" - -msgid "ImportCSVUIVisualPanel1.previewLabel.text" -msgstr "PrevisualizaciΓ³n:" - -msgid "ImportCSVUIVisualPanel1.charsetLabel.text" -msgstr "Conjunto de caracteres:" - -msgid "ImportCSVUIVisualPanel1.validation.invalid-file" -msgstr "Archivo CSV invΓ‘lido" - -msgid "ImportCSVUIVisualPanel1.validation.no-columns" -msgstr "El archivo no contiene ninguna columna" - -msgid "ImportCSVUIVisualPanel1.validation.repeated-columns" -msgstr "El archivo no puede tener nombres de columnas repetidos" - -msgid "ImportCSVUIVisualPanel1.validation.error" -msgstr "Error" - -msgid "ImportCSVUIVisualPanel1.validation.file-permissions-error" -msgstr "Un error ocurriΓ³ al leer el archivo. AsegΓΊrate de que el archivo no estΓ‘ en uso y tienes permisos" - -msgid "ImportCSVUIVisualPanel1.validation.edges.no-source-target-columns" -msgstr "Importar a la tabla de aristas requiere las columnas llamadas 'Source' y 'Target' con las ids de los nodos" - -msgid "ImportCSVUIVisualPanel2.name" -msgstr "ParΓ‘metros de importaciΓ³n:" - -msgid "ImportCSVUIVisualPanel2.columnsLabel.text" -msgstr "Importar columnas:" - -msgid "ImportCSVUIVisualPanel2.nodes.description" -msgstr "Las columnas no existentes serΓ‘n creadas con el tipo especificado.
    Si no se proporciona la id de un nodo, se le asignarΓ‘ una.
    A no ser que la opciΓ³n 'Asignar un nuevo id a un nodo cuando ya existe' estΓ© activada, los datos de los nodos ya existentes serΓ‘n actualizados con los datos del archivo CSV" - -msgid "ImportCSVUIVisualPanel2.nodes.assign-ids-checkbox" -msgstr "Forzar que los nodos sean creados nuevos" - -msgid "ImportCSVUIVisualPanel2.edges.description" -msgstr "Las columnas no existentes serΓ‘n creadas con el tipo especificado.
    Si no se proporciona la id de una arista o una arista con esa id ya existe, se le asignarΓ‘ una.
    Las aristas necesitan las columnas llamadas 'Source' y 'Target' con las ids de los nodos origen y destino. Si alguna no es proporcionada en una fila serΓ‘ ignorada.
    Si no se proporciona la columna 'Type', todas las aristas serΓ‘n dirigidas.
    Si una arista ya existe, sus atributos serΓ‘n ignorados, pero los pesos serΓ‘n sumados (peso 1 si no se especifica)" - -msgid "ImportCSVUIVisualPanel2.edges.create-new-nodes-checkbox" -msgstr "Crear nodos inexistentes" - -msgid "SearchReplaceUI.regexReplaceCheckBox.text" -msgstr "Reemplazar en modo expresiΓ³n regular" - -msgid "SearchReplaceUI.columnsToSearchLabel.text" -msgstr "Columnas en las que buscar/reemplazar:" - -msgid "MergeNodeDuplicatesUI.description" -msgstr "Los nodos duplicados son detectados y mezclados automΓ‘ticamente a partir de los valores de una columna.
    Para cada grupo de nodos duplicados, un nuevo nodo con el mismo color, tamaΓ±o y posiciΓ³n que el primer nodo del grupo es creado.
    Las aristas son asignadas al nuevo nodo.
    Cada columna utiliza la estrategia escogida para reducir los valores de las filas a un solo valor.
    La jerarquΓ­a es ignorada." - -msgid "MergeNodeDuplicatesUI.noDuplicatesText" -msgstr "Β‘No se encontraron duplicados!" - -msgid "MergeNodeDuplicatesUI.duplicateGroupsNumber" -msgstr "Β‘{0} duplicados encontrados!" - -msgid "MergeNodeDuplicatesUI.deleteMergedNodesText" -msgstr "Borrar nodos mezclados" - -msgid "MergeNodeDuplicatesUI.configurationText" -msgstr "Configurar" - -msgid "MergeNodeDuplicatesUI.caseSensitiveText" -msgstr "Sensible a mayΓΊsculas" - -msgid "MergeNodeDuplicatesUI.baseColumnText" -msgstr "Columna base para detectar duplicados:" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/fr.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/fr.po deleted file mode 100644 index 64b81fbc9a..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/fr.po +++ /dev/null @@ -1,210 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Eduardo Ramos , 2011. -# FIRST AUTHOR , 2010. -# , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-03-31 12:50+0000\n" -"Last-Translator: gephi \n" -"Language-Team: French (http://www.transifex.com/projects/p/gephi/language/fr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "ClearEdgesUI.deleteDirectedCheckbox.text" -msgstr "Supprimer liens dirigΓ©s" - -msgid "ClearEdgesUI.descriptionLabel.text" -msgstr "Types de liens Γ  supprimer :" - -msgid "ClearEdgesUI.deleteUndirectedChekbox.text" -msgstr "Supprimer liens non dirigΓ©s" - -msgid "AddEdgeToGraphUI.descriptionLabel.text" -msgstr "SΓ©lectionnez le type du lien créé, ses noeuds source et destination :" - -msgid "AddEdgeToGraphUI.directedRadioButton.text" -msgstr "DirigΓ©" - -msgid "AddEdgeToGraphUI.undirectedRadioButton.text" -msgstr "Non dirigΓ©" - -msgid "AddEdgeToGraphUI.sourceNodeLabel.text" -msgstr "Noeud source :" - -msgid "AddEdgeToGraphUI.targetNodeLabel.text" -msgstr "Noeud de destination :" - -msgid "SearchReplaceUI.searchLabel.text" -msgstr "Rechercher :" - -msgid "SearchReplaceUI.replaceLabel.text" -msgstr "Remplacer par :" - -msgid "SearchReplaceUI.matchWholeValueCheckBox.text" -msgstr "ChaΓne complΓ¨te" - -msgid "SearchReplaceUI.caseSensitiveCheckBox.text" -msgstr "Sensible Γ  la casse" - -msgid "SearchReplaceUI.normalSearchModeRadioButton.text" -msgstr "Recherche normale" - -msgid "SearchReplaceUI.regexSearchModeRadioButton.text" -msgstr "Recherche par expression rationnelle" - -msgid "SearchReplaceUI.findNextButton.text" -msgstr "Trouver suivant" - -msgid "SearchReplaceUI.replaceButton.text" -msgstr "Remplacer" - -msgid "SearchReplaceUI.replaceAllButton.text" -msgstr "Tout remplacer" - -msgid "SearchReplaceUI.descriptionLabel.text.nodes" -msgstr "Chercher parmi les noeuds" - -msgid "SearchReplaceUI.descriptionLabel.text.edges" -msgstr "Chercher parmi les liens" - -msgid "SearchReplaceUI.resultLabel.text" -msgstr "RΓ©sultat :" - -msgid "SearchReplaceUI.resultText.contentType" -msgstr "text/html" - -msgid "SearchReplaceUI.not.found" -msgstr "\"{0}\" introuvable" - -msgid "SearchReplaceUI.regexReplacementError" -msgstr "ChaΓ―ne de remplacement incorrecte pour l'expression rationnelle" - -msgid "SearchReplaceUI.dialog.title.error" -msgstr "Erreur" - -msgid "SearchReplaceUI.replacements.count.message" -msgstr "{0} ocurrences ont Γ©tΓ© remplacΓ©es" - -msgid "SearchReplaceUI.column" -msgstr "Colonne: ''{0}''" - -msgid "SearchReplaceUI.allColumns" -msgstr "--Toutes les colonnes--" - -msgid "ImportCSVUIWizardAction.name" -msgstr "Importer feuille de calcul" - -msgid "ImportCSVUIVisualPanel1.name" -msgstr "Options gΓ©nΓ©rales" - -msgid "ImportCSVUIVisualPanel1.comma" -msgstr "Virgule" - -msgid "ImportCSVUIVisualPanel1.semicolon" -msgstr "Point-virgule" - -msgid "ImportCSVUIVisualPanel1.space" -msgstr "Espace" - -msgid "ImportCSVUIVisualPanel1.tab" -msgstr "Tabulation" - -msgid "ImportCSVUIVisualPanel1.nodes-table" -msgstr "Table des noeuds" - -msgid "ImportCSVUIVisualPanel1.edges-table" -msgstr "Table des liens" - -msgid "ImportCSVUIVisualPanel1.filechooser.csvDescription" -msgstr "CSV" - -msgid "ImportCSVUIVisualPanel1.tableLabel.text" -msgstr "En tant que table :" - -msgid "ImportCSVUIVisualPanel1.fileButton.text" -msgstr "..." - -msgid "ImportCSVUIVisualPanel1.separatorLabel.text" -msgstr "SΓ©parateur :" - -msgid "ImportCSVUIVisualPanel1.descriptionLabel.text" -msgstr "Choisissez un fichier CSV Γ  importer :" - -msgid "ImportCSVUIVisualPanel1.previewLabel.text" -msgstr "PrΓ©visualisation :" - -msgid "ImportCSVUIVisualPanel1.charsetLabel.text" -msgstr "Encodage :" - -msgid "ImportCSVUIVisualPanel1.validation.invalid-file" -msgstr "Fichier CSV invalide" - -msgid "ImportCSVUIVisualPanel1.validation.no-columns" -msgstr "Le fichier n'a aucune colonne." - -msgid "ImportCSVUIVisualPanel1.validation.repeated-columns" -msgstr "Les noms de colonne doivent Γͺtre unique dans le fichier." - -msgid "ImportCSVUIVisualPanel1.validation.error" -msgstr "Erreur" - -msgid "ImportCSVUIVisualPanel1.validation.file-permissions-error" -msgstr "Erreur lors de la lecture du fichier. VΓ©rifiez qu'il n'est pas utilisΓ© et que vous avez les bonnes permissions." - -msgid "ImportCSVUIVisualPanel1.validation.edges.no-source-target-columns" -msgstr "La tables des liens nΓ©cessite les colonnes 'Source' et 'Target' contenant les ids des noeuds." - -msgid "ImportCSVUIVisualPanel2.name" -msgstr "ParamΓ¨tres d'import" - -msgid "ImportCSVUIVisualPanel2.columnsLabel.text" -msgstr "Colonnes importΓ©es :" - -msgid "ImportCSVUIVisualPanel2.nodes.description" -msgstr "Les nouvelles colonnes ont le type spΓ©cifiΓ©.
    Un identifiant est créé s'il est manquant.
    Les noeuds existants sont mis Γ  jour sauf si l'option 'Forcer les noeuds importΓ©s Γ  Γͺtre de nouveaux noeuds' est cochΓ©e." - -msgid "ImportCSVUIVisualPanel2.nodes.assign-ids-checkbox" -msgstr "Forcer les noeuds importΓ©s Γ  Γͺtre de nouveaux noeuds" - -msgid "ImportCSVUIVisualPanel2.edges.description" -msgstr "Les nouvelles colonnes ont le type spΓ©cifiΓ©.
    Un identifiant est créé s'il est manquant ou déjà présent.
    Les liens ont besoin de colonnes 'Source' et 'Target' contenant les ids des noeuds. Si une ligne n'en contient pas, elle est ignorΓ©.
    Sans colonne 'Type', les liens sont dirigΓ©s.
    Les attributs sont ignorΓ©s si un lien est dΓ©jΓ  prΓ©sent, mais leurs poids sont additionnΓ©s (poids=1 par dΓ©faut)" - -msgid "ImportCSVUIVisualPanel2.edges.create-new-nodes-checkbox" -msgstr "CrΓ©er les noeuds manquants" - -msgid "SearchReplaceUI.regexReplaceCheckBox.text" -msgstr "Remplacement par expression rationnelle" - -msgid "SearchReplaceUI.columnsToSearchLabel.text" -msgstr "Colonnes Γ  chercher/remplacer :" - -msgid "MergeNodeDuplicatesUI.description" -msgstr "Les noeuds en double sont automatiquement dΓ©tectΓ©s et fusionnΓ©s selon une colonne donnΓ©e.
    Pour chaque groupe de doublons, un nouveau noeud est créé ayant mΓͺme couleur, taille et position que le premier noeud du groupe.
    Les liens sont affectΓ©s au nouveau noeud.
    Chaque colonne utilise une stratΓ©gie donnΓ©e pour rΓ©duire les diffΓ©rentes valeurs Γ  une seule.
    La hiΓ©rarchie est ignorΓ©e." - -msgid "MergeNodeDuplicatesUI.noDuplicatesText" -msgstr "Aucun doublon trouvΓ©" - -msgid "MergeNodeDuplicatesUI.duplicateGroupsNumber" -msgstr "{0} doublons trouvΓ©s" - -msgid "MergeNodeDuplicatesUI.deleteMergedNodesText" -msgstr "Supprimer les noeuds fusionnΓ©s" - -msgid "MergeNodeDuplicatesUI.configurationText" -msgstr "Configurer" - -msgid "MergeNodeDuplicatesUI.caseSensitiveText" -msgstr "Sensible Γ  la casse" - -msgid "MergeNodeDuplicatesUI.baseColumnText" -msgstr "Colonne de base pour dΓ©tecter les doublons :" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/ja.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/ja.po deleted file mode 100644 index fe5c12035e..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/ja.po +++ /dev/null @@ -1,208 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011, 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-15 07:52+0000\n" -"Last-Translator: Siro Kida \n" -"Language-Team: Japanese (http://www.transifex.com/projects/p/gephi/language/ja/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ja\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "ClearEdgesUI.deleteDirectedCheckbox.text" -msgstr "ζœ‰ε‘θΎΊγ‚’ε‰Šι™€γ™γ‚‹" - -msgid "ClearEdgesUI.descriptionLabel.text" -msgstr "ε‰Šι™€γ™γ‚‹γ‚¨γƒƒγ‚Έγη¨ι‘ž:" - -msgid "ClearEdgesUI.deleteUndirectedChekbox.text" -msgstr "η„‘ε‘γ‚¨γƒƒγ‚Έγ‚’ε‰Šι™€γ™γ‚‹" - -msgid "AddEdgeToGraphUI.descriptionLabel.text" -msgstr "新規辺γη¨ι‘žγ€γ‚½γƒΌγ‚Ήγ€γ‚ΏγƒΌγ‚²γƒƒγƒˆγ‚’ιΈζŠžγ€‚" - -msgid "AddEdgeToGraphUI.directedRadioButton.text" -msgstr "ζœ‰ε‘" - -msgid "AddEdgeToGraphUI.undirectedRadioButton.text" -msgstr "焑向" - -msgid "AddEdgeToGraphUI.sourceNodeLabel.text" -msgstr "γ‚½γƒΌγ‚ΉγƒŽγƒΌγƒ‰:" - -msgid "AddEdgeToGraphUI.targetNodeLabel.text" -msgstr "γ‚ΏγƒΌγ‚²γƒƒγƒˆγƒŽγƒΌγƒ‰:" - -msgid "SearchReplaceUI.searchLabel.text" -msgstr "怜紒:" - -msgid "SearchReplaceUI.replaceLabel.text" -msgstr "η½ζ›:" - -msgid "SearchReplaceUI.matchWholeValueCheckBox.text" -msgstr "倀全体γδΈ€θ‡΄γγΏ" - -msgid "SearchReplaceUI.caseSensitiveCheckBox.text" -msgstr "ε€§ζ–‡ε­—γ¨ε°ζ–‡ε­—γ‚’εŒΊεˆ₯" - -msgid "SearchReplaceUI.normalSearchModeRadioButton.text" -msgstr "ι€šεΈΈζ€œη΄’" - -msgid "SearchReplaceUI.regexSearchModeRadioButton.text" -msgstr "正規葨現怜紒" - -msgid "SearchReplaceUI.findNextButton.text" -msgstr "ζ¬‘γ‚’ζ€œη΄’" - -msgid "SearchReplaceUI.replaceButton.text" -msgstr "η½ζ›" - -msgid "SearchReplaceUI.replaceAllButton.text" -msgstr "すべてをη½ζ›" - -msgid "SearchReplaceUI.descriptionLabel.text.nodes" -msgstr "γƒŽγƒΌγƒ‰γγƒ†γƒΌγƒ–γƒ«γ‚’δ½Ώη”¨γ—γŸζ€œη΄’" - -msgid "SearchReplaceUI.descriptionLabel.text.edges" -msgstr "θΎΊγƒ†γƒΌγƒ–γƒ«γ‚’ζ€œη΄’" - -msgid "SearchReplaceUI.resultLabel.text" -msgstr "δΈ€θ‡΄η΅ζžœγ‚’ζ€œη΄’:" - -msgid "SearchReplaceUI.resultText.contentType" -msgstr "text/html" - -msgid "SearchReplaceUI.not.found" -msgstr "\"{0}\"γŒθ¦‹γ€γ‹γ‚ŠγΎγ›γ‚“γ§γ—γŸ" - -msgid "SearchReplaceUI.regexReplacementError" -msgstr "η½ζ›ζ–‡ε­—εˆ—γζ­£θ¦θ‘¨ηΎγŒδΈζ­£η’Ίγ§γ™" - -msgid "SearchReplaceUI.dialog.title.error" -msgstr "エラー" - -msgid "SearchReplaceUI.replacements.count.message" -msgstr "{0}δ»Άγ‚’η½ζ›" - -msgid "SearchReplaceUI.column" -msgstr "εˆ—:'' {0} ''" - -msgid "SearchReplaceUI.allColumns" -msgstr "--ε…¨εˆ—--" - -msgid "ImportCSVUIWizardAction.name" -msgstr "γ‚Ήγƒ—γƒ¬γƒƒγƒ‰γ‚·γƒΌγƒˆγγ‚€γƒ³γƒγƒΌγƒˆ" - -msgid "ImportCSVUIVisualPanel1.name" -msgstr "η·εˆηš„γ‚ͺプション" - -msgid "ImportCSVUIVisualPanel1.comma" -msgstr "γ‚³γƒ³γƒž" - -msgid "ImportCSVUIVisualPanel1.semicolon" -msgstr "γ‚»γƒŸγ‚³γƒ­γƒ³" - -msgid "ImportCSVUIVisualPanel1.space" -msgstr "γ‚ΉγƒšγƒΌγ‚Ή" - -msgid "ImportCSVUIVisualPanel1.tab" -msgstr "γ‚Ώγƒ–" - -msgid "ImportCSVUIVisualPanel1.nodes-table" -msgstr "γƒŽγƒΌγƒ‰γƒ†γƒΌγƒ–γƒ«" - -msgid "ImportCSVUIVisualPanel1.edges-table" -msgstr "辺テーブル" - -msgid "ImportCSVUIVisualPanel1.filechooser.csvDescription" -msgstr "CSV" - -msgid "ImportCSVUIVisualPanel1.tableLabel.text" -msgstr "テーブルとして:" - -msgid "ImportCSVUIVisualPanel1.fileButton.text" -msgstr "..." - -msgid "ImportCSVUIVisualPanel1.separatorLabel.text" -msgstr "セパレータ:" - -msgid "ImportCSVUIVisualPanel1.descriptionLabel.text" -msgstr "γ‚€γƒ³γƒγƒΌγƒˆγ™γ‚‹CSVγƒ•γ‚‘γ‚€γƒ«γ‚’ιΈζŠž:" - -msgid "ImportCSVUIVisualPanel1.previewLabel.text" -msgstr "プレビγƒ₯γƒΌ:" - -msgid "ImportCSVUIVisualPanel1.charsetLabel.text" -msgstr "ζ–‡ε­—γ‚»γƒƒγƒˆ:" - -msgid "ImportCSVUIVisualPanel1.validation.invalid-file" -msgstr "η„‘εŠΉγͺCSVフゑむル" - -msgid "ImportCSVUIVisualPanel1.validation.no-columns" -msgstr "γƒ•γ‚‘γ‚€γƒ«γ«εˆ—γŒγ‚γ‚ŠγΎγ›γ‚“" - -msgid "ImportCSVUIVisualPanel1.validation.repeated-columns" -msgstr "γƒ•γ‚‘γ‚€γƒ«γ―ηΉ°γ‚ŠθΏ”γ—γŸεˆ—εγ‚’δ»˜γ‘γ‚‰γ‚ŒγΎγ›γ‚“γ€‚" - -msgid "ImportCSVUIVisualPanel1.validation.error" -msgstr "エラー" - -msgid "ImportCSVUIVisualPanel1.validation.file-permissions-error" -msgstr "フゑむルをθͺ­γΏθΎΌγ‚€γ¨γγ«γ‚¨γƒ©γƒΌγŒθ΅·γ“γ£γŸγ€‚γƒ•γ‚‘γ‚€γƒ«γŒδ½Ώη”¨δΈ­γ§γͺγ„γ‹γ‚’γ‚―γ‚»γ‚Ήθ¨±ε―γŒγ‚γ‚‹γ“γ¨γ‚’η’Ίθͺγ—てください。" - -msgid "ImportCSVUIVisualPanel1.validation.edges.no-source-target-columns" -msgstr "θΎΊγƒ†γƒΌγƒ–γƒ«γ«γ―γƒŽγƒΌγƒ‰IDγ‚’ζŒγ€\"γ‚½γƒΌγ‚Ή\"と\"γ‚ΏγƒΌγ‚²γƒƒγƒˆ\"εˆ—γŒεΏ…θ¦γ§γ™γ€‚" - -msgid "ImportCSVUIVisualPanel2.name" -msgstr "θ¨­εšγ‚’γ‚€γƒ³γƒγƒΌγƒˆ" - -msgid "ImportCSVUIVisualPanel2.columnsLabel.text" -msgstr "γ‚€γƒ³γƒγƒΌγƒˆγ—γŸεˆ—:" - -msgid "ImportCSVUIVisualPanel2.nodes.description" -msgstr "ζ–°γ—γ„εˆ—γ―η‰Ήεšγγ‚Ώγ‚€γƒ—γ§η”Ÿζˆγ•γ‚ŒγΎγ™γ€‚
    γͺγ‘γ‚Œγ°η”Ÿζˆγ•γ‚ŒγŸidγŒε‰²γ‚Šε½“γ¦γ‚‰γ‚ŒγΎγ™γ€‚
    'ζ–°γ—γ„γƒŽγƒΌγƒ‰γ¨γ—γ¦εΌ·εˆΆηš„γ«δ½œζˆ'γ‚ͺγƒ—γ‚·γƒ§γƒ³γŒε―θƒ½γ§γͺγ‘γ‚Œγ°γ€ζ—’ε­˜γγƒŽγƒΌγƒ‰γŒζ›΄ζ–°γ•γ‚ŒγΎγ™γ€‚" - -msgid "ImportCSVUIVisualPanel2.nodes.assign-ids-checkbox" -msgstr "εΌ·εˆΆηš„γ«ζ–°θ¦γƒŽγƒΌγƒ‰γ¨γ—γ¦η”Ÿζˆ" - -msgid "ImportCSVUIVisualPanel2.edges.description" -msgstr "ζ–°γ—γ„εˆ—γ―η‰Ήεšγγ‚Ώγ‚€γƒ—γ§η”Ÿζˆγ•γ‚ŒγΎγ™γ€‚
    あってもγͺγγ¨γ‚‚η”Ÿζˆγ•γ‚ŒγŸidγŒε‰²γ‚Šε½“γ¦γ‚‰γ‚ŒγΎγ™γ€‚
    θΎΊγ―γ‚½γƒΌγ‚ΉεŠγ³γ‚ΏγƒΌγ‚²γƒƒγƒˆγƒŽγƒΌγƒ‰γidγ‚’ζŒγ£γŸ'Source'及び'Target'εˆ—γ‚’εΏ…θ¦γ¨γ—γΎγ™γ€‚δ½•γ‚‚θ‘Œγ«ε……ε½“γ•γ‚Œγͺγ‘γ‚Œγ°η„‘θ¦–γ•γ‚ŒγΎγ™γ€‚
    'Type'εˆ—γŒγͺγ‘γ‚Œγ°γ™γΉγ¦γθΎΊγ―ζœ‰ε‘γ«γͺγ‚ŠγΎγ™γ€‚
    θΎΊγŒζ—’ε­˜γε ΄εˆγ€ε±žζ€§γ―η„‘θ¦–γ•γ‚ŒγΎγ™γŒγ€ι‡γΏγ―θΏ½εŠ γ•γ‚ŒγΎγ™γ€‚(ζŒ‡εšγŒγͺγ‘γ‚Œγ°ι‡γΏ=1)" - -msgid "ImportCSVUIVisualPanel2.edges.create-new-nodes-checkbox" -msgstr "ζ¬ θ½γƒŽγƒΌγƒ‰γ‚’η”Ÿζˆ" - -msgid "SearchReplaceUI.regexReplaceCheckBox.text" -msgstr "正規葨現γη½ζ›" - -msgid "SearchReplaceUI.columnsToSearchLabel.text" -msgstr "怜紒/η½ζ›γ™γ‚‹εˆ—" - -msgid "MergeNodeDuplicatesUI.description" -msgstr "ι ‚η‚Ήγι‡θ€‡γ―θ‡ͺε‹•ηš„γ«ζ€œε‡Ίγ•γ‚ŒοΌ‘γ€γεˆ—γ«δ½΅εˆγ•γ‚ŒγΎγ™γ€‚
    ι ‚η‚Ήγι‡θ€‡οΌ‘硄に぀き1぀新規γι ‚η‚ΉγŒεŒθ‰²γ€εŒγ‚΅γ‚€γ‚Ίγ€γγηΎ€γδΈ­γη¬¬οΌ‘ι ‚η‚Ήγδ½η½γ«η”Ÿζˆγ•γ‚ŒγΎγ™γ€‚
    θΎΊγ―ζ–°γŸγͺι ‚η‚Ήγ«ε‰²γ‚Šε½“γ¦γ‚‰γ‚ŒγΎγ™γ€‚
    ε„εˆ—γ―θ‘Œγε€€γ‚’1぀γε€€γ«ζΈ›γ‚‰γ™γ¨γ„う所εšγζˆ¦η•₯を用います。
    ιšŽε±€γ―η„‘θ¦–γ•γ‚ŒγΎγ™γ€‚" - -msgid "MergeNodeDuplicatesUI.noDuplicatesText" -msgstr "ι‡θ€‡γŒθ¦‹γ€γ‹γ‚ŠγΎγ›γ‚“οΌ" - -msgid "MergeNodeDuplicatesUI.duplicateGroupsNumber" -msgstr "{0} 個γι‡θ€‡γŒθ¦‹γ€γ‹γ‚ŠγΎγ—γŸοΌ" - -msgid "MergeNodeDuplicatesUI.deleteMergedNodesText" -msgstr "δ½΅εˆγ—γŸι ‚η‚Ήγ‚’ζΆˆεŽ»" - -msgid "MergeNodeDuplicatesUI.configurationText" -msgstr "ζ§‹ζˆγ™γ‚‹" - -msgid "MergeNodeDuplicatesUI.caseSensitiveText" -msgstr "ε€§ζ–‡ε­—γ¨ε°ζ–‡ε­—γ‚’εŒΊεˆ₯する" - -msgid "MergeNodeDuplicatesUI.baseColumnText" -msgstr "ι‡θ€‡ζ€œηŸ₯γεŸΊη€Žεˆ—:" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/org-gephi-datalab-plugin-manipulators-general-ui.pot b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/org-gephi-datalab-plugin-manipulators-general-ui.pot deleted file mode 100644 index dabd4b9085..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/org-gephi-datalab-plugin-manipulators-general-ui.pot +++ /dev/null @@ -1,222 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# Gephi Team , 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: Gephi 0.8\n" -"Report-Msgid-Bugs-To: gephi.team@lists.launchpad.net\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-05 14:52+0200\n" -"Last-Translator: Mathieu Bastian \n" -"Language-Team: English \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "ClearEdgesUI.deleteDirectedCheckbox.text" -msgstr "Delete directed edges" - -msgid "ClearEdgesUI.descriptionLabel.text" -msgstr "Edge types to delete:" - -msgid "ClearEdgesUI.deleteUndirectedChekbox.text" -msgstr "Delete undirected edges" - -msgid "AddEdgeToGraphUI.descriptionLabel.text" -msgstr "Select the new edge type, source and target nodes:" - -msgid "AddEdgeToGraphUI.directedRadioButton.text" -msgstr "Directed" - -msgid "AddEdgeToGraphUI.undirectedRadioButton.text" -msgstr "Undirected" - -msgid "AddEdgeToGraphUI.sourceNodeLabel.text" -msgstr "Source node:" - -msgid "AddEdgeToGraphUI.targetNodeLabel.text" -msgstr "Target node:" - -msgid "SearchReplaceUI.searchLabel.text" -msgstr "Search:" - -msgid "SearchReplaceUI.replaceLabel.text" -msgstr "Replace with:" - -msgid "SearchReplaceUI.matchWholeValueCheckBox.text" -msgstr "Only match whole value" - -msgid "SearchReplaceUI.caseSensitiveCheckBox.text" -msgstr "Case sensitive" - -msgid "SearchReplaceUI.normalSearchModeRadioButton.text" -msgstr "Normal search" - -msgid "SearchReplaceUI.regexSearchModeRadioButton.text" -msgstr "Regular expression search" - -msgid "SearchReplaceUI.findNextButton.text" -msgstr "Find next" - -msgid "SearchReplaceUI.replaceButton.text" -msgstr "Replace" - -msgid "SearchReplaceUI.replaceAllButton.text" -msgstr "Replace all" - -msgid "SearchReplaceUI.descriptionLabel.text.nodes" -msgstr "Searching on nodes table" - -msgid "SearchReplaceUI.descriptionLabel.text.edges" -msgstr "Searching on edges table" - -msgid "SearchReplaceUI.resultLabel.text" -msgstr "Search match result:" - -msgid "SearchReplaceUI.resultText.contentType" -msgstr "text/html" - -msgid "SearchReplaceUI.not.found" -msgstr "Could not find \"{0}\"" - -msgid "SearchReplaceUI.regexReplacementError" -msgstr "The replacement string is not correct for the regular expression" - -msgid "SearchReplaceUI.dialog.title.error" -msgstr "Error" - -msgid "SearchReplaceUI.replacements.count.message" -msgstr "{0} ocurrences were replaced" - -msgid "SearchReplaceUI.column" -msgstr "Column: ''{0}''" - -msgid "SearchReplaceUI.allColumns" -msgstr "--All columns--" - -msgid "ImportCSVUIWizardAction.name" -msgstr "Import spreadsheet" - -msgid "ImportCSVUIVisualPanel1.name" -msgstr "General options" - -msgid "ImportCSVUIVisualPanel1.comma" -msgstr "Comma" - -msgid "ImportCSVUIVisualPanel1.semicolon" -msgstr "Semicolon" - -msgid "ImportCSVUIVisualPanel1.space" -msgstr "Space" - -msgid "ImportCSVUIVisualPanel1.tab" -msgstr "Tab" - -msgid "ImportCSVUIVisualPanel1.nodes-table" -msgstr "Nodes table" - -msgid "ImportCSVUIVisualPanel1.edges-table" -msgstr "Edges table" - -msgid "ImportCSVUIVisualPanel1.filechooser.csvDescription" -msgstr "CSV" - -msgid "ImportCSVUIVisualPanel1.tableLabel.text" -msgstr "As table:" - -msgid "ImportCSVUIVisualPanel1.fileButton.text" -msgstr "..." - -msgid "ImportCSVUIVisualPanel1.separatorLabel.text" -msgstr "Separator:" - -msgid "ImportCSVUIVisualPanel1.descriptionLabel.text" -msgstr "Choose a CSV file to import:" - -msgid "ImportCSVUIVisualPanel1.previewLabel.text" -msgstr "Preview:" - -msgid "ImportCSVUIVisualPanel1.charsetLabel.text" -msgstr "Charset:" - -msgid "ImportCSVUIVisualPanel1.validation.invalid-file" -msgstr "Invalid CSV file" - -msgid "ImportCSVUIVisualPanel1.validation.no-columns" -msgstr "The file does not have any column" - -msgid "ImportCSVUIVisualPanel1.validation.repeated-columns" -msgstr "The file can't have repeated column names" - -msgid "ImportCSVUIVisualPanel1.validation.error" -msgstr "Error" - -msgid "ImportCSVUIVisualPanel1.validation.file-permissions-error" -msgstr "" -"An error happened when reading the file. Make sure the file is not in use " -"and you have permissions." - -msgid "ImportCSVUIVisualPanel1.validation.edges.no-source-target-columns" -msgstr "Edges table needs a 'Source' and 'Target' column with nodes ids." - -msgid "ImportCSVUIVisualPanel2.name" -msgstr "Import settings" - -msgid "ImportCSVUIVisualPanel2.columnsLabel.text" -msgstr "Imported columns:" - -msgid "ImportCSVUIVisualPanel2.nodes.description" -msgstr "" -"New columns are created with the specified type.
    A generated id " -"is assigned if missing.
    Unless the option 'Force nodes to be created as " -"new ones' is enabled, already existing nodes will be updated." - -msgid "ImportCSVUIVisualPanel2.nodes.assign-ids-checkbox" -msgstr "Force nodes to be created as new ones" - -msgid "ImportCSVUIVisualPanel2.edges.description" -msgstr "" -"New columns are created with the specified type.
    A generated id " -"is assigned if missing or existing.
    Edges need 'Source' and 'Target' " -"columns with the id of the source and target nodes. If any is not provided " -"for a row, it will be ignored.
    If no 'Type' column is provided, all " -"edges will be directed.
    If an edge already exists, attributes will be " -"ignored, but their weights will be added (weight=1 if not specified)" - -msgid "ImportCSVUIVisualPanel2.edges.create-new-nodes-checkbox" -msgstr "Create missing nodes" - -msgid "SearchReplaceUI.regexReplaceCheckBox.text" -msgstr "Regular expression replacement" - -msgid "SearchReplaceUI.columnsToSearchLabel.text" -msgstr "Columns to search/replace:" - -msgid "MergeNodeDuplicatesUI.description" -msgstr "" -"Node duplicates are automatically detected and merged based on a " -"column.
    For each group of node duplicates, one new node with the same " -"color, size and position of the first node in the group is created.
    Edges are assigned to the new node.
    Each column uses the given " -"strategy to reduce the rows values to one value.
    Hierarchy is ignored." - -msgid "MergeNodeDuplicatesUI.noDuplicatesText" -msgstr "No duplicates found!" - -msgid "MergeNodeDuplicatesUI.duplicateGroupsNumber" -msgstr "{0} duplicates found!" - -msgid "MergeNodeDuplicatesUI.deleteMergedNodesText" -msgstr "Delete merged nodes" - -msgid "MergeNodeDuplicatesUI.configurationText" -msgstr "Configure" - -msgid "MergeNodeDuplicatesUI.caseSensitiveText" -msgstr "Case sensitive" - -msgid "MergeNodeDuplicatesUI.baseColumnText" -msgstr "Base column to detect duplicates:" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/pt_BR.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/pt_BR.po deleted file mode 100644 index 484a959ed9..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/pt_BR.po +++ /dev/null @@ -1,209 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# CΓ©lio CJr , 2011. -# CΓ©lio Faria Jr. , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-17 13:07+0000\n" -"Last-Translator: CΓ©lio Faria Jr. \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/gephi/language/pt_BR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "ClearEdgesUI.deleteDirectedCheckbox.text" -msgstr "Excluir arestas dirigidas" - -msgid "ClearEdgesUI.descriptionLabel.text" -msgstr "Tipos de arestas a excluir:" - -msgid "ClearEdgesUI.deleteUndirectedChekbox.text" -msgstr "Excluir arestas nΓ£o dirigidas" - -msgid "AddEdgeToGraphUI.descriptionLabel.text" -msgstr "Selecione um tipo para a nova aresta e os nΓ³s origem e destino:" - -msgid "AddEdgeToGraphUI.directedRadioButton.text" -msgstr "Dirigida" - -msgid "AddEdgeToGraphUI.undirectedRadioButton.text" -msgstr "NΓ£o dirigida" - -msgid "AddEdgeToGraphUI.sourceNodeLabel.text" -msgstr "NΓ³ origem:" - -msgid "AddEdgeToGraphUI.targetNodeLabel.text" -msgstr "NΓ³ destino:" - -msgid "SearchReplaceUI.searchLabel.text" -msgstr "Busca:" - -msgid "SearchReplaceUI.replaceLabel.text" -msgstr "Substituir por:" - -msgid "SearchReplaceUI.matchWholeValueCheckBox.text" -msgstr "Somente valores completos" - -msgid "SearchReplaceUI.caseSensitiveCheckBox.text" -msgstr "MaiΓΊsculas e minΓΊsculas" - -msgid "SearchReplaceUI.normalSearchModeRadioButton.text" -msgstr "Busca normal" - -msgid "SearchReplaceUI.regexSearchModeRadioButton.text" -msgstr "Busca com expressΓ£o regular" - -msgid "SearchReplaceUI.findNextButton.text" -msgstr "Localizar prΓ³xima" - -msgid "SearchReplaceUI.replaceButton.text" -msgstr "Substituir" - -msgid "SearchReplaceUI.replaceAllButton.text" -msgstr "Substituir todos" - -msgid "SearchReplaceUI.descriptionLabel.text.nodes" -msgstr "Buscando na tabela de nΓ³s" - -msgid "SearchReplaceUI.descriptionLabel.text.edges" -msgstr "Buscando na tabela de arestas" - -msgid "SearchReplaceUI.resultLabel.text" -msgstr "Resultado da busca:" - -msgid "SearchReplaceUI.resultText.contentType" -msgstr "text/html" - -msgid "SearchReplaceUI.not.found" -msgstr "NΓ£o foi possΓ­vel encontrar \"{0}\"" - -msgid "SearchReplaceUI.regexReplacementError" -msgstr "O texto de substituiΓ§Γ£o nΓ£o Γ© correto para a expressΓ£o regular" - -msgid "SearchReplaceUI.dialog.title.error" -msgstr "Erro" - -msgid "SearchReplaceUI.replacements.count.message" -msgstr "{0} ocorrΓͺncias foram substituΓ­das" - -msgid "SearchReplaceUI.column" -msgstr "Coluna: ''{0}''" - -msgid "SearchReplaceUI.allColumns" -msgstr "--Todas as colunas--" - -msgid "ImportCSVUIWizardAction.name" -msgstr "Importar planilha" - -msgid "ImportCSVUIVisualPanel1.name" -msgstr "OpΓ§Γ΅es gerais" - -msgid "ImportCSVUIVisualPanel1.comma" -msgstr "VΓ­rgula" - -msgid "ImportCSVUIVisualPanel1.semicolon" -msgstr "Ponto e vΓ­rgula" - -msgid "ImportCSVUIVisualPanel1.space" -msgstr "EspaΓ§o" - -msgid "ImportCSVUIVisualPanel1.tab" -msgstr "TabulaΓ§Γ£o" - -msgid "ImportCSVUIVisualPanel1.nodes-table" -msgstr "Tabela de nΓ³s" - -msgid "ImportCSVUIVisualPanel1.edges-table" -msgstr "Tabela de arestas" - -msgid "ImportCSVUIVisualPanel1.filechooser.csvDescription" -msgstr "CSV" - -msgid "ImportCSVUIVisualPanel1.tableLabel.text" -msgstr "Tabela:" - -msgid "ImportCSVUIVisualPanel1.fileButton.text" -msgstr "..." - -msgid "ImportCSVUIVisualPanel1.separatorLabel.text" -msgstr "Separador:" - -msgid "ImportCSVUIVisualPanel1.descriptionLabel.text" -msgstr "Escolha um arquivo CSV para importar:" - -msgid "ImportCSVUIVisualPanel1.previewLabel.text" -msgstr "VisualizaΓ§Γ£o:" - -msgid "ImportCSVUIVisualPanel1.charsetLabel.text" -msgstr "CodificaΓ§Γ£o de caracteres:" - -msgid "ImportCSVUIVisualPanel1.validation.invalid-file" -msgstr "Arquivo CSV invΓ‘lido" - -msgid "ImportCSVUIVisualPanel1.validation.no-columns" -msgstr "O arquivo nΓ£o contΓ©m nenhuma coluna" - -msgid "ImportCSVUIVisualPanel1.validation.repeated-columns" -msgstr "O arquivo nΓ£o pode conter colunas com nomes repetidos" - -msgid "ImportCSVUIVisualPanel1.validation.error" -msgstr "Erro" - -msgid "ImportCSVUIVisualPanel1.validation.file-permissions-error" -msgstr "Um erro ocorreu ao ler o arquivo. Verifique se o arquivo nΓ£o estΓ‘ em uso e vocΓͺ tem permissΓ΅es." - -msgid "ImportCSVUIVisualPanel1.validation.edges.no-source-target-columns" -msgstr "A tabela de arestas precisa conter colunas chamadas 'Source' e 'Target' (contendo os ids dos nΓ³s origem e destino)." - -msgid "ImportCSVUIVisualPanel2.name" -msgstr "ConfiguraΓ§Γ΅es de importaΓ§Γ£o" - -msgid "ImportCSVUIVisualPanel2.columnsLabel.text" -msgstr "Colunas importadas:" - -msgid "ImportCSVUIVisualPanel2.nodes.description" -msgstr "Novas colunas serΓ£o criadas com o tipo especificado.
    Se o id de um nΓ³ nΓ£o for especificado, um id gerado serΓ‘ atribuΓ­do a ele.
    A menos que a opΓ§Γ£o 'ForΓ§ar nΓ³s a serem criados como novos' esteja habilitada, os dados dos nΓ³s jΓ‘ existentes serΓ£o atualizados com os dados do arquivo CSV." - -msgid "ImportCSVUIVisualPanel2.nodes.assign-ids-checkbox" -msgstr "ForΓ§ar nΓ³s a serem criados como novos" - -msgid "ImportCSVUIVisualPanel2.edges.description" -msgstr "Novas colunas serΓ£o criadas com o tipo especificado.
    Se o id de uma aresta nΓ£o for especificado, um id gerado serΓ‘ atribuΓ­do a ela.
    A tabela de arestas precisa conter colunas chamadas 'Source' e 'Target' com os ids dos nΓ³s origem e destino. Se qualquer dos id nΓ£o forem fornecidos em uma determinada linha, ela serΓ‘ ignorada.
    Se nΓ£o existir uma coluna 'Type' no arquivo, todas as arestas serΓ£o dirigidas.
    Se uma aresta jΓ‘ existir, seus atributos serΓ£o ignorados, mas seu peso serΓ‘ alterado (caso o peso nΓ£o seja especificado, serΓ‘ utilizado peso=1)" - -msgid "ImportCSVUIVisualPanel2.edges.create-new-nodes-checkbox" -msgstr "Criar nΓ³s inexistentes" - -msgid "SearchReplaceUI.regexReplaceCheckBox.text" -msgstr "Substituir usando expressΓ£o regular" - -msgid "SearchReplaceUI.columnsToSearchLabel.text" -msgstr "Colunas para buscar/substituir:" - -msgid "MergeNodeDuplicatesUI.description" -msgstr "NΓ³s duplicados sΓ£o automaticamente detectados e mesclados baseados no valor de uma coluna.
    Para cada grupos de nΓ³s duplicados, serΓ‘ criado um novo nΓ³ com a mesma cor, tamanho e posiΓ§Γ£o do primeiro nΓ³ do grupo.
    As arestas serΓ£o atribuΓ­das ao novo nΓ³.
    Cada coluna usarΓ‘ a estratΓ©gia escolhida para reduzir os valores das linhas a um valor apenas.
    A hierarquia serΓ‘ ignorada." - -msgid "MergeNodeDuplicatesUI.noDuplicatesText" -msgstr "Nenhuma duplicaΓ§Γ£o encontrada!" - -msgid "MergeNodeDuplicatesUI.duplicateGroupsNumber" -msgstr "{0} duplicaΓ§Γ΅es encontradas!" - -msgid "MergeNodeDuplicatesUI.deleteMergedNodesText" -msgstr "Remover nΓ³s duplicados" - -msgid "MergeNodeDuplicatesUI.configurationText" -msgstr "Configurar" - -msgid "MergeNodeDuplicatesUI.caseSensitiveText" -msgstr "Diferenciar maiΓΊsculas e minΓΊsculas" - -msgid "MergeNodeDuplicatesUI.baseColumnText" -msgstr "Coluna-base para a detecΓ§Γ£o de duplicatas" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/ru.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/ru.po deleted file mode 100644 index 796c9fab62..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/ru.po +++ /dev/null @@ -1,210 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# , 2011, 2012. -# FIRST AUTHOR , 2011. -# , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-03-31 12:51+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Russian (http://www.transifex.com/projects/p/gephi/language/ru/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -msgid "ClearEdgesUI.deleteDirectedCheckbox.text" -msgstr "Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ€Ρ‘Π±Ρ€Π°" - -msgid "ClearEdgesUI.descriptionLabel.text" -msgstr "Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Ρ€Ρ‘Π±Π΅Ρ€:" - -msgid "ClearEdgesUI.deleteUndirectedChekbox.text" -msgstr "Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Π½Π΅ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ€Ρ‘Π±Ρ€Π°" - -msgid "AddEdgeToGraphUI.descriptionLabel.text" -msgstr "Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ‚ΠΈΠΏ Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π΅Π±Ρ€Π°, Π΅Π³ΠΎ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ ΡƒΠ·Π»Ρ‹:" - -msgid "AddEdgeToGraphUI.directedRadioButton.text" -msgstr "ΠžΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅" - -msgid "AddEdgeToGraphUI.undirectedRadioButton.text" -msgstr "НСориСнтированноС" - -msgid "AddEdgeToGraphUI.sourceNodeLabel.text" -msgstr "ΠΠ°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΠ·Π΅Π»:" - -msgid "AddEdgeToGraphUI.targetNodeLabel.text" -msgstr "ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ ΡƒΠ·Π΅Π»:" - -msgid "SearchReplaceUI.searchLabel.text" -msgstr "Поиск:" - -msgid "SearchReplaceUI.replaceLabel.text" -msgstr "Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π°:" - -msgid "SearchReplaceUI.matchWholeValueCheckBox.text" -msgstr "Π˜ΡΠΊΠ°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹Π΅ совпадСния" - -msgid "SearchReplaceUI.caseSensitiveCheckBox.text" -msgstr "Π£Ρ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ рСгистр" - -msgid "SearchReplaceUI.normalSearchModeRadioButton.text" -msgstr "ΠžΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ поиск" - -msgid "SearchReplaceUI.regexSearchModeRadioButton.text" -msgstr "Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ рСгулярныС выраТСния" - -msgid "SearchReplaceUI.findNextButton.text" -msgstr "Найти ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅" - -msgid "SearchReplaceUI.replaceButton.text" -msgstr "Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ" - -msgid "SearchReplaceUI.replaceAllButton.text" -msgstr "Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ всС" - -msgid "SearchReplaceUI.descriptionLabel.text.nodes" -msgstr "Π˜ΡΠΊΠ°Ρ‚ΡŒ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΡƒΠ·Π»ΠΎΠ²" - -msgid "SearchReplaceUI.descriptionLabel.text.edges" -msgstr "Π˜ΡΠΊΠ°Ρ‚ΡŒ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Ρ€Ρ‘Π±Π΅Ρ€" - -msgid "SearchReplaceUI.resultLabel.text" -msgstr "Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ поиска:" - -msgid "SearchReplaceUI.resultText.contentType" -msgstr "text/html" - -msgid "SearchReplaceUI.not.found" -msgstr "НС ΠΌΠΎΠ³Ρƒ Π½Π°ΠΉΡ‚ΠΈ \"{0}\"" - -msgid "SearchReplaceUI.regexReplacementError" -msgstr "Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π·Π°ΠΌΠ΅Π½Ρ‹ Π½Π΅ являСтся ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ" - -msgid "SearchReplaceUI.dialog.title.error" -msgstr "Ошибка" - -msgid "SearchReplaceUI.replacements.count.message" -msgstr "{0} Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ Π±Ρ‹Π»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ" - -msgid "SearchReplaceUI.column" -msgstr "Π‘Ρ‚ΠΎΠ»Π±Π΅Ρ†: ''{0}''" - -msgid "SearchReplaceUI.allColumns" -msgstr "-- ВсС столбцы--" - -msgid "ImportCSVUIWizardAction.name" -msgstr "Π˜ΠΌΠΏΠΎΡ€Ρ‚ CSV Ρ„Π°ΠΉΠ»Π° Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ" - -msgid "ImportCSVUIVisualPanel1.name" -msgstr "ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΎΠΏΡ†ΠΈΠΈ" - -msgid "ImportCSVUIVisualPanel1.comma" -msgstr "запятая" - -msgid "ImportCSVUIVisualPanel1.semicolon" -msgstr "Ρ‚ΠΎΡ‡ΠΊΠ° с запятой" - -msgid "ImportCSVUIVisualPanel1.space" -msgstr "ΠŸΡ€ΠΎΠ±Π΅Π»" - -msgid "ImportCSVUIVisualPanel1.tab" -msgstr "Вабуляция" - -msgid "ImportCSVUIVisualPanel1.nodes-table" -msgstr "Π’Π°Π±Π»ΠΈΡ†Π° ΡƒΠ·Π»ΠΎΠ²" - -msgid "ImportCSVUIVisualPanel1.edges-table" -msgstr "Π’Π°Π±Π»ΠΈΡ†Π° Ρ€Ρ‘Π±Π΅Ρ€" - -msgid "ImportCSVUIVisualPanel1.filechooser.csvDescription" -msgstr "ImportCSVUIVisualPanel1.filechooser.csvDescription" - -msgid "ImportCSVUIVisualPanel1.tableLabel.text" -msgstr "Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ‚Π°Π»ΠΈΡ†Ρƒ:" - -msgid "ImportCSVUIVisualPanel1.fileButton.text" -msgstr "ImportCSVUIVisualPanel1.fileButton.text" - -msgid "ImportCSVUIVisualPanel1.separatorLabel.text" -msgstr "Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ:" - -msgid "ImportCSVUIVisualPanel1.descriptionLabel.text" -msgstr "Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ CSV Ρ„Π°ΠΉΠ» для ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°" - -msgid "ImportCSVUIVisualPanel1.previewLabel.text" -msgstr "ΠŸΡ€Π΅Π²ΡŒΡŽ:" - -msgid "ImportCSVUIVisualPanel1.charsetLabel.text" -msgstr "ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°:" - -msgid "ImportCSVUIVisualPanel1.validation.invalid-file" -msgstr "Ошибка Π² CSV Ρ„Π°ΠΉΠ»Π΅" - -msgid "ImportCSVUIVisualPanel1.validation.no-columns" -msgstr "Π’ Ρ„Π°ΠΉΠ»Π΅ Π½Π΅ содСрТится Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ столбца" - -msgid "ImportCSVUIVisualPanel1.validation.repeated-columns" -msgstr "Π’ Ρ„Π°ΠΉΠ»Π΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ столбцов с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ" - -msgid "ImportCSVUIVisualPanel1.validation.error" -msgstr "Ошибка" - -msgid "ImportCSVUIVisualPanel1.validation.file-permissions-error" -msgstr "Π’ΠΎ врСмя чтСния Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° ошибка. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» \r\nΠ½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ Ρƒ вас Π΅ΡΡ‚ΡŒ Π½Π° Π½Π΅Π³ΠΎ ΠΏΡ€Π°Π²Π° доступа" - -msgid "ImportCSVUIVisualPanel1.validation.edges.no-source-target-columns" -msgstr "Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ с Ρ€Ρ‘Π±Ρ€Π°ΠΌΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ 'Source' ΠΈ 'Target', содСрТащиС id ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΡƒΠ·Π»ΠΎΠ²" - -msgid "ImportCSVUIVisualPanel2.name" -msgstr "Настройки ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°" - -msgid "ImportCSVUIVisualPanel2.columnsLabel.text" -msgstr "Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ столбцы для ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°:" - -msgid "ImportCSVUIVisualPanel2.nodes.description" -msgstr "ВсС Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ столбцы Π±ΡƒΠ΄ΡƒΡ‚ созданы ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ.
    Если для Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ Π½Π΅ Π·Π°Π΄Π°Π½ id, Ρ‚ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ присвоСн автоматичСски
    Если Π½Π΅ стоит Π³Π°Π»ΠΎΡ‡ΠΊΠΈ Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ² 'ΠŸΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π½ΠΎΠ²ΠΎΡ‘ id Π²Π΅Ρ€ΡˆΠΈΠ½Π΅, Ссли ΠΎΠ½Π° ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅', Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ Π²Π΅Ρ€ΡˆΠΈΠ½Π°.\"" - -msgid "ImportCSVUIVisualPanel2.nodes.assign-ids-checkbox" -msgstr "ΠŸΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ id Π²Π΅Ρ€ΡˆΠΈΠ½Π΅, Ссли ΠΎΠ½Π° ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅" - -msgid "ImportCSVUIVisualPanel2.edges.description" -msgstr "ВсС Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ столбцы Π±ΡƒΠ΄ΡƒΡ‚ созданы ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ.
    \r\nЕсли Ρƒ Ρ€Π΅Π±Ρ€Π° Π½Π΅ Π·Π°Π΄Π°Π½ id, Ρ‚ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ присвоСн автоматичСски.
    \r\nДля создания Ρ€Π΅Π±Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ столбцы 'Source' ΠΈ 'Target', содСрТащиС id ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π²Π΅Ρ€ΡˆΠΈΠ½. Если для ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ ΠΈΠ· Ρ€Ρ‘Π±Π΅Ρ€ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ эти значСния, Ρ‚ΠΎ ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ.
    \r\nЕсли Π½Π΅Ρ‚ столбца 'Type', Ρ‚ΠΎ всС Ρ€Ρ‘Π±Ρ€Π° Π±ΡƒΠ΄ΡƒΡ‚ созданы ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ.
    \r\nЕсли ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ ΠΈΠ· Ρ€Ρ‘Π±Π΅Ρ€ ΡƒΠΆΠ΅ сущСствуСт ΠΈΠ»ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ создано, Ρ‚ΠΎ ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ, Π½ΠΎΠ²Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ записаны." - -msgid "ImportCSVUIVisualPanel2.edges.create-new-nodes-checkbox" -msgstr "Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ, Ссли ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ Π³Ρ€Π°Ρ„Π° Π½Π΅ сущСствуСт" - -msgid "SearchReplaceUI.regexReplaceCheckBox.text" -msgstr "Π—Π°ΠΌΠ΅Π½Π° рСгулярным Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ" - -msgid "SearchReplaceUI.columnsToSearchLabel.text" -msgstr "Π‘Ρ‚ΠΎΠ»Π±Ρ†Ρ‹ для поиска/Π·Π°ΠΌΠ΅Π½Ρ‹" - -msgid "MergeNodeDuplicatesUI.description" -msgstr "Π”ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚Ρ‹ ΡƒΠ·Π»ΠΎΠ² автоматичСски Π²Ρ‹ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ ΠΈ ΡΠΊΠ»Π΅ΠΈΠ²Π°ΡŽΡ‚ΡΡ.
    Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ² создаСтся Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΠ·Π΅Π» с Ρ†Π²Π΅Ρ‚ΠΎΠΌ, Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ, взятыми Ρƒ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° Π² Π³Ρ€ΡƒΠΏΠΏΠ΅.
    Π Ρ‘Π±Ρ€Π° ΠΏΠ΅Ρ€Π΅Π½Π°Π·Π½Π°Ρ‡Π°ΡŽΡ‚ΡΡ Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΠ·Π΅Π».
    Π˜Π΅Ρ€Π°Ρ€Ρ…ΠΈΡ игнорируСтся." - -msgid "MergeNodeDuplicatesUI.noDuplicatesText" -msgstr "НС ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π½Π°ΠΉΡ‚ΠΈ Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚Ρ‹!" - -msgid "MergeNodeDuplicatesUI.duplicateGroupsNumber" -msgstr "{0} Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ² Π½Π°ΠΉΠ΄Π΅Π½ΠΎ!" - -msgid "MergeNodeDuplicatesUI.deleteMergedNodesText" -msgstr "Π£Π΄Π°Π»ΠΈΡ‚ΡŒ склССныС Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹" - -msgid "MergeNodeDuplicatesUI.configurationText" -msgstr "ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ" - -msgid "MergeNodeDuplicatesUI.caseSensitiveText" -msgstr "Π£Ρ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ рСгистр символов" - -msgid "MergeNodeDuplicatesUI.baseColumnText" -msgstr "Основная ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ° для поиска Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ²:" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/zh_CN.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/zh_CN.po deleted file mode 100644 index 93c908c09f..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/ui/zh_CN.po +++ /dev/null @@ -1,208 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Xi-Nian Zuo , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-03-15 09:13+0000\n" -"Last-Translator: Xi-Nian Zuo \n" -"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/gephi/language/zh_CN/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "ClearEdgesUI.deleteDirectedCheckbox.text" -msgstr "εˆ ι™€ζœ‰ε‘θΎΉ" - -msgid "ClearEdgesUI.descriptionLabel.text" -msgstr "θ¦εˆ ι™€ηš„θΎΉηš„η±»εž‹οΌš" - -msgid "ClearEdgesUI.deleteUndirectedChekbox.text" -msgstr "εˆ ι™€ζ— ε‘θΎΉ" - -msgid "AddEdgeToGraphUI.descriptionLabel.text" -msgstr "ι€‰ζ‹©ζ–°ηš„θΎΉηš„η±»εž‹οΌŒζΊθŠ‚η‚Ήε’Œη›ζ ‡θŠ‚η‚ΉοΌš" - -msgid "AddEdgeToGraphUI.directedRadioButton.text" -msgstr "ζœ‰ε‘ηš„" - -msgid "AddEdgeToGraphUI.undirectedRadioButton.text" -msgstr "ζ— ε‘ηš„" - -msgid "AddEdgeToGraphUI.sourceNodeLabel.text" -msgstr "ζΊθŠ‚η‚ΉοΌš" - -msgid "AddEdgeToGraphUI.targetNodeLabel.text" -msgstr "η›ζ ‡θŠ‚η‚ΉοΌš" - -msgid "SearchReplaceUI.searchLabel.text" -msgstr "搜紒:" - -msgid "SearchReplaceUI.replaceLabel.text" -msgstr "ζ›Ώζ’δΈΊοΌš" - -msgid "SearchReplaceUI.matchWholeValueCheckBox.text" -msgstr "δ»…εŒΉι…ζ‰€ζœ‰ζ•°ε€Ό" - -msgid "SearchReplaceUI.caseSensitiveCheckBox.text" -msgstr "εŒΊεˆ†ε€§ε°ε†™" - -msgid "SearchReplaceUI.normalSearchModeRadioButton.text" -msgstr "ζ™ι€šζœη΄’" - -msgid "SearchReplaceUI.regexSearchModeRadioButton.text" -msgstr "ζ”―ζŒζ­£εˆ™θ‘¨θΎΎεΌηš„ζœη΄’" - -msgid "SearchReplaceUI.findNextButton.text" -msgstr "ζŸ₯ζ‰ΎδΈ‹δΈ€δΈͺ" - -msgid "SearchReplaceUI.replaceButton.text" -msgstr "替捒" - -msgid "SearchReplaceUI.replaceAllButton.text" -msgstr "ζ›Ώζ’ζ‰€ζœ‰" - -msgid "SearchReplaceUI.descriptionLabel.text.nodes" -msgstr "ζœη΄’θŠ‚η‚Ήθ‘¨" - -msgid "SearchReplaceUI.descriptionLabel.text.edges" -msgstr "ζœη΄’θΎΉεˆ—θ‘¨" - -msgid "SearchReplaceUI.resultLabel.text" -msgstr "ζœη΄’εŒΉι…η»“ζžœοΌš" - -msgid "SearchReplaceUI.resultText.contentType" -msgstr "ζ–‡ζœ¬ηΌ–θΎ‘ε™¨" - -msgid "SearchReplaceUI.not.found" -msgstr "ζ‰ΎδΈεˆ°β€œ{0}”" - -msgid "SearchReplaceUI.regexReplacementError" -msgstr "θ¦ζ›Ώζ’ηš„ε­—η¬¦δΈŽζ­£εˆ™θ‘¨θΎΎεΌδΈεŒΉι…" - -msgid "SearchReplaceUI.dialog.title.error" -msgstr "ι”™θ――" - -msgid "SearchReplaceUI.replacements.count.message" -msgstr "{0}蒫替捒" - -msgid "SearchReplaceUI.column" -msgstr "εˆ—οΌšβ€œ{0}”" - -msgid "SearchReplaceUI.allColumns" -msgstr "--ζ‰€ζœ‰εˆ—--" - -msgid "ImportCSVUIWizardAction.name" -msgstr "θΎ“ε…₯甡子葨格" - -msgid "ImportCSVUIVisualPanel1.name" -msgstr "常规选鑹" - -msgid "ImportCSVUIVisualPanel1.comma" -msgstr "逗号" - -msgid "ImportCSVUIVisualPanel1.semicolon" -msgstr "εˆ†ε·" - -msgid "ImportCSVUIVisualPanel1.space" -msgstr "η©Ίζ Ό" - -msgid "ImportCSVUIVisualPanel1.tab" -msgstr "刢葨符Tab" - -msgid "ImportCSVUIVisualPanel1.nodes-table" -msgstr "θŠ‚η‚Ήθ‘¨ζ Ό" - -msgid "ImportCSVUIVisualPanel1.edges-table" -msgstr "边葨格" - -msgid "ImportCSVUIVisualPanel1.filechooser.csvDescription" -msgstr "CSV" - -msgid "ImportCSVUIVisualPanel1.tableLabel.text" -msgstr "ε¦‚θ‘¨ζ ΌοΌš" - -msgid "ImportCSVUIVisualPanel1.fileButton.text" -msgstr "……" - -msgid "ImportCSVUIVisualPanel1.separatorLabel.text" -msgstr "εˆ†ιš”η¬¦οΌš" - -msgid "ImportCSVUIVisualPanel1.descriptionLabel.text" -msgstr "选择一δΈͺCSVζ–‡δ»ΆθΎ“ε…₯:" - -msgid "ImportCSVUIVisualPanel1.previewLabel.text" -msgstr "ι’„θ§ˆοΌš" - -msgid "ImportCSVUIVisualPanel1.charsetLabel.text" -msgstr "格式:" - -msgid "ImportCSVUIVisualPanel1.validation.invalid-file" -msgstr "ζ— ζ•ˆηš„CSVζ–‡δ»Ά" - -msgid "ImportCSVUIVisualPanel1.validation.no-columns" -msgstr "ζ–‡δ»ΆδΈεŒ…ε«δ»»δ½•εˆ—" - -msgid "ImportCSVUIVisualPanel1.validation.repeated-columns" -msgstr "ζ–‡δ»ΆδΈεŒ…ε«ι‡ε€ηš„εε­—" - -msgid "ImportCSVUIVisualPanel1.validation.error" -msgstr "ι”™θ――" - -msgid "ImportCSVUIVisualPanel1.validation.file-permissions-error" -msgstr "θ―»ζ–‡δ»Άζ—ΆζŠ₯错。η‘θ€ζ–‡δ»Άζ˜―ε¦ζ­£εœ¨θ’«δ½Ώη”¨οΌŒεΉΆη‘δΏδ½ ζœ‰ζƒι™γ€‚" - -msgid "ImportCSVUIVisualPanel1.validation.edges.no-source-target-columns" -msgstr "θΎΉθ‘¨ζ Όιœ€θ¦δΈ€δΈͺεŒ…ε«θŠ‚η‚Ήζ ‡ε·ηš„β€œζΊβ€ε’Œβ€œη›ζ ‡β€εˆ—。" - -msgid "ImportCSVUIVisualPanel2.name" -msgstr "θΎ“ε…₯θΎη½" - -msgid "ImportCSVUIVisualPanel2.columnsLabel.text" -msgstr "θΎ“ε…₯εˆ—οΌš" - -msgid "ImportCSVUIVisualPanel2.nodes.description" -msgstr "εˆ›ε»Ίζ–°ηš„η‰ΉζŠη§η±»ηš„εˆ—γ€‚
    ε¦‚ζžœδΈ’ε€±ζ ‡ε·οΌŒεˆ†ι…δΈ€δΈͺζ–°ηš„ζ ‡ε·γ€‚
    ι™€ιžζΏ€ζ΄»ι€‰ι‘Ήβ€œεΌΊεˆΆεˆ›ε»Ίζ–°ηš„θŠ‚η‚Ήβ€οΌŒε¦εˆ™δΌšδΈδΌšζ›΄ζ–°ε­˜εœ¨ηš„θŠ‚η‚Ήγ€‚" - -msgid "ImportCSVUIVisualPanel2.nodes.assign-ids-checkbox" -msgstr "εΌΊεˆΆεˆ›ε»Ίζ–°ηš„θŠ‚η‚Ή" - -msgid "ImportCSVUIVisualPanel2.edges.description" -msgstr "εˆ›ε»Ίζ–°ηš„η‰ΉζŠη§η±»ηš„εˆ—γ€‚
    ε¦‚ζžœδΈ’ε€±ζ ‡ε·οΌŒεˆ†ι…δΈ€δΈͺζ–°ηš„ζ ‡ε·γ€‚
    θΎΉιœ€θ¦ε‘«ε†™δΊ†ζΊθŠ‚η‚Ήζ ‡ε·ε’Œη›ζ ‡θŠ‚η‚Ήζ ‡ε·ηš„β€œζΊβ€ε’Œβ€œη›ζ ‡β€εˆ—γ€‚ε¦‚ζžœδΈζ˜―δ»₯θ‘Œηš„ε½’εΌζδΎ›οΌŒε°†δΌšθ’«ηΌΊηœγ€‚
    ε¦‚ζžœζ²‘ζδΎ›β€œη±»εž‹β€εˆ—οΌŒζ‰€ζœ‰ηš„θΎΉε°†θ’«εšδΉ‰δΈΊζœ‰ε‘ηš„γ€‚
    ε¦‚ζžœθΎΉε·²η»ε­˜εœ¨οΌŒε±žζ€§ε°†ηΌΊηœοΌŒδ½†ζ˜―θ¦εŠ δΈŠεƒδ»¬ηš„ζƒι‡οΌˆι»˜θ€ζƒι‡δΈΊ1)。" - -msgid "ImportCSVUIVisualPanel2.edges.create-new-nodes-checkbox" -msgstr "εˆ›ε»ΊδΈ’ε€±ηš„jiedian" - -msgid "SearchReplaceUI.regexReplaceCheckBox.text" -msgstr "ζ­£εˆ™θ‘¨θΎΎεΌζ›Ώζ’" - -msgid "SearchReplaceUI.columnsToSearchLabel.text" -msgstr "搜紒/ζ›Ώζ’ηš„εˆ—οΌš" - -msgid "MergeNodeDuplicatesUI.description" -msgstr "θ‡ͺεŠ¨ζ£€ζ΅‹θŠ‚η‚Ήι‡ε€εΉΆεˆεΉΆ.
    ε―Ήζ―δΈ€η»„θŠ‚η‚Ήε€εˆΆ, ζ–°θŠ‚η‚Ήε°†δΌšε’ŒθΏ™δΈ€η»„ηš„η¬¬δΈ€δΈͺθŠ‚η‚Ήε…·ζœ‰η›ΈεŒι’œθ‰²γ€ε€§ε°ε’Œδ½η½.
    ζ―δΈ€εˆ—δ½Ώη”¨δΈŠθΏ°η­–η•₯ζ₯ι™δ½Žθ‘Œε€Όζ•°εˆ°δΈ€δΈͺε€Ό.
    η­‰ηΊ§ζ˜―εΏ½η•₯ηš„." - -msgid "MergeNodeDuplicatesUI.noDuplicatesText" -msgstr "ζœͺε‘ηŽ°ι‡ε€η»“η‚Ή!" - -msgid "MergeNodeDuplicatesUI.duplicateGroupsNumber" -msgstr "{0} δΈͺθŠ‚η‚Ήι‡ε€ε‘ηŽ°!" - -msgid "MergeNodeDuplicatesUI.deleteMergedNodesText" -msgstr "εˆ ι™€εˆεΉΆηš„θŠ‚η‚Ή" - -msgid "MergeNodeDuplicatesUI.configurationText" -msgstr "配η½" - -msgid "MergeNodeDuplicatesUI.caseSensitiveText" -msgstr "εŒΊεˆ†ε€§ε°ε†™" - -msgid "MergeNodeDuplicatesUI.baseColumnText" -msgstr "εŸΊδΊŽεˆ—ζ₯εˆ ι™€ι‡ε€:" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/zh_CN.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/zh_CN.po deleted file mode 100644 index 051db6ec78..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/general/zh_CN.po +++ /dev/null @@ -1,55 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Xi-Nian Zuo , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-03-15 09:22+0000\n" -"Last-Translator: Xi-Nian Zuo \n" -"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/gephi/language/zh_CN/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "AddNodeToGraph.name" -msgstr "ζ·»εŠ θŠ‚η‚Ή" - -msgid "AddNodeToGraph.dialog.text" -msgstr "ζ ‡θ°οΌš" - -msgid "AddEdgeToGraph.name" -msgstr "添加边" - -msgid "ClearGraph.name" -msgstr "εˆ ι™€ε›Ύθ‘¨" - -msgid "ClearGraph.dialog.text" -msgstr "η‘εšεˆ ι™€ε›Ύθ‘¨οΌŸ
    ζ‰€ζœ‰ηš„θŠ‚η‚Ήε’ŒθΎΉε°†θ’«εˆ ι™€γ€‚
    " - -msgid "ClearEdges.name" -msgstr "εˆ ι™€θΎΉ" - -msgid "MergeNodeDuplicates.name" -msgstr "ζ£€ζ΅‹εΉΆεˆεΉΆι‡ε€θŠ‚η‚Ή" - -msgid "MergeNodeDuplicates.description" -msgstr "θ‡ͺεŠ¨ζ£€ζ΅‹εΉΆεˆεΉΆεˆ—ε†…ι‡ε€θŠ‚η‚Ή" - -msgid "SearchReplace.name" -msgstr "搜紒/替捒" - -msgid "SearchReplace.window.close" -msgstr "ε…³ι—­" - -msgid "ImportCSV.name" -msgstr "θΎ“ε…₯甡子葨格" - -msgid "ExportTable.name" -msgstr "输出葨格" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_ar.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_ar.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_ar.properties @@ -0,0 +1 @@ + diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_ca.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_ca.properties new file mode 100644 index 0000000000..0dd49a3533 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_ca.properties @@ -0,0 +1,40 @@ +OpenInEditNodeWindow.name=Edita el node +OpenInEditNodeWindow.name.multiple=Edita tots els nodes +OpenInEditNodeWindow.description=Canvia la mida, posiciσ, color i atributs +OpenInEditNodeWindow.description.multiple=Change size, position, color and attributes. Fields will be blank at first. +SelectOnGraph.name=Select on Overview +SelectNeighboursOnTable.name=Selecciona els nodes veοns a la taula +SelectEdgesOnTable.name=Selecciona les arestes relacionades +DeleteNodes.name.single=Elimina +DeleteNodes.name.multiple=Elimina'ls tots +DeleteNodes.confirmation.message=Segur que vols eliminar els nodes? +ClearNodesData.name.single=Neteja... +ClearNodesData.name.multiple=Neteja-ho tot +ClearNodesData.description=Neteja les dades dels nodes seleccionats +ClearNodesData.ui.description=Neteja les columnes +CopyNodeDataToOtherNodes.name=Overwrite data to the other selected nodes... +CopyNodeDataToOtherNodes.description=Copy the selected node columns to the other selected nodes. +CopyNodeDataToOtherNodes.ui.rowDescription=Copia el node: +CopyNodeDataToOtherNodes.ui.columnsDescription=Sobreescriu les columnes: +Group.name=Agrupa +Ungroup.name.single=Desagrupa +Ungroup.name.multiple=Desagrupa els grups seleccionats +UngroupRecursively.name.single=Desagrupa recursivament +UngroupRecursively.name.multiple=Desagrupa els grups seleccionats recursivament +UngroupRecursively.description=Desagrupa els grups seleccionats i els seus descendents +MoveNodeToGroup.name.single=Mou al grup... +MoveNodeToGroup.name.multiple=Mou-los tots al grup... +RemoveNodeFromGroup.name.single=Elimina del seu grup +RemoveNodeFromGroup.name.multiple=Remove all from their group +Settle.name.single=Settle +Settle.name.multiple=Settle all +Free.name.single=Free +Free.name.multiple=Free all +SetNodesSize.name.single=Estableix la mida del node... +SetNodesSize.name.multiple=Estableix la mida de tots els nodes... +MergeNodes.name=Merge nodes... +MergeNodes.description=All nodes are merged into a new one, combining the edges and values using different strategies +LinkNodes.name=Connecta els nodes... +LinkNodes.description=Create edges (directed or undirected) between one node and all the selected nodes +CopyNodes.name.single=Duplica +CopyNodes.name.multiple=Duplica'ls tots diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_cs.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_cs.properties index 966fa9c50c..0f0101938e 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_cs.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_cs.properties @@ -1,87 +1,45 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Zbyn\u011bk Schwarz , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-02-27 14\:03+0000\nLast-Translator\: Zbyn\u011bk Schwarz \nLanguage-Team\: Czech (http\://www.transifex.com/projects/p/gephi/language/cs/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: cs\nPlural-Forms\: nplurals\=3; plural\=(n\=\=1) ? 0 \: (n>\=2 && n<\=4) ? 1 \: 2;\n - -OpenInEditNodeWindow.name=Upravit uzel - -OpenInEditNodeWindow.name.multiple=Upravit v\u0161echny uzle - -OpenInEditNodeWindow.description=Zm\u011bnit velikost, um\u00edst\u011bn\u00ed, barvu a vlastnosti. - -OpenInEditNodeWindow.description.multiple=Zm\u011bnit velikost, um\u00edst\u011bn\u00ed, barvu a vlastnosti. Pole budou zpo\u010d\u00e1tku pr\u00e1zdn\u00e1. - -SelectOnGraph.name=Vybrat p\u0159ehled - -SelectNeighboursOnTable.name=Vybrat soused\u00edc\u00ed uzle v tabulce - -SelectEdgesOnTable.name=Vybrat souvisej\u00edc\u00ed hrany - -DeleteNodes.name.single=Smazat - -DeleteNodes.name.multiple=Smazat v\u0161e - -DeleteNodes.confirmation.message=Potvrdit smaz\u00e1n\u00ed uzle? - -ClearNodesData.name.single=Vy\u010distit... - -ClearNodesData.name.multiple=Vy\u010disti v\u0161e... - -ClearNodesData.description=Vy\u010distit data z vybran\u00fdch uzl\u016f - -ClearNodesData.ui.description=Vy\u010distit sloupce\: - -CopyNodeDataToOtherNodes.name=P\u0159epsat data na dal\u0161\u00ed vybran\u00e9 uzly... - -CopyNodeDataToOtherNodes.description=Kop\u00edrovat vybran\u00e9 sloupce uzl\u016f na dal\u0161\u00ed vybran\u00e9 uzly. - -CopyNodeDataToOtherNodes.ui.rowDescription=Kop\u00edrovat uzel\: - -CopyNodeDataToOtherNodes.ui.columnsDescription=P\u0159epsat sloupce\: - -Group.name=Seskupit - -Ungroup.name.single=Rozd\u011blit - -Ungroup.name.multiple=Rozd\u011blit vybran\u00e9 skupiny - -UngroupRecursively.name.single=Rozd\u011blit rekurzivn\u011b - -UngroupRecursively.name.multiple=Rozd\u011blit vybran\u00e9 skupiny rekurzivn\u011b - -UngroupRecursively.description=Rozd\u011blit vybran\u00e9 skupiny a jejich n\u00e1sledn\u00edky - -MoveNodeToGroup.name.single=P\u0159esunout do skupiny... - -MoveNodeToGroup.name.multiple=P\u0159esunout v\u0161e do skupiny... - -RemoveNodeFromGroup.name.single=Odstranit ze skupiny - -RemoveNodeFromGroup.name.multiple=Odstranit v\u0161e ze skupiny - -Settle.name.single=Urovnat - -Settle.name.multiple=Urovnat v\u0161e - -Free.name.single=Uvolnit - -Free.name.multiple=Uvolnit v\u0161e - -SetNodesSize.name.single=Nastavit velikost uzlu... - -SetNodesSize.name.multiple=Nastavit velikost v\u0161ech uzl\u016f... - -MergeNodes.name=Slou\u010dit uzle... - -MergeNodes.description=V\u0161echny uzle jsou slou\u010deny do nov\u00e9ho, spojen\u00edm hran a hodnot pomoc\u00ed r\u016fzn\u00fdch strategi\u00ed - -LinkNodes.name=Odkazy na uzle... - -LinkNodes.description=Vytvo\u0159it hrany (\u0159\u00edzen\u00e9 \u010di ne\u0159\u00edzen\u00e9) mezi jedn\u00edm uzlem a vybran\u00fdmi uzly - -CopyNodes.name.single=Kop\u00edrovat - -CopyNodes.name.multiple=Kop\u00edrovat v\u0161e +OpenInEditNodeWindow.name=Upravit uzel +OpenInEditNodeWindow.name.multiple=Upravit v\u0161echny uzle +OpenInEditNodeWindow.description=Zm\u011bnit velikost, umνst\u011bnν, barvu a vlastnosti. +OpenInEditNodeWindow.description.multiple=Zm\u011bnit velikost, umνst\u011bnν, barvu a vlastnosti. Pole budou zpo\u010dαtku prαzdnα. + +SelectOnGraph.name=Vybrat p\u0159ehled +SelectNeighboursOnTable.name=Vybrat sousedνcν uzle v tabulce +SelectEdgesOnTable.name=Vybrat souvisejνcν hrany +DeleteNodes.name.single=Smazat +DeleteNodes.name.multiple=Smazat v\u0161e +DeleteNodes.confirmation.message=Potvrdit smazαnν uzle? + +ClearNodesData.name.single=Vy\u010distit... +ClearNodesData.name.multiple=Vy\u010disti v\u0161e... +ClearNodesData.description=Vy\u010distit data z vybranύch uzl\u016f +ClearNodesData.ui.description=Vy\u010distit sloupce: +CopyNodeDataToOtherNodes.name=P\u0159epsat data na dal\u0161ν vybranι uzly... +CopyNodeDataToOtherNodes.description=Kopνrovat vybranι sloupce uzl\u016f na dal\u0161ν vybranι uzly. +CopyNodeDataToOtherNodes.ui.rowDescription=Kopνrovat uzel: +CopyNodeDataToOtherNodes.ui.columnsDescription=P\u0159epsat sloupce: + +Group.name=Seskupit +Ungroup.name.single=Rozd\u011blit +Ungroup.name.multiple=Rozd\u011blit vybranι skupiny +UngroupRecursively.name.single=Rozd\u011blit rekurzivn\u011b +UngroupRecursively.name.multiple=Rozd\u011blit vybranι skupiny rekurzivn\u011b +UngroupRecursively.description=Rozd\u011blit vybranι skupiny a jejich nαslednνky +MoveNodeToGroup.name.single=P\u0159esunout do skupiny... +MoveNodeToGroup.name.multiple=P\u0159esunout v\u0161e do skupiny... +RemoveNodeFromGroup.name.single=Odstranit ze skupiny +RemoveNodeFromGroup.name.multiple=Odstranit v\u0161e ze skupiny + +Settle.name.single=Usadit +Settle.name.multiple=Usadit v\u0161e +Free.name.single=Uvolnit +Free.name.multiple=Uvolnit v\u0161e +SetNodesSize.name.single=Nastavit velikost uzlu... +SetNodesSize.name.multiple=Nastavit velikost v\u0161ech uzl\u016f... + +MergeNodes.name=Slou\u010dit uzle... +MergeNodes.description=V\u0161echny uzle jsou slou\u010deny do novιho, spojenνm hran a hodnot pomocν r\u016fznύch strategiν +LinkNodes.name=Odkazy na uzle... +LinkNodes.description=Vytvo\u0159it hrany (\u0159νzenι \u010di ne\u0159νzenι) mezi jednνm uzlem a vybranύmi uzly +CopyNodes.name.single=Kopνrovat +CopyNodes.name.multiple=Kopνrovat v\u0161e diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_de.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_de.properties new file mode 100644 index 0000000000..976bbdf971 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_de.properties @@ -0,0 +1,45 @@ +OpenInEditNodeWindow.name=Knoten bearbeiten +OpenInEditNodeWindow.name.multiple=Alle Knoten bearbeiten +OpenInEditNodeWindow.description=Grφίe, Position, Farbe und Attribute δndern. +OpenInEditNodeWindow.description.multiple=Grφίe, Position, Farbe und Attribute δndern. Die Felder sind zuerst leer. + +SelectOnGraph.name=Selektiere auf άbersicht +SelectNeighboursOnTable.name=Selektiere Nachbarknoten in der Tabelle +SelectEdgesOnTable.name=Selektiere in Zusammenhang stehende Kanten +DeleteNodes.name.single=Lφschen +DeleteNodes.name.multiple=Alle lφschen +DeleteNodes.confirmation.message=Knotenlφschung bestδtigen? + +ClearNodesData.name.single=Leeren... +ClearNodesData.name.multiple=Alle leeren... +ClearNodesData.description=Lφsche Daten der ausgewδhlten Knoten +ClearNodesData.ui.description=Spalten leeren: +CopyNodeDataToOtherNodes.name=άberschreibe Daten der anderen ausgewδhlten Knoten... +CopyNodeDataToOtherNodes.description=Kopiere die ausgewδhlten Spalten auf die anderen ausgewδhlten Knoten. +CopyNodeDataToOtherNodes.ui.rowDescription=Knoten kopieren: +CopyNodeDataToOtherNodes.ui.columnsDescription=Spalten όberschreiben: + +Group.name=Gruppieren +Ungroup.name.single=Gruppierung aufheben +Ungroup.name.multiple=Gruppierung der ausgewδhlten Gruppen aufheben +UngroupRecursively.name.single=Gruppierung rekursiv aufheben +UngroupRecursively.name.multiple=Gruppierung der ausgewδhlten Gruppen rekursiv aufheben +UngroupRecursively.description=Gruppierung der ausgewδhlten Gruppen und deren Nachkommen aufheben +MoveNodeToGroup.name.single=Verschiebe zur Gruppe... +MoveNodeToGroup.name.multiple=Verschiebe alle zur Gruppe... +RemoveNodeFromGroup.name.single=Von seiner Gruppe entfernen +RemoveNodeFromGroup.name.multiple=Alle von deren Gruppe entfernen + +Settle.name.single=Ausgleichen +Settle.name.multiple=Alle ausgleichen +Free.name.single=Freigeben +Free.name.multiple=Alle Freigeben +SetNodesSize.name.single=Setze Knotengrφίe... +SetNodesSize.name.multiple=Setze alle Knotengrφίen... + +MergeNodes.name=Knoten verschmelzen... +MergeNodes.description=Alle Knoten werden in einem neuen verschmolzen, Kanten und Werte werden mithilfe verschiedener Vorgehensweisen kombiniert. +LinkNodes.name=Verknόpfung zu Knoten... +LinkNodes.description=Erzeuge Kanten (gerichtet oder ungerichtet) zwischen einem Knoten und allen selektierten Knoten. +CopyNodes.name.single=Duplizieren +CopyNodes.name.multiple=Alle Duplizieren diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_es.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_es.properties index da2cbd2d66..20cefa0c28 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_es.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_es.properties @@ -1,88 +1,40 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Eduardo Ramos , 2011. -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 14\:40+0000\nLast-Translator\: Eduardo Ramos \nLanguage-Team\: Spanish (http\://www.transifex.com/projects/p/gephi/language/es/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: es\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n - OpenInEditNodeWindow.name=Editar nodo - OpenInEditNodeWindow.name.multiple=Editar todos nodos - -OpenInEditNodeWindow.description=Cambiar tama\u00f1o, posici\u00f3n, color y atributos. - -OpenInEditNodeWindow.description.multiple=Cambiar tama\u00f1o, posici\u00f3n, color y atributos. Los campos estar\u00e1n vac\u00edos inicialmente. - +OpenInEditNodeWindow.description=Cambiar tamaρo, posiciσn, color y atributos. +OpenInEditNodeWindow.description.multiple=Cambiar tamaρo, posiciσn, color y atributos. Los campos estarαn vacνos inicialmente. SelectOnGraph.name=Seleccionar en la vista del grafo - SelectNeighboursOnTable.name=Seleccionar nodos vecinos en la tabla - SelectEdgesOnTable.name=Seleccionar aristas relacionadas - DeleteNodes.name.single=Eliminar - DeleteNodes.name.multiple=Eliminar todos - -DeleteNodes.confirmation.message=\u00bfConfirmar borrado de nodo(s)? - +DeleteNodes.confirmation.message=ΏConfirmar borrado de nodo(s)? ClearNodesData.name.single=Borrar datos del nodo... - ClearNodesData.name.multiple=Borrar datos de todos los nodos... - ClearNodesData.description=Borrar datos lo(s) nodo(s) seleccionado(s) - -ClearNodesData.ui.description=Borrar columnas\: - +ClearNodesData.ui.description=Borrar columnas: CopyNodeDataToOtherNodes.name=Sobreescribir datos a los otros nodos seleccionados... - -CopyNodeDataToOtherNodes.description=Copia las columnas del nodo seleccionado a los otros nodos seleccionados - -CopyNodeDataToOtherNodes.ui.rowDescription=Copiar nodo\: - -CopyNodeDataToOtherNodes.ui.columnsDescription=Sobreescribir columnas\: - +CopyNodeDataToOtherNodes.description=Copia la columna del nodo seleccionado a otros nodos seleccionados. +CopyNodeDataToOtherNodes.ui.rowDescription=Copiar nodo: +CopyNodeDataToOtherNodes.ui.columnsDescription=Sobreescribir columnas: Group.name=Agrupar - Ungroup.name.single=Desagrupar - Ungroup.name.multiple=Desagrupar grupos seleccionados - UngroupRecursively.name.single=Desagrupar recursivamente - UngroupRecursively.name.multiple=Desagrupar grupos seleccionados recursivamente - UngroupRecursively.description=Desagrupa los grupos seleccionados y sus descendientes - MoveNodeToGroup.name.single=Mover a grupo... - MoveNodeToGroup.name.multiple=Mover todos a grupo... - RemoveNodeFromGroup.name.single=Quitar del grupo - RemoveNodeFromGroup.name.multiple=Quitar todos de su grupo - Settle.name.single=Bloquear - Settle.name.multiple=Bloquear todos - Free.name.single=Desbloquear - Free.name.multiple=Desbloquear todos - -SetNodesSize.name.single=Configurar tama\u00f1o del nodo... - -SetNodesSize.name.multiple=Configurar tama\u00f1o de los nodos... - -MergeNodes.name=Mezclar nodos... - -MergeNodes.description=Todos los nodos son mezclados creando uno nuevo, combinando las aristas y valores utilizando diferentes estrategias - +SetNodesSize.name.single=Configurar tamaρo del nodo... +SetNodesSize.name.multiple=Configurar tamaρo de los nodos... +MergeNodes.name=Fusionar nodos... +MergeNodes.description=Todos los nodos son fusionados en uno nuevo, combinando las aristas y valores utilizando diferentes estrategias LinkNodes.name=Enlazar a nodos... - -LinkNodes.description=Crea aristas (dirigidas o no dirigidas) entre el nodo escogido y todos los dem\u00e1s nodos seleccionados - +LinkNodes.description=Crea aristas (dirigidas o no dirigidas) entre el nodo escogido y todos los demαs nodos seleccionados CopyNodes.name.single=Duplicar - CopyNodes.name.multiple=Duplicar todos diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_fr.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_fr.properties index c06c787b90..205d6d256f 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_fr.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_fr.properties @@ -1,88 +1,45 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -# , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-07 11\:16+0000\nLast-Translator\: gephi \nLanguage-Team\: French (http\://www.transifex.com/projects/p/gephi/language/fr/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fr\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -OpenInEditNodeWindow.name=Editer le noeud - -OpenInEditNodeWindow.name.multiple=Editer tous les noeuds - -OpenInEditNodeWindow.description=Change la taille, couleur, position et attributs. - -OpenInEditNodeWindow.description.multiple=Change la taille, couleur, position et attributs. Les champs sont vides au d\u00e9but. - -SelectOnGraph.name=S\u00e9lectionner dans la Vue d'Ensemble - -SelectNeighboursOnTable.name=S\u00e9lectionner les noeuds voisins - -SelectEdgesOnTable.name=S\u00e9lectionner les liens connect\u00e9s - -DeleteNodes.name.single=Supprimer - -DeleteNodes.name.multiple=Tout supprimer - -DeleteNodes.confirmation.message=Confirmer la suppression des noeuds ? - -ClearNodesData.name.single=Effacer... - -ClearNodesData.name.multiple=Tout effacer... - -ClearNodesData.description=Effacer les donn\u00e9es des noeuds s\u00e9lectionn\u00e9s - -ClearNodesData.ui.description=Effacer les colonnes \: - -CopyNodeDataToOtherNodes.name=Ecraser les donn\u00e9es des autres noeuds s\u00e9lectionn\u00e9s... - -CopyNodeDataToOtherNodes.description=Copier les colonnes du noeud vers les autres noeuds s\u00e9lectionn\u00e9s - -CopyNodeDataToOtherNodes.ui.rowDescription=Copier le noeud \: - -CopyNodeDataToOtherNodes.ui.columnsDescription=Ecraser les colonnes \: - -Group.name=Grouper - -Ungroup.name.single=D\u00e9grouper - -Ungroup.name.multiple=D\u00e9grouper les noeuds s\u00e9lectionn\u00e9s - -UngroupRecursively.name.single=D\u00e9grouper r\u00e9cursivement - -UngroupRecursively.name.multiple=D\u00e9grouper la s\u00e9lection r\u00e9cursivement - -UngroupRecursively.description=D\u00e9grouper les groupes s\u00e9lectionn\u00e9s et leur descendants - -MoveNodeToGroup.name.single=D\u00e9placer dans un groupe... - -MoveNodeToGroup.name.multiple=Tout d\u00e9placer dans un groupe... - -RemoveNodeFromGroup.name.single=Retirer de son groupe - -RemoveNodeFromGroup.name.multiple=Tout retirer des groupes - -Settle.name.single=Fixer - -Settle.name.multiple=Tout fixer - -Free.name.single=Rel\u00e2cher - -Free.name.multiple=Tout rel\u00e2cher - -SetNodesSize.name.single=D\u00e9finir la taille... - -SetNodesSize.name.multiple=D\u00e9finir la taille de tous... - -MergeNodes.name=Fusionner les noeuds... - -MergeNodes.description=Tous les noeuds sont fusionn\u00e9s dans un nouveau noeud unique, combinant les liens et les valeurs d'attributs par diff\u00e9rentes strat\u00e9gies. - -LinkNodes.name=Connecter aux noeuds... - -LinkNodes.description=Cr\u00e9er les liens (direct ou non) entre un noeud et tous les autres s\u00e9lectionn\u00e9s - -CopyNodes.name.single=Dupliquer - -CopyNodes.name.multiple=Tout dupliquer +OpenInEditNodeWindow.name=Editer le noeud +OpenInEditNodeWindow.name.multiple=Editer tous les noeuds +OpenInEditNodeWindow.description=Change la taille, couleur, position et attributs. +OpenInEditNodeWindow.description.multiple=Change la taille, couleur, position et attributs. Les champs sont vides au dιbut. + +SelectOnGraph.name=Sιlectionner dans la Vue d'Ensemble +SelectNeighboursOnTable.name=Sιlectionner les noeuds voisins +SelectEdgesOnTable.name=Sιlectionner les liens connectιs +DeleteNodes.name.single=Supprimer +DeleteNodes.name.multiple=Tout supprimer +DeleteNodes.confirmation.message=Confirmer la suppression des noeuds ? + +ClearNodesData.name.single=Effacer... +ClearNodesData.name.multiple=Tout effacer... +ClearNodesData.description=Effacer les donnιes des noeuds sιlectionnιs +ClearNodesData.ui.description=Effacer les colonnes : +CopyNodeDataToOtherNodes.name=Ecraser les donnιes des autres noeuds sιlectionnιs... +CopyNodeDataToOtherNodes.description=Copier les colonnes du noeud vers les autres noeuds sιlectionnιs +CopyNodeDataToOtherNodes.ui.rowDescription=Copier le noeud : +CopyNodeDataToOtherNodes.ui.columnsDescription=Ecraser les colonnes : + +Group.name=Grouper +Ungroup.name.single=Dιgrouper +Ungroup.name.multiple=Dιgrouper les noeuds sιlectionnιs +UngroupRecursively.name.single=Dιgrouper rιcursivement +UngroupRecursively.name.multiple=Dιgrouper la sιlection rιcursivement +UngroupRecursively.description=Dιgrouper les groupes sιlectionnιs et leur descendants +MoveNodeToGroup.name.single=Dιplacer dans un groupe... +MoveNodeToGroup.name.multiple=Tout dιplacer dans un groupe... +RemoveNodeFromGroup.name.single=Retirer de son groupe +RemoveNodeFromGroup.name.multiple=Tout retirer des groupes + +Settle.name.single=Fixer +Settle.name.multiple=Tout fixer +Free.name.single=Relβcher +Free.name.multiple=Tout relβcher +SetNodesSize.name.single=Dιfinir la taille... +SetNodesSize.name.multiple=Dιfinir la taille de tous... + +MergeNodes.name=Fusionner les noeuds... +MergeNodes.description=Tous les noeuds sont fusionnιs dans un nouveau noeud unique, combinant les liens et les valeurs d'attributs par diffιrentes stratιgies. +LinkNodes.name=Connecter aux noeuds... +LinkNodes.description=Crιer les liens (direct ou non) entre un noeud et tous les autres sιlectionnιs +CopyNodes.name.single=Dupliquer +CopyNodes.name.multiple=Tout dupliquer diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_he.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_he.properties new file mode 100644 index 0000000000..18077b4c59 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_he.properties @@ -0,0 +1,40 @@ +OpenInEditNodeWindow.name=Edit node +OpenInEditNodeWindow.name.multiple=Edit all nodes +OpenInEditNodeWindow.description=Change size, position, color and attributes. +OpenInEditNodeWindow.description.multiple=Change size, position, color and attributes. Fields will be blank at first. +SelectOnGraph.name=Select on Overview +SelectNeighboursOnTable.name=Select neighbour nodes on table +SelectEdgesOnTable.name=Select related edges +DeleteNodes.name.single=\u05de\u05d7\u05e7 +DeleteNodes.name.multiple=Delete all +DeleteNodes.confirmation.message=Confirm nodes deletion? +ClearNodesData.name.single=Clear... +ClearNodesData.name.multiple=Clear all... +ClearNodesData.description=Clear data of the selected nodes +ClearNodesData.ui.description=Clear columns: +CopyNodeDataToOtherNodes.name=Overwrite data to the other selected nodes... +CopyNodeDataToOtherNodes.description=Copy the selected node columns to the other selected nodes. +CopyNodeDataToOtherNodes.ui.rowDescription=Copy node: +CopyNodeDataToOtherNodes.ui.columnsDescription=Overwrite columns: +Group.name=Group +Ungroup.name.single=Ungroup +Ungroup.name.multiple=Ungroup selected groups +UngroupRecursively.name.single=Ungroup recursively +UngroupRecursively.name.multiple=Ungroup selected groups recursively +UngroupRecursively.description=Ungroup the selected groups and their descendants +MoveNodeToGroup.name.single=Move to group... +MoveNodeToGroup.name.multiple=Move all to group... +RemoveNodeFromGroup.name.single=Remove from its group +RemoveNodeFromGroup.name.multiple=Remove all from their group +Settle.name.single=Settle +Settle.name.multiple=Settle all +Free.name.single=Free +Free.name.multiple=Free all +SetNodesSize.name.single=Set node size... +SetNodesSize.name.multiple=Set all nodes size... +MergeNodes.name=Merge nodes... +MergeNodes.description=All nodes are merged into a new one, combining the edges and values using different strategies +LinkNodes.name=Link to nodes... +LinkNodes.description=Create edges (directed or undirected) between one node and all the selected nodes +CopyNodes.name.single=\u05e9\u05db\u05e4\u05dc +CopyNodes.name.multiple=Duplicate all diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_hu.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_hu.properties new file mode 100644 index 0000000000..aa4b4c6155 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_hu.properties @@ -0,0 +1,42 @@ + + +Settle.name.multiple=Mindent rendezni +ClearNodesData.name.single=T\u00F6rl\u00E9s +LinkNodes.description=Hozzon l\u00E9tre \u00E9leket (ir\u00E1ny\u00EDtott vagy nem ir\u00E1ny\u00EDtott) egy csom\u00F3pont \u00E9s az \u00F6sszes kiv\u00E1lasztott csom\u00F3pont k\u00F6z\u00F6tt +CopyNodeDataToOtherNodes.ui.rowDescription=Csom\u00F3pont m\u00E1sol\u00E1sa: +MergeNodes.description=Az \u00F6sszes csom\u00F3pont egy \u00FAjba egyes\u00FCl, az \u00E9leket \u00E9s az \u00E9rt\u00E9keket k\u00FCl\u00F6nb\u00F6z\u0151 strat\u00E9gi\u00E1k haszn\u00E1lat\u00E1val kombin\u00E1lva +SelectOnGraph.name=V\u00E1lassza az \u00C1ttekint\u00E9s lehet\u0151s\u00E9get +Ungroup.name.multiple=A kiv\u00E1lasztott csoportok csoportos\u00EDt\u00E1sa +ClearNodesData.name.multiple=Mindent t\u00F6r\u00F6l... +MergeNodes.name=Csom\u00F3pontok egyes\u00EDt\u00E9se... +MoveNodeToGroup.name.multiple=Az \u00F6sszes \u00E1thelyez\u00E9se a csoportba... +RemoveNodeFromGroup.name.single=T\u00E1vol\u00EDtsa el a csoportb\u00F3l +SetNodesSize.name.single=\u00C1ll\u00EDtsa be a csom\u00F3 m\u00E9ret\u00E9t... +CopyNodeDataToOtherNodes.description=M\u00E1solja a kijel\u00F6lt csom\u00F3pont oszlopait a t\u00F6bbi kijel\u00F6lt csom\u00F3pontba. +OpenInEditNodeWindow.description=M\u00E9ret, poz\u00EDci\u00F3, sz\u00EDn \u00E9s attrib\u00FAtumok m\u00F3dos\u00EDt\u00E1sa. +Group.name=Csoport +Free.name.multiple=Ingyenes minden +CopyNodes.name.single=M\u00E1solat +UngroupRecursively.name.single=Rekurz\u00EDv csoportbont\u00E1s +UngroupRecursively.description=Bontsa ki a kiv\u00E1lasztott csoportokat \u00E9s lesz\u00E1rmazottjaikat +OpenInEditNodeWindow.name=Csom\u00F3pont szerkeszt\u00E9se +ClearNodesData.description=A kiv\u00E1lasztott csom\u00F3pontok adatainak t\u00F6rl\u00E9se +Free.name.single=Ingyenes +SetNodesSize.name.multiple=\u00C1ll\u00EDtsa be az \u00F6sszes csom\u00F3 m\u00E9ret\u00E9t... +OpenInEditNodeWindow.description.multiple=M\u00E9ret, poz\u00EDci\u00F3, sz\u00EDn \u00E9s attrib\u00FAtumok m\u00F3dos\u00EDt\u00E1sa. A mez\u0151k el\u0151sz\u00F6r \u00FCresek lesznek. +Settle.name.single=Rendezni +MoveNodeToGroup.name.single=Mozgat\u00E1s a csoportba... +LinkNodes.name=Link a csom\u00F3pontokhoz... +CopyNodes.name.multiple=Az \u00F6sszes megkett\u0151z\u00E9se +CopyNodeDataToOtherNodes.ui.columnsDescription=Oszlopok fel\u00FCl\u00EDr\u00E1sa: +RemoveNodeFromGroup.name.multiple=Az \u00F6sszes elt\u00E1vol\u00EDt\u00E1sa a csoportb\u00F3l +SelectNeighboursOnTable.name=V\u00E1lassza ki a szomsz\u00E9dos csom\u00F3pontokat a t\u00E1bl\u00E1n +SelectEdgesOnTable.name=V\u00E1lassza ki a kapcsol\u00F3d\u00F3 \u00E9leket +ClearNodesData.ui.description=Oszlopok t\u00F6rl\u00E9se: +DeleteNodes.name.multiple=Mindet t\u00F6rli +DeleteNodes.confirmation.message=Meger\u0151s\u00EDti a csom\u00F3pontok t\u00F6rl\u00E9s\u00E9t? +UngroupRecursively.name.multiple=A kiv\u00E1lasztott csoportok csoportos\u00EDt\u00E1sa rekurz\u00EDv m\u00F3don +CopyNodeDataToOtherNodes.name=\u00CDrja \u00E1t az adatokat a t\u00F6bbi kiv\u00E1lasztott csom\u00F3pontra... +Ungroup.name.single=Csoportbont\u00E1s felold\u00E1sa +DeleteNodes.name.single=T\u00F6r\u00F6l +OpenInEditNodeWindow.name.multiple=Szerkessze az \u00F6sszes csom\u00F3pontot diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_it.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_it.properties new file mode 100644 index 0000000000..7a9a7683c5 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_it.properties @@ -0,0 +1,40 @@ +OpenInEditNodeWindow.name=Modifica nodo +OpenInEditNodeWindow.name.multiple=Edit all nodes +OpenInEditNodeWindow.description=Change size, position, color and attributes. +OpenInEditNodeWindow.description.multiple=Change size, position, color and attributes. Fields will be blank at first. +SelectOnGraph.name=Select on Overview +SelectNeighboursOnTable.name=Select neighbour nodes on table +SelectEdgesOnTable.name=Select related edges +DeleteNodes.name.single=Cancella +DeleteNodes.name.multiple=Delete all +DeleteNodes.confirmation.message=Confirm nodes deletion? +ClearNodesData.name.single=Clear... +ClearNodesData.name.multiple=Clear all... +ClearNodesData.description=Clear data of the selected nodes +ClearNodesData.ui.description=Clear columns: +CopyNodeDataToOtherNodes.name=Overwrite data to the other selected nodes... +CopyNodeDataToOtherNodes.description=Copy the selected node columns to the other selected nodes. +CopyNodeDataToOtherNodes.ui.rowDescription=Copy node: +CopyNodeDataToOtherNodes.ui.columnsDescription=Overwrite columns: +Group.name=Raggruppa +Ungroup.name.single=Separa +Ungroup.name.multiple=Ungroup selected groups +UngroupRecursively.name.single=Ungroup recursively +UngroupRecursively.name.multiple=Ungroup selected groups recursively +UngroupRecursively.description=Ungroup the selected groups and their descendants +MoveNodeToGroup.name.single=Move to group... +MoveNodeToGroup.name.multiple=Move all to group... +RemoveNodeFromGroup.name.single=Remove from its group +RemoveNodeFromGroup.name.multiple=Remove all from their group +Settle.name.single=Fissa +Settle.name.multiple=Settle all +Free.name.single=Libera +Free.name.multiple=Free all +SetNodesSize.name.single=Set node size... +SetNodesSize.name.multiple=Set all nodes size... +MergeNodes.name=Merge nodes... +MergeNodes.description=All nodes are merged into a new one, combining the edges and values using different strategies +LinkNodes.name=Link to nodes... +LinkNodes.description=Create edges (directed or undirected) between one node and all the selected nodes +CopyNodes.name.single=Duplica +CopyNodes.name.multiple=Duplicate all diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_ja.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_ja.properties index 91b208ff5f..520cc26265 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_ja.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_ja.properties @@ -1,87 +1,45 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-27 08\:12+0000\nLast-Translator\: Siro Kida \nLanguage-Team\: Japanese (http\://www.transifex.com/projects/p/gephi/language/ja/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ja\nPlural-Forms\: nplurals\=1; plural\=0;\n - -OpenInEditNodeWindow.name=\u30ce\u30fc\u30c9\u306e\u7de8\u96c6 - -OpenInEditNodeWindow.name.multiple=\u3059\u3079\u3066\u306e\u30ce\u30fc\u30c9\u306e\u7de8\u96c6 - -OpenInEditNodeWindow.description=\u30b5\u30a4\u30ba\u3001\u4f4d\u7f6e\u3001\u8272\u304a\u3088\u3073\u5c5e\u6027\u306e\u5909\u66f4\u3002 - -OpenInEditNodeWindow.description.multiple=\u30b5\u30a4\u30ba\u3001\u4f4d\u7f6e\u3001\u8272\u304a\u3088\u3073\u5c5e\u6027\u306e\u5909\u66f4\u3002\u6700\u521d\u306f\u7a7a\u6b04\u3067\u3059\u3002 - -SelectOnGraph.name=\u6982\u8981\u3067\u9078\u629e - -SelectNeighboursOnTable.name=\u30c6\u30fc\u30d6\u30eb\u3067\u96a3\u63a5\u30ce\u30fc\u30c9\u3092\u9078\u629e - -SelectEdgesOnTable.name=\u95a2\u9023\u3059\u308b\u8fba\u3092\u9078\u629e - -DeleteNodes.name.single=\u524a\u9664 - -DeleteNodes.name.multiple=\u3059\u3079\u3066\u306e\u524a\u9664 - -DeleteNodes.confirmation.message=\u30ce\u30fc\u30c9\u306e\u524a\u9664\u306e\u78ba\u8a8d\uff1f - -ClearNodesData.name.single=\u30af\u30ea\u30a2... - -ClearNodesData.name.multiple=\u3059\u3079\u3066\u3092\u30af\u30ea\u30a2... - -ClearNodesData.description=\u9078\u629e\u3057\u305f\u30ce\u30fc\u30c9\u306e\u30c7\u30fc\u30bf\u3092\u30af\u30ea\u30a2 - -ClearNodesData.ui.description=\u5217\u3092\u30af\u30ea\u30a2\: - -CopyNodeDataToOtherNodes.name=\u30c7\u30fc\u30bf\u3092\u5225\u306e\u9078\u629e\u3057\u305f\u30ce\u30fc\u30c9\u306b\u4e0a\u66f8\u304d\: - -CopyNodeDataToOtherNodes.description=\u9078\u629e\u3057\u305f\u30ce\u30fc\u30c9\u5217\u3092\u5225\u306e\u9078\u629e\u3057\u305f\u30ce\u30fc\u30c9\u306b\u30b3\u30d4\u30fc - -CopyNodeDataToOtherNodes.ui.rowDescription=\u30ce\u30fc\u30c9\u3092\u30b3\u30d4\u30fc\: - -CopyNodeDataToOtherNodes.ui.columnsDescription=\u5217\u3092\u4e0a\u66f8\u304d\: - -Group.name=\u30b0\u30eb\u30fc\u30d7\u5316 - -Ungroup.name.single=\u30b0\u30eb\u30fc\u30d7\u5316\u89e3\u9664 - -Ungroup.name.multiple=\u9078\u629e\u3057\u305f\u30b0\u30eb\u30fc\u30d7\u306e\u30b0\u30eb\u30fc\u30d7\u5316\u89e3\u9664 - -UngroupRecursively.name.single=\u518d\u5e30\u7684\u306b\u30b0\u30eb\u30fc\u30d7\u5316\u3092\u89e3\u9664 - -UngroupRecursively.name.multiple=\u9078\u629e\u3055\u308c\u305f\u30b0\u30eb\u30fc\u30d7\u3092\u518d\u5e30\u7684\u306b\u30b0\u30eb\u30fc\u30d7\u5316\u89e3\u9664 - -UngroupRecursively.description=\u9078\u629e\u3055\u308c\u305f\u30b0\u30eb\u30fc\u30d7\u3068\u305d\u306e\u6d3e\u751f\u30b0\u30eb\u30fc\u30d7\u306e\u30b0\u30eb\u30fc\u30d7\u5316\u89e3\u9664 - -MoveNodeToGroup.name.single=\u30b0\u30eb\u30fc\u30d7\u306b\u79fb\u52d5\: - -MoveNodeToGroup.name.multiple=\u5168\u3066\u3092\u30b0\u30eb\u30fc\u30d7\u306b\u79fb\u52d5\: - -RemoveNodeFromGroup.name.single=\u30b0\u30eb\u30fc\u30d7\u304b\u3089\u6392\u9664 - -RemoveNodeFromGroup.name.multiple=\u3059\u3079\u3066\u3092\u30b0\u30eb\u30fc\u30d7\u304b\u3089\u6392\u9664 - -Settle.name.single=\u56fa\u5b9a - -Settle.name.multiple=\u3059\u3079\u3066\u3092\u56fa\u5b9a - -Free.name.single=\u53ef\u52d5 - -Free.name.multiple=\u3059\u3079\u3066\u3092\u53ef\u52d5 - -SetNodesSize.name.single=\u30ce\u30fc\u30c9\u306e\u30b5\u30a4\u30ba\u306e\u8a2d\u5b9a... - -SetNodesSize.name.multiple=\u3059\u3079\u3066\u306e\u30ce\u30fc\u30c9\u306e\u30b5\u30a4\u30ba\u306e\u8a2d\u5b9a... - -MergeNodes.name=\u30ce\u30fc\u30c9\u306e\u7d71\u5408... - -MergeNodes.description=\u3059\u3079\u3066\u306e\u30ce\u30fc\u30c9\u306f\u3001\u5225\u306e\u6226\u7565\u3092\u4f7f\u3063\u3066\u8fba\u3068\u5024\u3092\u7d44\u307f\u5408\u308f\u305b\u3001\u65b0\u3057\u3044\u3082\u306e\u306b\u7d71\u5408\u3055\u308c\u307e\u3059 - -LinkNodes.name=\u30ce\u30fc\u30c9\u3078\u306e\u30ea\u30f3\u30af... - -LinkNodes.description=\uff11\u3064\u306e\u30ce\u30fc\u30c9\u3068\u9078\u629e\u3057\u305f\u3059\u3079\u3066\u306e\u30ce\u30fc\u30c9\u9593\u306e\u8fba(\u6709\u5411\u30b0\u30e9\u30d5\u307e\u305f\u306f\u7121\u5411)\u3092\u4f5c\u6210 - -CopyNodes.name.single=\u8907\u5199 - -CopyNodes.name.multiple=\u3059\u3079\u3066\u306e\u8907\u5199 +OpenInEditNodeWindow.name=\u30ce\u30fc\u30c9\u306e\u7de8\u96c6 +OpenInEditNodeWindow.name.multiple=\u3059\u3079\u3066\u306e\u30ce\u30fc\u30c9\u306e\u7de8\u96c6 +OpenInEditNodeWindow.description=\u30b5\u30a4\u30ba\u3001\u4f4d\u7f6e\u3001\u8272\u304a\u3088\u3073\u5c5e\u6027\u306e\u5909\u66f4\u3002 +OpenInEditNodeWindow.description.multiple=\u30b5\u30a4\u30ba\u3001\u4f4d\u7f6e\u3001\u8272\u304a\u3088\u3073\u5c5e\u6027\u306e\u5909\u66f4\u3002\u6700\u521d\u306f\u7a7a\u6b04\u3067\u3059\u3002 + +SelectOnGraph.name=\u6982\u8981\u3067\u9078\u629e +SelectNeighboursOnTable.name=\u30c6\u30fc\u30d6\u30eb\u3067\u96a3\u63a5\u30ce\u30fc\u30c9\u3092\u9078\u629e +SelectEdgesOnTable.name=\u95a2\u9023\u3059\u308b\u8fba\u3092\u9078\u629e +DeleteNodes.name.single=\u524a\u9664 +DeleteNodes.name.multiple=\u3059\u3079\u3066\u306e\u524a\u9664 +DeleteNodes.confirmation.message=\u30ce\u30fc\u30c9\u306e\u524a\u9664\u306e\u78ba\u8a8d\uff1f + +ClearNodesData.name.single=\u30af\u30ea\u30a2... +ClearNodesData.name.multiple=\u3059\u3079\u3066\u3092\u30af\u30ea\u30a2... +ClearNodesData.description=\u9078\u629e\u3057\u305f\u30ce\u30fc\u30c9\u306e\u30c7\u30fc\u30bf\u3092\u30af\u30ea\u30a2 +ClearNodesData.ui.description=\u5217\u3092\u30af\u30ea\u30a2: +CopyNodeDataToOtherNodes.name=\u30c7\u30fc\u30bf\u3092\u5225\u306e\u9078\u629e\u3057\u305f\u30ce\u30fc\u30c9\u306b\u4e0a\u66f8\u304d: +CopyNodeDataToOtherNodes.description=\u9078\u629e\u3057\u305f\u30ce\u30fc\u30c9\u5217\u3092\u5225\u306e\u9078\u629e\u3057\u305f\u30ce\u30fc\u30c9\u306b\u30b3\u30d4\u30fc +CopyNodeDataToOtherNodes.ui.rowDescription=\u30ce\u30fc\u30c9\u3092\u30b3\u30d4\u30fc: +CopyNodeDataToOtherNodes.ui.columnsDescription=\u5217\u3092\u4e0a\u66f8\u304d: + +Group.name=\u30b0\u30eb\u30fc\u30d7\u5316 +Ungroup.name.single=\u30b0\u30eb\u30fc\u30d7\u5316\u89e3\u9664 +Ungroup.name.multiple=\u9078\u629e\u3057\u305f\u30b0\u30eb\u30fc\u30d7\u306e\u30b0\u30eb\u30fc\u30d7\u5316\u89e3\u9664 +UngroupRecursively.name.single=\u518d\u5e30\u7684\u306b\u30b0\u30eb\u30fc\u30d7\u5316\u3092\u89e3\u9664 +UngroupRecursively.name.multiple=\u9078\u629e\u3055\u308c\u305f\u30b0\u30eb\u30fc\u30d7\u3092\u518d\u5e30\u7684\u306b\u30b0\u30eb\u30fc\u30d7\u5316\u89e3\u9664 +UngroupRecursively.description=\u9078\u629e\u3055\u308c\u305f\u30b0\u30eb\u30fc\u30d7\u3068\u305d\u306e\u6d3e\u751f\u30b0\u30eb\u30fc\u30d7\u306e\u30b0\u30eb\u30fc\u30d7\u5316\u89e3\u9664 +MoveNodeToGroup.name.single=\u30b0\u30eb\u30fc\u30d7\u306b\u79fb\u52d5: +MoveNodeToGroup.name.multiple=\u5168\u3066\u3092\u30b0\u30eb\u30fc\u30d7\u306b\u79fb\u52d5: +RemoveNodeFromGroup.name.single=\u30b0\u30eb\u30fc\u30d7\u304b\u3089\u6392\u9664 +RemoveNodeFromGroup.name.multiple=\u3059\u3079\u3066\u3092\u30b0\u30eb\u30fc\u30d7\u304b\u3089\u6392\u9664 + +Settle.name.single=\u56fa\u5b9a +Settle.name.multiple=\u3059\u3079\u3066\u3092\u56fa\u5b9a +Free.name.single=\u53ef\u52d5 +Free.name.multiple=\u3059\u3079\u3066\u3092\u53ef\u52d5 +SetNodesSize.name.single=\u30ce\u30fc\u30c9\u306e\u30b5\u30a4\u30ba\u306e\u8a2d\u5b9a... +SetNodesSize.name.multiple=\u3059\u3079\u3066\u306e\u30ce\u30fc\u30c9\u306e\u30b5\u30a4\u30ba\u306e\u8a2d\u5b9a... + +MergeNodes.name=\u30ce\u30fc\u30c9\u306e\u7d71\u5408... +MergeNodes.description=\u3059\u3079\u3066\u306e\u30ce\u30fc\u30c9\u306f\u3001\u5225\u306e\u6226\u7565\u3092\u4f7f\u3063\u3066\u8fba\u3068\u5024\u3092\u7d44\u307f\u5408\u308f\u305b\u3001\u65b0\u3057\u3044\u3082\u306e\u306b\u7d71\u5408\u3055\u308c\u307e\u3059 +LinkNodes.name=\u30ce\u30fc\u30c9\u3078\u306e\u30ea\u30f3\u30af... +LinkNodes.description=\uff11\u3064\u306e\u30ce\u30fc\u30c9\u3068\u9078\u629e\u3057\u305f\u3059\u3079\u3066\u306e\u30ce\u30fc\u30c9\u9593\u306e\u8fba(\u6709\u5411\u30b0\u30e9\u30d5\u307e\u305f\u306f\u7121\u5411)\u3092\u4f5c\u6210 +CopyNodes.name.single=\u8907\u5199 +CopyNodes.name.multiple=\u3059\u3079\u3066\u306e\u8907\u5199 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_ko.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_ko.properties new file mode 100644 index 0000000000..6d1b1f4105 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_ko.properties @@ -0,0 +1,42 @@ + + +OpenInEditNodeWindow.name=\uB178\uB4DC \uD3B8\uC9D1 +OpenInEditNodeWindow.name.multiple=\uBAA8\uB4E0 \uB178\uB4DC \uD3B8\uC9D1 +OpenInEditNodeWindow.description=\uD06C\uAE30, \uC704\uCE58, \uC0C9\uC0C1 \uBC0F \uC18D\uC131 \uBCC0\uACBD. +SelectOnGraph.name=\uAC1C\uC694\uC5D0\uC11C \uC120\uD0DD +SelectNeighboursOnTable.name=\uD14C\uC774\uBE14\uC5D0\uC11C \uC774\uC6C3 \uB178\uB4DC \uC120\uD0DD +SelectEdgesOnTable.name=\uAD00\uB828\uB41C \uC5E3\uC9C0 \uC120\uD0DD +DeleteNodes.name.single=\uC0AD\uC81C +DeleteNodes.name.multiple=\uBAA8\uB450 \uC0AD\uC81C +DeleteNodes.confirmation.message=\uB178\uB4DC\uB97C \uC0AD\uC81C\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? +ClearNodesData.name.single=\uC9C0\uC6B0\uAE30... +ClearNodesData.name.multiple=\uBAA8\uB450 \uC9C0\uC6B0\uAE30... +ClearNodesData.description=\uC120\uD0DD\uB41C \uB178\uB4DC\uC758 \uB370\uC774\uD130\uB97C \uC9C0\uC6B0\uAE30 +ClearNodesData.ui.description=\uC5F4 \uC9C0\uC6B0\uAE30: +CopyNodeDataToOtherNodes.name=\uB2E4\uB978 \uC120\uD0DD \uB178\uB4DC\uC5D0 \uB370\uC774\uD130 \uB36E\uC5B4\uC4F0\uAE30... +CopyNodeDataToOtherNodes.ui.rowDescription=\uB178\uB4DC \uBCF5\uC0AC: +CopyNodeDataToOtherNodes.ui.columnsDescription=\uC5F4 \uB36E\uC5B4\uC4F0\uAE30: +Group.name=\uADF8\uB8F9 +Ungroup.name.single=\uADF8\uB8F9 \uD574\uC81C +Ungroup.name.multiple=\uC120\uD0DD\uB41C \uADF8\uB8F9 \uD574\uC81C +UngroupRecursively.name.single=\uC7AC\uADC0\uC801 \uADF8\uB8F9 \uD574\uC81C +UngroupRecursively.name.multiple=\uC120\uD0DD\uB41C \uADF8\uB8F9\uC744 \uC7AC\uADC0\uC801 \uD574\uC81C +UngroupRecursively.description=\uC120\uD0DD\uB41C \uADF8\uB8F9\uACFC \uD558\uC704 \uADF8\uB8F9\uC744 \uD574\uC81C +MoveNodeToGroup.name.single=\uADF8\uB8F9\uC73C\uB85C \uC774\uB3D9... +RemoveNodeFromGroup.name.multiple=\uADF8\uB8F9\uC73C\uB85C\uBD80\uD130 \uBAA8\uB450 \uC0AD\uC81C +SetNodesSize.name.single=\uB178\uB4DC \uD06C\uAE30 \uC124\uC815... +SetNodesSize.name.multiple=\uBAA8\uB4E0 \uB178\uB4DC \uD06C\uAE30 \uC124\uC815... +MergeNodes.name=\uB178\uB4DC \uBCD1\uD569... +LinkNodes.name=\uB178\uB4DC\uC5D0 \uB300\uD55C \uB9C1\uD06C... +LinkNodes.description=\uD55C \uB178\uB4DC\uC640 \uBAA8\uB4E0 \uC120\uD0DD \uB178\uB4DC \uC0AC\uC774\uC758 \uC5E3\uC9C0(\uBC29\uD5A5\uC131, \uBE44\uBC29\uD5A5\uC131)\uB97C \uC0DD\uC131 +CopyNodes.name.single=\uBCF5\uC81C +CopyNodes.name.multiple=\uBAA8\uB450 \uBCF5\uC81C +Settle.name.single=\uBC30\uCE58 +Settle.name.multiple=\uBAA8\uB450 \uBC30\uCE58 +Free.name.multiple=\uBAA8\uB450 \uC790\uC720 \uBC30\uCE58 +Free.name.single=\uC790\uC720 \uBC30\uCE58 +OpenInEditNodeWindow.description.multiple=\uD06C\uAE30, \uC704\uCE58, \uC0C9\uC0C1 \uBC0F \uC18D\uC131 \uBCC0\uACBD. \uCC98\uC74C\uC5D0\uB294 \uD544\uB4DC\uAC00 \uACF5\uBC31\uC785\uB2C8\uB2E4. +CopyNodeDataToOtherNodes.description=\uC120\uD0DD \uB178\uB4DC \uC5F4\uC744 \uB2E4\uB978 \uC120\uD0DD\uB41C \uB178\uB4DC\uC5D0 \uBCF5\uC0AC\uD569\uB2C8\uB2E4. +MoveNodeToGroup.name.multiple=\uBAA8\uB450 \uADF8\uB8F9\uC73C\uB85C \uC774\uB3D9... +RemoveNodeFromGroup.name.single=\uADF8\uB8F9\uC73C\uB85C\uBD80\uD130 \uC0AD\uC81C +MergeNodes.description=\uBAA8\uB4E0 \uB178\uB4DC\uB294 \uB2E4\uC591\uD55C \uC804\uB7B5\uC744 \uC0AC\uC6A9\uD558\uC5EC \uC5E3\uC9C0\uC640 \uAC12\uC744 \uACB0\uD569\uD558\uC5EC \uC0C8\uB85C\uC6B4 \uB178\uB4DC\uB85C \uBCD1\uD569\uB429\uB2C8\uB2E4 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_nl.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_nl.properties new file mode 100644 index 0000000000..231a2bbe6b --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_nl.properties @@ -0,0 +1,40 @@ +OpenInEditNodeWindow.name=Knoop bewerken +OpenInEditNodeWindow.name.multiple=Alle knopen bewerken +OpenInEditNodeWindow.description=Wijzig de grootte, positie, kleur en attributen. +OpenInEditNodeWindow.description.multiple=Wijzig de grootte, positie, kleur en attributen. De velden zullen in eerste instantie leeg zijn. +SelectOnGraph.name=Select on Overview +SelectNeighboursOnTable.name=Select neighbour nodes on table +SelectEdgesOnTable.name=Select related edges +DeleteNodes.name.single=Verwijderen +DeleteNodes.name.multiple=Alles verwijderen +DeleteNodes.confirmation.message=Confirm nodes deletion? +ClearNodesData.name.single=Wissen... +ClearNodesData.name.multiple=Alles wissen... +ClearNodesData.description=Clear data of the selected nodes +ClearNodesData.ui.description=Clear columns: +CopyNodeDataToOtherNodes.name=Overwrite data to the other selected nodes... +CopyNodeDataToOtherNodes.description=Copy the selected node columns to the other selected nodes. +CopyNodeDataToOtherNodes.ui.rowDescription=Knoop kopiλren: +CopyNodeDataToOtherNodes.ui.columnsDescription=Kolommen overschrijven: +Group.name=Groeperen +Ungroup.name.single=Ungroup +Ungroup.name.multiple=Ungroup selected groups +UngroupRecursively.name.single=Ungroup recursively +UngroupRecursively.name.multiple=Ungroup selected groups recursively +UngroupRecursively.description=Ungroup the selected groups and their descendants +MoveNodeToGroup.name.single=Move to group... +MoveNodeToGroup.name.multiple=Move all to group... +RemoveNodeFromGroup.name.single=Remove from its group +RemoveNodeFromGroup.name.multiple=Remove all from their group +Settle.name.single=Settle +Settle.name.multiple=Settle all +Free.name.single=Free +Free.name.multiple=Free all +SetNodesSize.name.single=Grootte van knoop instellen... +SetNodesSize.name.multiple=Grootte van alle knopen instellen... +MergeNodes.name=Knopen samenvoegen... +MergeNodes.description=All nodes are merged into a new one, combining the edges and values using different strategies +LinkNodes.name=Link to nodes... +LinkNodes.description=Create edges (directed or undirected) between one node and all the selected nodes +CopyNodes.name.single=Dupliceren +CopyNodes.name.multiple=Alles dupliceren diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_pt.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_pt.properties new file mode 100644 index 0000000000..1e5c46bc27 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_pt.properties @@ -0,0 +1,40 @@ +SelectOnGraph.name=Selecionar na Vis\u00E3o geral +CopyNodeDataToOtherNodes.description=Copia as colunas do n\u00F3 selecionado para os outros n\u00F3s selecionados. +SetNodesSize.name.multiple=Definir o tamanho de todos os n\u00F3s... +MergeNodes.name=Mesclar n\u00F3s... +CopyNodes.name.single=Duplicar +MergeNodes.description=Todos os n\u00F3s ser\u00E3o mesclados num novo n\u00F3, combinando as arestas e valores usando diferentes estrat\u00E9gias +LinkNodes.name=Conectar aos n\u00F3s... +LinkNodes.description=Criar arestas (dirigidas ou n\u00E3o) entre um n\u00F3 e todos os n\u00F3s selecionados +CopyNodes.name.multiple=Duplicar todos +CopyNodeDataToOtherNodes.ui.rowDescription=Copiar n\u00F3: +CopyNodeDataToOtherNodes.ui.columnsDescription=Sobrescrever colunas: +OpenInEditNodeWindow.name=Editar n\u00F3 +OpenInEditNodeWindow.name.multiple=Editar todos os n\u00F3s +OpenInEditNodeWindow.description=Alterar tamanho, cor, posi\u00E7\u00E3o e atributos. +OpenInEditNodeWindow.description.multiple=Alterar tamanho, cor, posi\u00E7\u00E3o e atributos. Os campos ser\u00E3o inicializados em branco. +SelectNeighboursOnTable.name=Selecionar n\u00F3s vizinhos na tabela +SelectEdgesOnTable.name=Selecionar arestas relacionadas +DeleteNodes.name.single=Apagar +DeleteNodes.name.multiple=Apagar todos +DeleteNodes.confirmation.message=Confirma apagar os n\u00F3s? +ClearNodesData.name.single=Limpar dados do n\u00F3... +ClearNodesData.name.multiple=Limpar dados de todos os n\u00F3s... +ClearNodesData.description=Limpar dados do(s) n\u00F3(s) selecionado(s) +ClearNodesData.ui.description=Limpar valores das colunas: +CopyNodeDataToOtherNodes.name=Sobrescrever dados dos outros n\u00F3s selecionados... +Group.name=Agrupar +Ungroup.name.single=Desagrupar +Ungroup.name.multiple=Desagrupar selecionados +UngroupRecursively.name.single=Desagrupar recursivamente +UngroupRecursively.name.multiple=Desagrupar os grupos selecionados recursivamente +UngroupRecursively.description=Desagrupar os grupos selecionados e os seus descendentes +MoveNodeToGroup.name.single=Mover para o grupo... +MoveNodeToGroup.name.multiple=Mover todos para o grupo... +RemoveNodeFromGroup.name.single=Remover do seu grupo +RemoveNodeFromGroup.name.multiple=Remover todos dos seus grupos +Settle.name.single=Bloquear +Settle.name.multiple=Bloquear todos +Free.name.single=Desbloquear +Free.name.multiple=Desbloquear todos +SetNodesSize.name.single=Definir o tamanho do n\u00F3... diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_pt_BR.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_pt_BR.properties index 7e83ca34b7..649c38848f 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_pt_BR.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_pt_BR.properties @@ -1,87 +1,45 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# C\u00e9lio CJr , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-08 23\:45+0000\nLast-Translator\: C\u00e9lio Faria Jr. \nLanguage-Team\: Portuguese (Brazil) (http\://www.transifex.com/projects/p/gephi/language/pt_BR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt_BR\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -OpenInEditNodeWindow.name=Editar n\u00f3 - -OpenInEditNodeWindow.name.multiple=Editar todos os n\u00f3s - -OpenInEditNodeWindow.description=Alterar tamanho, cor, posi\u00e7\u00e3o e atributos. - -OpenInEditNodeWindow.description.multiple=Alterar tamanho, cor, posi\u00e7\u00e3o e atributos. Os campos ser\u00e3o inicializados em branco. - -SelectOnGraph.name=Selecionar na Vis\u00e3o Geral - -SelectNeighboursOnTable.name=Selecionar n\u00f3s vizinhos na tabela - -SelectEdgesOnTable.name=Selecionar arestas relacionadas - -DeleteNodes.name.single=Excluir - -DeleteNodes.name.multiple=Excluir todos - -DeleteNodes.confirmation.message=Confirma a exclus\u00e3o dos n\u00f3s? - -ClearNodesData.name.single=Limpar dados do n\u00f3... - -ClearNodesData.name.multiple=Limpar dados de todos os n\u00f3s... - -ClearNodesData.description=Limpar dados do(s) n\u00f3(s) selecionado(s) - -ClearNodesData.ui.description=Limpar valores das colunas\: - -CopyNodeDataToOtherNodes.name=Sobrescrever dados dos outros n\u00f3s selecionados... - -CopyNodeDataToOtherNodes.description=Copia as colunas do n\u00f3 selecionado para os outros n\u00f3s selecionados - -CopyNodeDataToOtherNodes.ui.rowDescription=Copiar n\u00f3\: - -CopyNodeDataToOtherNodes.ui.columnsDescription=Sobrescrever colunas\: - -Group.name=Agrupar - -Ungroup.name.single=Desagrupar - -Ungroup.name.multiple=Desagrupar selecionados - -UngroupRecursively.name.single=Desagrupar recursivamente - -UngroupRecursively.name.multiple=Desagrupar os grupos selecionados recursivamente - -UngroupRecursively.description=Desagrupar os grupos selecionados e seus descendentes - -MoveNodeToGroup.name.single=Mover para o grupo... - -MoveNodeToGroup.name.multiple=Mover todos para o grupo... - -RemoveNodeFromGroup.name.single=Remover de seu grupo - -RemoveNodeFromGroup.name.multiple=Remover todos de seus grupos - -Settle.name.single=Bloquear - -Settle.name.multiple=Bloquear todos - -Free.name.single=Desbloquear - -Free.name.multiple=Desbloquear todos - -SetNodesSize.name.single=Definir o tamanho do n\u00f3... - -SetNodesSize.name.multiple=Definir o tamanho de todos os n\u00f3s... - -MergeNodes.name=Mesclar n\u00f3s... - -MergeNodes.description=Todos os n\u00f3s ser\u00e3o mesclados em um novo n\u00f3, combinando as arestas e valores usando diferentes estrat\u00e9gias - -LinkNodes.name=Conectar aos n\u00f3s... - -LinkNodes.description=Criar arestas (dirigidas ou n\u00e3o) entre um n\u00f3 e todos os n\u00f3s selecionados - -CopyNodes.name.single=Duplicar - -CopyNodes.name.multiple=Duplicar todos +OpenInEditNodeWindow.name=Editar nσ +OpenInEditNodeWindow.name.multiple=Editar todos os nσs +OpenInEditNodeWindow.description=Alterar tamanho, cor, posiηγo e atributos. +OpenInEditNodeWindow.description.multiple=Alterar tamanho, cor, posiηγo e atributos. Os campos serγo inicializados em branco. + +SelectOnGraph.name=Selecionar na Visγo Geral +SelectNeighboursOnTable.name=Selecionar nσs vizinhos na tabela +SelectEdgesOnTable.name=Selecionar arestas relacionadas +DeleteNodes.name.single=Excluir +DeleteNodes.name.multiple=Excluir todos +DeleteNodes.confirmation.message=Confirma a exclusγo dos nσs? + +ClearNodesData.name.single=Limpar dados do nσ... +ClearNodesData.name.multiple=Limpar dados de todos os nσs... +ClearNodesData.description=Limpar dados do(s) nσ(s) selecionado(s) +ClearNodesData.ui.description=Limpar valores das colunas: +CopyNodeDataToOtherNodes.name=Sobrescrever dados dos outros nσs selecionados... +CopyNodeDataToOtherNodes.description=Copia as colunas do nσ selecionado para os outros nσs selecionados +CopyNodeDataToOtherNodes.ui.rowDescription=Copiar nσ: +CopyNodeDataToOtherNodes.ui.columnsDescription=Sobrescrever colunas: + +Group.name=Agrupar +Ungroup.name.single=Desagrupar +Ungroup.name.multiple=Desagrupar selecionados +UngroupRecursively.name.single=Desagrupar recursivamente +UngroupRecursively.name.multiple=Desagrupar os grupos selecionados recursivamente +UngroupRecursively.description=Desagrupar os grupos selecionados e seus descendentes +MoveNodeToGroup.name.single=Mover para o grupo... +MoveNodeToGroup.name.multiple=Mover todos para o grupo... +RemoveNodeFromGroup.name.single=Remover de seu grupo +RemoveNodeFromGroup.name.multiple=Remover todos de seus grupos + +Settle.name.single=Bloquear +Settle.name.multiple=Bloquear todos +Free.name.single=Desbloquear +Free.name.multiple=Desbloquear todos +SetNodesSize.name.single=Definir o tamanho do nσ... +SetNodesSize.name.multiple=Definir o tamanho de todos os nσs... + +MergeNodes.name=Mesclar nσs... +MergeNodes.description=Todos os nσs serγo mesclados em um novo nσ, combinando as arestas e valores usando diferentes estratιgias +LinkNodes.name=Conectar aos nσs... +LinkNodes.description=Criar arestas (dirigidas ou nγo) entre um nσ e todos os nσs selecionados +CopyNodes.name.single=Duplicar +CopyNodes.name.multiple=Duplicar todos diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_ro.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_ro.properties new file mode 100644 index 0000000000..3a1aa45be5 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_ro.properties @@ -0,0 +1,42 @@ + + +OpenInEditNodeWindow.name=Editeaz\u0103 nod +OpenInEditNodeWindow.name.multiple=Editeaz\u0103 toate nodurile +OpenInEditNodeWindow.description=Schimb\u0103 dimensiunea, pozi\u021Bia, culoarea \u0219i atributele. +OpenInEditNodeWindow.description.multiple=Schimb\u0103 dimensiunea, pozi\u021Bia, culoarea \u0219i atributele. C\u00E2mpurile vor fi goale la \u00EEnceput. +SelectOnGraph.name=Selecteaz\u0103 pe graf +SelectNeighboursOnTable.name=Selecteaz\u0103 nodurile vecine \u00EEn tabel +SelectEdgesOnTable.name=Selecteaz\u0103 muchiile aferente +DeleteNodes.name.single=\u0218terge +DeleteNodes.confirmation.message=Confirm\u0103 \u0219tergerea nodurilor? +ClearNodesData.name.single=Cur\u0103\u021B\u0103... +ClearNodesData.name.multiple=Cur\u0103\u021B\u0103 tot... +ClearNodesData.ui.description=Cur\u0103\u021B\u0103 coloanele: +CopyNodeDataToOtherNodes.name=Suprascrie datele \u00EEn celelalte noduri selectate... +CopyNodeDataToOtherNodes.description=Copiaz\u0103 coloanele din nodul selectat \u00EEn celelalte noduri selectate. +Group.name=Grupeaz\u0103 +Ungroup.name.single=Degrupeaz\u0103 +Ungroup.name.multiple=Degrupeaz\u0103 grupurile selectate +UngroupRecursively.name.single=Degrupeaz\u0103 recursiv +UngroupRecursively.name.multiple=Degrupeaz\u0103 recursiv grupurile selectate +UngroupRecursively.description=Degrupeaz\u0103 grupurile selectate \u0219i descenden\u021Bii lor +MoveNodeToGroup.name.single=Mut\u0103 \u00EEn grup... +Settle.name.single=Fixeaz\u0103 +SetNodesSize.name.multiple=Seteaz\u0103 dimensiunea tuturor nodurilor... +MergeNodes.name=\u00CEmbin\u0103 nodurile... +MergeNodes.description=Toate nodurile sunt \u00EEmbinate \u00EEntr-unul nou, combin\u00E2nd muchiile \u0219i valorile folosind strategii diferite +LinkNodes.name=Conecteaz\u0103 cu nodurile... +LinkNodes.description=Creaz\u0103 muchii (orientate sau neorientate) \u00EEntre un nod \u0219i toate nodurile selectate +CopyNodes.name.single=Duplic\u0103 +CopyNodes.name.multiple=Duplic\u0103 tot +DeleteNodes.name.multiple=\u0218terge tot +Settle.name.multiple=Fixeaz\u0103 tot +ClearNodesData.description=\u0218terge datele din nodurile selectate +MoveNodeToGroup.name.multiple=Mut\u0103 tot \u00EEn grup... +RemoveNodeFromGroup.name.single=Elimin\u0103 din grup +CopyNodeDataToOtherNodes.ui.rowDescription=Copiaz\u0103 nodul: +CopyNodeDataToOtherNodes.ui.columnsDescription=Suprascrie coloanele: +Free.name.single=Elibereaz\u0103 +SetNodesSize.name.single=Seteaz\u0103 dimensiunea nodului... +RemoveNodeFromGroup.name.multiple=Elimin\u0103 tot din grup +Free.name.multiple=Elibereaz\u0103 tot diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_ru.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_ru.properties index 883aa44a8d..93f33e28be 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_ru.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_ru.properties @@ -1,88 +1,45 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# , 2011, 2012. -# FIRST AUTHOR , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-14 15\:22+0000\nLast-Translator\: Altsoph \nLanguage-Team\: Russian (http\://www.transifex.com/projects/p/gephi/language/ru/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ru\nPlural-Forms\: nplurals\=3; plural\=(n%10\=\=1 && n%100\!\=11 ? 0 \: n%10>\=2 && n%10<\=4 && (n%100<10 || n%100>\=20) ? 1 \: 2);\n - -OpenInEditNodeWindow.name=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0443\u0437\u0435\u043b - -OpenInEditNodeWindow.name.multiple=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0432\u0441\u0435 \u0443\u0437\u043b\u044b - -OpenInEditNodeWindow.description=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440, \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0446\u0432\u0435\u0442 \u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b. - -OpenInEditNodeWindow.description.multiple=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440, \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0446\u0432\u0435\u0442 \u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u043b\u044f \u0431\u0443\u0434\u0443\u0442 \u043f\u0443\u0441\u0442\u044b\u043c\u0438. - -SelectOnGraph.name=\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0432 \u043e\u043a\u043d\u0435 \u043e\u0431\u0437\u043e\u0440\u0430 - -SelectNeighboursOnTable.name=\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0435 \u0443\u0437\u043b\u044b \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 - -SelectEdgesOnTable.name=\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0440\u0451\u0431\u0440\u0430 - -DeleteNodes.name.single=\u0423\u0434\u0430\u043b\u0438\u0442\u044c - -DeleteNodes.name.multiple=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435 - -DeleteNodes.confirmation.message=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0443\u0437\u043b\u043e\u0432? - -ClearNodesData.name.single=\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c... - -ClearNodesData.name.multiple=\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0432\u0441\u0435... - -ClearNodesData.description=\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0445 \u0443\u0437\u043b\u0430\u0445 - -ClearNodesData.ui.description=\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0446\u044b\: - -CopyNodeDataToOtherNodes.name=\u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0434\u0440\u0443\u0433\u0438\u0435 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0443\u0437\u043b\u044b... - -CopyNodeDataToOtherNodes.description=\u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0432 \u0434\u0440\u0443\u0433\u0438\u0435 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0443\u0437\u043b\u044b - -CopyNodeDataToOtherNodes.ui.rowDescription=\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0443\u0437\u043b\u044b\: - -CopyNodeDataToOtherNodes.ui.columnsDescription=\u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0446\u044b\: - -Group.name=\u0421\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c - -Ungroup.name.single=\u0420\u0430\u0437\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c - -Ungroup.name.multiple=\u0420\u0430\u0437\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0433\u0440\u0443\u043f\u043f\u044b - -UngroupRecursively.name.single=\u0420\u0430\u0437\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e - -UngroupRecursively.name.multiple=\u0420\u0430\u0437\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0433\u0440\u0443\u043f\u043f\u044b \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e - -UngroupRecursively.description=\u0420\u0430\u0437\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0433\u0440\u0443\u043f\u043f\u044b \u0438 \u0438\u0445 \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432 - -MoveNodeToGroup.name.single=\u041f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432 \u0433\u0440\u0443\u043f\u043f\u0443... - -MoveNodeToGroup.name.multiple=\u041f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432\u0441\u0451 \u0432 \u0433\u0440\u0443\u043f\u043f\u0443... - -RemoveNodeFromGroup.name.single=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0438\u0437 \u0433\u0440\u0443\u043f\u043f\u044b - -RemoveNodeFromGroup.name.multiple=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0451 \u0438\u0437 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0433\u0440\u0443\u043f\u043f - -Settle.name.single=\u0417\u0430\u043a\u0440\u0435\u043f\u0438\u0442\u044c - -Settle.name.multiple=\u0417\u0430\u043a\u0440\u0435\u043f\u0438\u0442\u044c \u0432\u0441\u0451 - -Free.name.single=\u041e\u0441\u0432\u043e\u0431\u043e\u0434\u0438\u0442\u044c - -Free.name.multiple=\u041e\u0441\u0432\u043e\u0431\u043e\u0434\u0438\u0442\u044c \u0432\u0441\u0451 - -SetNodesSize.name.single=\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u0443\u0437\u043b\u0430... - -SetNodesSize.name.multiple=\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u0432\u0441\u0435\u0445 \u0443\u0437\u043b\u043e\u0432... - -MergeNodes.name=\u0421\u043a\u043b\u0435\u0438\u0442\u044c \u0443\u0437\u043b\u044b... - -MergeNodes.description=\u0412\u0441\u0435 \u0443\u0437\u043b\u044b \u0431\u0443\u0434\u0443\u0442 \u0441\u043b\u0438\u0442\u044b \u0432 \u043e\u0434\u0438\u043d \u043d\u043e\u0432\u044b\u0439, \u0440\u0435\u0431\u0440\u0430 \u0438 \u043c\u0435\u0442\u043a\u0438 \u0431\u0443\u0434\u0443\u0442 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u043f\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u043c - -LinkNodes.name=\u041f\u0440\u0438\u0432\u044f\u0437\u0430\u0442\u044c \u043a \u0443\u0437\u043b\u0430\u043c... - -LinkNodes.description=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0440\u0435\u0431\u0440\u043e (\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0438\u043b\u0438 \u043d\u0435\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435) \u043c\u0435\u0436\u0434\u0443 \u043e\u0434\u043d\u0438\u043c \u0443\u0437\u043b\u043e\u043c \u0438 \u0432\u0441\u0435\u043c\u0438 \u0432\u044b\u0440\u0431\u0440\u0430\u043d\u043d\u044b\u043c\u0438 \u0443\u0437\u043b\u0430\u043c\u0438 - -CopyNodes.name.single=\u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c - -CopyNodes.name.multiple=\u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 +OpenInEditNodeWindow.name=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0443\u0437\u0435\u043b +OpenInEditNodeWindow.name.multiple=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0432\u0441\u0435 \u0443\u0437\u043b\u044b +OpenInEditNodeWindow.description=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440, \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0446\u0432\u0435\u0442 \u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b. +OpenInEditNodeWindow.description.multiple=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440, \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0446\u0432\u0435\u0442 \u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u043b\u044f \u0431\u0443\u0434\u0443\u0442 \u043f\u0443\u0441\u0442\u044b\u043c\u0438. + +SelectOnGraph.name=\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0432 \u043e\u043a\u043d\u0435 \u043e\u0431\u0437\u043e\u0440\u0430 +SelectNeighboursOnTable.name=\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0435 \u0443\u0437\u043b\u044b \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 +SelectEdgesOnTable.name=\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0440\u0451\u0431\u0440\u0430 +DeleteNodes.name.single=\u0423\u0434\u0430\u043b\u0438\u0442\u044c +DeleteNodes.name.multiple=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435 +DeleteNodes.confirmation.message=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0443\u0437\u043b\u043e\u0432? + +ClearNodesData.name.single=\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c... +ClearNodesData.name.multiple=\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0432\u0441\u0435... +ClearNodesData.description=\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0445 \u0443\u0437\u043b\u0430\u0445 +ClearNodesData.ui.description=\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0446\u044b: +CopyNodeDataToOtherNodes.name=\u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0434\u0440\u0443\u0433\u0438\u0435 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0443\u0437\u043b\u044b... +CopyNodeDataToOtherNodes.description=\u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0432 \u0434\u0440\u0443\u0433\u0438\u0435 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0443\u0437\u043b\u044b +CopyNodeDataToOtherNodes.ui.rowDescription=\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0443\u0437\u043b\u044b: +CopyNodeDataToOtherNodes.ui.columnsDescription=\u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0446\u044b: + +Group.name=\u0421\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c +Ungroup.name.single=\u0420\u0430\u0437\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c +Ungroup.name.multiple=\u0420\u0430\u0437\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0433\u0440\u0443\u043f\u043f\u044b +UngroupRecursively.name.single=\u0420\u0430\u0437\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e +UngroupRecursively.name.multiple=\u0420\u0430\u0437\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0433\u0440\u0443\u043f\u043f\u044b \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e +UngroupRecursively.description=\u0420\u0430\u0437\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0433\u0440\u0443\u043f\u043f\u044b \u0438 \u0438\u0445 \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432 +MoveNodeToGroup.name.single=\u041f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432 \u0433\u0440\u0443\u043f\u043f\u0443... +MoveNodeToGroup.name.multiple=\u041f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432\u0441\u0451 \u0432 \u0433\u0440\u0443\u043f\u043f\u0443... +RemoveNodeFromGroup.name.single=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0438\u0437 \u0433\u0440\u0443\u043f\u043f\u044b +RemoveNodeFromGroup.name.multiple=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0451 \u0438\u0437 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0433\u0440\u0443\u043f\u043f + +Settle.name.single=\u0417\u0430\u043a\u0440\u0435\u043f\u0438\u0442\u044c +Settle.name.multiple=\u0417\u0430\u043a\u0440\u0435\u043f\u0438\u0442\u044c \u0432\u0441\u0451 +Free.name.single=\u041e\u0441\u0432\u043e\u0431\u043e\u0434\u0438\u0442\u044c +Free.name.multiple=\u041e\u0441\u0432\u043e\u0431\u043e\u0434\u0438\u0442\u044c \u0432\u0441\u0451 +SetNodesSize.name.single=\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u0443\u0437\u043b\u0430... +SetNodesSize.name.multiple=\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u0432\u0441\u0435\u0445 \u0443\u0437\u043b\u043e\u0432... + +MergeNodes.name=\u0421\u043a\u043b\u0435\u0438\u0442\u044c \u0443\u0437\u043b\u044b... +MergeNodes.description=\u0412\u0441\u0435 \u0443\u0437\u043b\u044b \u0431\u0443\u0434\u0443\u0442 \u0441\u043b\u0438\u0442\u044b \u0432 \u043e\u0434\u0438\u043d \u043d\u043e\u0432\u044b\u0439, \u0440\u0435\u0431\u0440\u0430 \u0438 \u043c\u0435\u0442\u043a\u0438 \u0431\u0443\u0434\u0443\u0442 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u043f\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u043c +LinkNodes.name=\u041f\u0440\u0438\u0432\u044f\u0437\u0430\u0442\u044c \u043a \u0443\u0437\u043b\u0430\u043c... +LinkNodes.description=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0440\u0435\u0431\u0440\u043e (\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0438\u043b\u0438 \u043d\u0435\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435) \u043c\u0435\u0436\u0434\u0443 \u043e\u0434\u043d\u0438\u043c \u0443\u0437\u043b\u043e\u043c \u0438 \u0432\u0441\u0435\u043c\u0438 \u0432\u044b\u0440\u0431\u0440\u0430\u043d\u043d\u044b\u043c\u0438 \u0443\u0437\u043b\u0430\u043c\u0438 +CopyNodes.name.single=\u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c +CopyNodes.name.multiple=\u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_th.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_th.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_th.properties @@ -0,0 +1 @@ + diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_tr.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_tr.properties new file mode 100644 index 0000000000..affa063ce1 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_tr.properties @@ -0,0 +1,45 @@ +OpenInEditNodeWindow.name=Dό\u011fόmό dόzenle +OpenInEditNodeWindow.name.multiple=Tόm dό\u011fόmleri dόzenle +OpenInEditNodeWindow.description=Bόyόklόk, konum, renk ve φzellikleri de\u011fi\u015ftir +OpenInEditNodeWindow.description.multiple=Bόyόklόk, konum, renk ve φzellikleri de\u011fi\u015ftir. Alanlar ba\u015flang\u0131ηta bo\u015f b\u0131rak\u0131lacakt\u0131r. + +SelectOnGraph.name=Genel bak\u0131\u015f seηiniz +SelectNeighboursOnTable.name=Tablodan kom\u015fu dό\u011fόmleri seηiniz +SelectEdgesOnTable.name=\u0130li\u015fkili ba\u011flant\u0131lar\u0131 seηiniz +DeleteNodes.name.single=Sil +DeleteNodes.name.multiple=Hepsini sil +DeleteNodes.confirmation.message=Dό\u011fόmlerin silinmesini onaylay\u0131n + +ClearNodesData.name.single=Temizle... +ClearNodesData.name.multiple=Tόmόnό temizle... +ClearNodesData.description=Seηili dό\u011fόmlerin verisini temizle +ClearNodesData.ui.description=Sόtunlar\u0131 temizle: +CopyNodeDataToOtherNodes.name=Seηili di\u011fer dό\u011fόmler iηin veriyi όstόne yaz +CopyNodeDataToOtherNodes.description=Seηili dό\u011fόmlerin sόtunlar\u0131n\u0131 di\u011fer seηili dό\u011fόmlere kopyala +CopyNodeDataToOtherNodes.ui.rowDescription=Dό\u011fόmό kopyala: +CopyNodeDataToOtherNodes.ui.columnsDescription=Sόtunlar\u0131n όstόne yaz: + +Group.name=Grupla +Ungroup.name.single=Grubu ηφz +Ungroup.name.multiple=Seηili gruplar\u0131n grubunu ηφz +UngroupRecursively.name.single=Tekrarlanan \u015fekilde grubu ηφz +UngroupRecursively.name.multiple=Seηili gruplar iηin tekrarlanan \u015fekilde grubu ηφz +UngroupRecursively.description=Seηili gruplar ve alt dallar\u0131 iηin tekrarlanan \u015fekilde grubu ηφz +MoveNodeToGroup.name.single=Grubu ta\u015f\u0131... +MoveNodeToGroup.name.multiple=Hepsini gruba ta\u015f\u0131... +RemoveNodeFromGroup.name.single=Grubundan kald\u0131r +RemoveNodeFromGroup.name.multiple=Hepsini grubundan kald\u0131r + +Settle.name.single=Yerle\u015ftir +Settle.name.multiple=Tόmόnό yerle\u015ftir +Free.name.single=Serbest b\u0131rak +Free.name.multiple=Tόmόnό serbest b\u0131rak +SetNodesSize.name.single=Dό\u011fόm boyutunu ayarla... +SetNodesSize.name.multiple=Tόm dό\u011fόmlerin boyutunu ayarla... + +MergeNodes.name=Dό\u011fόmleri birle\u015ftir +MergeNodes.description=Tόm dό\u011fόmler yeni bir dό\u011fόme birle\u015ftirildi, ba\u011flant\u0131lar\u0131n birle\u015ftirilmesi ve de\u011ferler iηin farkl\u0131 stratejiler kullan\u0131l\u0131yor +LinkNodes.name=Dό\u011fόmleri linkle +LinkNodes.description=Bir dό\u011fόm ile tόm seηili dό\u011fόmler aras\u0131nda ba\u011flant\u0131 olu\u015ftur( Yφnlό ya da Yφnsόz) +CopyNodes.name.single=Co\u011falt +CopyNodes.name.multiple=Tόmόnό ηo\u011falt diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_uk.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_uk.properties new file mode 100644 index 0000000000..466466e7d9 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_uk.properties @@ -0,0 +1,40 @@ +Ungroup.name.multiple=\u0420\u043E\u0437\u0433\u0440\u0443\u043F\u0443\u0432\u0430\u0442\u0438 \u0432\u0438\u0431\u0440\u0430\u043D\u0456 \u0433\u0440\u0443\u043F\u0438 +ClearNodesData.name.multiple=\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u0438 \u0432\u0441\u0435... +Group.name=\u0413\u0440\u0443\u043F\u0430 +DeleteNodes.confirmation.message=\u041F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0438 \u0432\u0438\u0434\u0430\u043B\u0435\u043D\u043D\u044F \u0432\u0443\u0437\u043B\u0456\u0432? +ClearNodesData.ui.description=\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u0438 \u0441\u0442\u043E\u0432\u043F\u0446\u0456: +SelectEdgesOnTable.name=\u0412\u0438\u0431\u0435\u0440\u0456\u0442\u044C \u043F\u043E\u0432\u2019\u044F\u0437\u0430\u043D\u0456 \u0440\u0435\u0431\u0440\u0430 +UngroupRecursively.description=\u0420\u043E\u0437\u0433\u0440\u0443\u043F\u0443\u0439\u0442\u0435 \u0432\u0438\u0431\u0440\u0430\u043D\u0456 \u0433\u0440\u0443\u043F\u0438 \u0442\u0430 \u0457\u0445 \u043D\u0430\u0449\u0430\u0434\u043A\u0456\u0432 +DeleteNodes.name.single=\u0412\u0438\u0434\u0430\u043B\u0438\u0442\u0438 +OpenInEditNodeWindow.name=\u0420\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 \u0432\u0443\u0437\u043E\u043B +DeleteNodes.name.multiple=\u0412\u0438\u0434\u0430\u043B\u0438\u0442\u0438 \u0432\u0441\u0435 +SetNodesSize.name.single=\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0438 \u0440\u043E\u0437\u043C\u0456\u0440 \u0432\u0443\u0437\u043B\u0430... +SetNodesSize.name.multiple=\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0438 \u0440\u043E\u0437\u043C\u0456\u0440 \u0443\u0441\u0456\u0445 \u0432\u0443\u0437\u043B\u0456\u0432... +MergeNodes.name=\u041E\u0431\u2019\u0454\u0434\u043D\u0430\u0442\u0438 \u0432\u0443\u0437\u043B\u0438... +CopyNodes.name.single=\u0414\u0443\u0431\u043B\u044E\u0432\u0430\u0442\u0438 +CopyNodes.name.multiple=\u0414\u0443\u0431\u043B\u044E\u0432\u0430\u0442\u0438 \u0432\u0441\u0435 +MoveNodeToGroup.name.single=\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u0434\u043E \u0433\u0440\u0443\u043F\u0438... +MoveNodeToGroup.name.multiple=\u041F\u0435\u0440\u0435\u043C\u0456\u0441\u0442\u0438\u0442\u0438 \u0432\u0441\u0456\u0445 \u0434\u043E \u0433\u0440\u0443\u043F\u0438... +ClearNodesData.description=\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u0438 \u0434\u0430\u043D\u0456 \u0432\u0438\u0431\u0440\u0430\u043D\u0438\u0445 \u0432\u0443\u0437\u043B\u0456\u0432 +ClearNodesData.name.single=\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u0438... +CopyNodeDataToOtherNodes.description=\u0421\u043A\u043E\u043F\u0456\u044E\u0439\u0442\u0435 \u0432\u0438\u0431\u0440\u0430\u043D\u0456 \u0441\u0442\u043E\u0432\u043F\u0446\u0456 \u0432\u0443\u0437\u043B\u0430 \u0434\u043E \u0456\u043D\u0448\u0438\u0445 \u0432\u0438\u0431\u0440\u0430\u043D\u0438\u0445 \u0432\u0443\u0437\u043B\u0456\u0432. +CopyNodeDataToOtherNodes.ui.rowDescription=\u041A\u043E\u043F\u0456\u044E\u0432\u0430\u0442\u0438 \u0432\u0443\u0437\u043E\u043B: +OpenInEditNodeWindow.description=\u0417\u043C\u0456\u043D\u0438\u0442\u0438 \u0440\u043E\u0437\u043C\u0456\u0440, \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044F, \u043A\u043E\u043B\u0456\u0440 \u0456 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0438. +OpenInEditNodeWindow.description.multiple=\u0417\u043C\u0456\u043D\u0438\u0442\u0438 \u0440\u043E\u0437\u043C\u0456\u0440, \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044F, \u043A\u043E\u043B\u0456\u0440 \u0456 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0438. \u0421\u043F\u043E\u0447\u0430\u0442\u043A\u0443 \u043F\u043E\u043B\u044F \u0431\u0443\u0434\u0443\u0442\u044C \u043F\u043E\u0440\u043E\u0436\u043D\u0456\u043C\u0438. +OpenInEditNodeWindow.name.multiple=\u0412\u0456\u0434\u0440\u0435\u0434\u0430\u0433\u0443\u0439\u0442\u0435 \u0432\u0441\u0456 \u0432\u0443\u0437\u043B\u0438 +SelectNeighboursOnTable.name=\u0412\u0438\u0431\u0435\u0440\u0456\u0442\u044C \u0441\u0443\u0441\u0456\u0434\u043D\u0456 \u0432\u0443\u0437\u043B\u0438 \u0432 \u0442\u0430\u0431\u043B\u0438\u0446\u0456 +LinkNodes.name=\u041F\u043E\u0441\u0438\u043B\u0430\u043D\u043D\u044F \u043D\u0430 \u0432\u0443\u0437\u043B\u0438... +SelectOnGraph.name=\u0412\u0438\u0431\u0435\u0440\u0456\u0442\u044C \u041E\u0433\u043B\u044F\u0434 +UngroupRecursively.name.multiple=\u0420\u043E\u0437\u0433\u0440\u0443\u043F\u0443\u0432\u0430\u0442\u0438 \u0432\u0438\u0431\u0440\u0430\u043D\u0456 \u0433\u0440\u0443\u043F\u0438 \u0440\u0435\u043A\u0443\u0440\u0441\u0438\u0432\u043D\u043E +CopyNodeDataToOtherNodes.name=\u041F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u0430\u0442\u0438 \u0434\u0430\u043D\u0456 \u043D\u0430 \u0456\u043D\u0448\u0456 \u0432\u0438\u0431\u0440\u0430\u043D\u0456 \u0432\u0443\u0437\u043B\u0438... +CopyNodeDataToOtherNodes.ui.columnsDescription=\u041F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u0430\u0442\u0438 \u0441\u0442\u043E\u0432\u043F\u0446\u0456: +Free.name.multiple=\u0411\u0435\u0437\u043A\u043E\u0448\u0442\u043E\u0432\u043D\u043E \u0432\u0441\u0435 +RemoveNodeFromGroup.name.single=\u0412\u0438\u0434\u0430\u043B\u0438\u0442\u0438 \u0437\u0456 \u0441\u0432\u043E\u0454\u0457 \u0433\u0440\u0443\u043F\u0438 +RemoveNodeFromGroup.name.multiple=\u0412\u0438\u0434\u0430\u043B\u0438\u0442\u0438 \u0432\u0441\u0456\u0445 \u0437\u0456 \u0441\u0432\u043E\u0454\u0457 \u0433\u0440\u0443\u043F\u0438 +Ungroup.name.single=\u0420\u043E\u0437\u0433\u0440\u0443\u043F\u0443\u0432\u0430\u0442\u0438 +Settle.name.single=\u0420\u043E\u0437\u0440\u0430\u0445\u0443\u043D\u043E\u043A +Settle.name.multiple=\u0420\u043E\u0437\u0440\u0430\u0445\u0443\u0432\u0430\u0442\u0438 \u0432\u0441\u0435 +Free.name.single=\u0411\u0435\u0437\u043A\u043E\u0448\u0442\u043E\u0432\u043D\u043E +UngroupRecursively.name.single=\u0420\u043E\u0437\u0433\u0440\u0443\u043F\u0443\u0432\u0430\u0442\u0438 \u0440\u0435\u043A\u0443\u0440\u0441\u0438\u0432\u043D\u043E +MergeNodes.description=\u0423\u0441\u0456 \u0432\u0443\u0437\u043B\u0438 \u043E\u0431\u2019\u0454\u0434\u043D\u0443\u044E\u0442\u044C\u0441\u044F \u0432 \u043D\u043E\u0432\u0438\u0439, \u043F\u043E\u0454\u0434\u043D\u0443\u044E\u0447\u0438 \u0440\u0435\u0431\u0440\u0430 \u0442\u0430 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0437\u0430 \u0434\u043E\u043F\u043E\u043C\u043E\u0433\u043E\u044E \u0440\u0456\u0437\u043D\u0438\u0445 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0456\u0439 +LinkNodes.description=\u0421\u0442\u0432\u043E\u0440\u0456\u0442\u044C \u0440\u0435\u0431\u0440\u0430 (\u0441\u043F\u0440\u044F\u043C\u043E\u0432\u0430\u043D\u0456 \u0430\u0431\u043E \u043D\u0435\u043D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0456) \u043C\u0456\u0436 \u043E\u0434\u043D\u0438\u043C \u0432\u0443\u0437\u043B\u043E\u043C \u0456 \u0432\u0441\u0456\u043C\u0430 \u0432\u0438\u0431\u0440\u0430\u043D\u0438\u043C\u0438 \u0432\u0443\u0437\u043B\u0430\u043C\u0438 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_zh_CN.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_zh_CN.properties index dd2cd3aeb3..97e78befec 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_zh_CN.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_zh_CN.properties @@ -1,86 +1,40 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-08 00\:18+0000\nLast-Translator\: gephi \nLanguage-Team\: Chinese (China) (http\://www.transifex.com/projects/p/gephi/language/zh_CN/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: zh_CN\nPlural-Forms\: nplurals\=1; plural\=0;\n - OpenInEditNodeWindow.name=\u7f16\u8f91\u8282\u70b9 - OpenInEditNodeWindow.name.multiple=\u7f16\u8f91\u6240\u6709\u8282\u70b9 - OpenInEditNodeWindow.description=\u6539\u53d8\u5927\u5c0f\u3001\u4f4d\u7f6e\u3001\u989c\u8272\u548c\u5c5e\u6027\u3002 - OpenInEditNodeWindow.description.multiple=\u6539\u53d8\u5927\u5c0f\u3001\u4f4d\u7f6e\u3001\u989c\u8272\u548c\u5c5e\u6027\u3002\u521d\u59cb\u503c\u4e3a\u7a7a\u3002 - -SelectOnGraph.name=\u5728\u6982\u8ff0\u9009\u62e9 - +SelectOnGraph.name=\u9009\u62E9\u6982\u89C8 SelectNeighboursOnTable.name=\u5728\u8868\u683c\u9009\u62e9\u4e34\u8fd1\u8282\u70b9 - SelectEdgesOnTable.name=\u9009\u62e9\u76f8\u5173\u7684\u8fb9 - DeleteNodes.name.single=\u5220\u9664 - DeleteNodes.name.multiple=\u5168\u90e8\u5220\u9664 - DeleteNodes.confirmation.message=\u786e\u5b9a\u5220\u9664\u8282\u70b9\uff1f - ClearNodesData.name.single=\u5220\u9664\u2026\u2026 - ClearNodesData.name.multiple=\u5220\u9664\u6240\u6709\u2026\u2026 - ClearNodesData.description=\u5220\u9664\u9009\u62e9\u8282\u70b9\u7684\u6570\u636e - -ClearNodesData.ui.description=\u5220\u9664\u5217 - +ClearNodesData.ui.description=\u6E05\u9664\u5217\uFF1A CopyNodeDataToOtherNodes.name=\u8986\u76d6\u6570\u636e\u5230\u5176\u5b83\u9009\u62e9\u7684\u8282\u70b9\u2026\u2026 - CopyNodeDataToOtherNodes.description=\u590d\u5236\u9009\u62e9\u7684\u8282\u70b9\u5217\u5230\u9009\u62e9\u7684\u5176\u5b83\u8282\u70b9\u3002 - CopyNodeDataToOtherNodes.ui.rowDescription=\u590d\u5236\u8282\u70b9\uff1a - CopyNodeDataToOtherNodes.ui.columnsDescription=\u8986\u76d6\u5217\uff1a - Group.name=\u7ec4 - Ungroup.name.single=\u53d6\u6d88\u7ec4 - Ungroup.name.multiple=\u53d6\u6d88\u9009\u62e9\u7684\u7ec4 - UngroupRecursively.name.single=\u9012\u5f52\u7684\u53d6\u6d88\u7ec4\u7fa4 - UngroupRecursively.name.multiple=\u9012\u5f52\u53d6\u6d88\u6240\u9009\u7684\u7ec4 - UngroupRecursively.description=\u53d6\u6d88\u6240\u9009\u7684\u7ec4\u548c\u5b50jiedian - -MoveNodeToGroup.name.single=\u79fb\u52a8\u5230\u7ec4 - -MoveNodeToGroup.name.multiple=\u5168\u90e8\u79fb\u52a8\u5230\u7ec4 - +MoveNodeToGroup.name.single=\u79FB\u52A8\u5230\u7EC4\u2026 +MoveNodeToGroup.name.multiple=\u5168\u90E8\u79FB\u52A8\u5230\u7EC4\u2026 RemoveNodeFromGroup.name.single=\u4ece\u7ec4\u91cc\u79fb\u9664 - RemoveNodeFromGroup.name.multiple=\u4ece\u7ec4\u91cc\u5168\u90e8\u79fb\u9664 - Settle.name.single=\u786e\u5b9a - Settle.name.multiple=\u5168\u90e8\u786e\u5b9a - Free.name.single=\u91ca\u653e - Free.name.multiple=\u5168\u90e8\u91ca\u653e - -SetNodesSize.name.single=\u8bbe\u5b9a\u8282\u70b9\u5927\u5c0f - -SetNodesSize.name.multiple=\u8bbe\u5b9a\u6240\u6709\u8282\u70b9\u5927\u5c0f - -MergeNodes.name=\u5408\u5e76\u8282\u70b9 - -MergeNodes.description=\u6240\u6709\u8282\u70b9\u88ab\u5408\u5e76\u4e3a\u4e00\u4e2a\u65b0\u7684\u8282\u70b9\uff0c\u7528\u4e0d\u540c\u7684\u65b9\u6cd5\u5408\u5e76\u8fb9\u548c\u6570\u503c\u3002 - +SetNodesSize.name.single=\u8BBE\u5B9A\u8282\u70B9\u5927\u5C0F\u2026 +SetNodesSize.name.multiple=\u8BBE\u5B9A\u6240\u6709\u8282\u70B9\u5927\u5C0F\u2026 +MergeNodes.name=\u5408\u5E76\u8282\u70B9\u2026 +MergeNodes.description=\u6240\u6709\u8282\u70B9\u88AB\u5408\u5E76\u4E3A\u4E00\u4E2A\u65B0\u7684\u8282\u70B9\uFF0C\u7528\u4E0D\u540C\u7684\u65B9\u6CD5\u5408\u5E76\u8FB9\u548C\u6570\u503C LinkNodes.name=\u8fde\u63a5\u5230\u8282\u70b9\u2026\u2026 - LinkNodes.description=\u521b\u5efa\u8282\u70b9\u548c\u6240\u6709\u9009\u62e9\u8282\u70b9\u95f4\u7684\u8fb9\uff08\u6709\u5411\u7684\u6216\u8005\u65e0\u5411\u7684\uff09 - CopyNodes.name.single=\u590d\u5236 - CopyNodes.name.multiple=\u5168\u90e8\u590d\u5236 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_zh_TW.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_zh_TW.properties new file mode 100644 index 0000000000..fddfac63ac --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/Bundle_zh_TW.properties @@ -0,0 +1,40 @@ +OpenInEditNodeWindow.name=\u7de8\u8f2f\u7bc0\u9ede +OpenInEditNodeWindow.name.multiple=\u7de8\u8f2f\u6240\u6709\u7bc0\u9ede +OpenInEditNodeWindow.description=\u8b8a\u66f4\u7bc0\u9ede\u5927\u5c0f\uff0c\u4f4d\u7f6e\uff0c\u984f\u8272\u53ca\u5c6c\u6027\u8cc7\u6599\u3002 +OpenInEditNodeWindow.description.multiple=\u8b8a\u66f4\u7bc0\u9ede\u5927\u5c0f\uff0c\u4f4d\u7f6e\uff0c\u984f\u8272\u53ca\u5c6c\u6027\u3002\u6b04\u4f4d\u8cc7\u6599\u5c07\u6703\u5148\u88ab\u6e05\u7a7a\u3002 +SelectOnGraph.name=\u65bc\u7e3d\u652c\u4e2d\u9078\u53d6 +SelectNeighboursOnTable.name=\u65bc\u8cc7\u6599\u4e2d\u9078\u53d6\u9130\u8fd1\u7bc0\u9ede +SelectEdgesOnTable.name=\u9078\u53d6\u76f8\u95dc\u806f\u7684\u9023\u7d50 +DeleteNodes.name.single=\u522a\u9664 +DeleteNodes.name.multiple=\u522a\u9664\u5168\u90e8 +DeleteNodes.confirmation.message=\u78ba\u8a8d\u522a\u9664\u7bc0\u9ede\uff1f +ClearNodesData.name.single=\u6e05\u9664... +ClearNodesData.name.multiple=\u6e05\u9664\u5168\u90e8... +ClearNodesData.description=\u6e05\u9664\u9078\u53d6\u7bc0\u9ede\u7684\u8cc7\u6599 +ClearNodesData.ui.description=\u6e05\u9664\u6574\u6b04\uff1a +CopyNodeDataToOtherNodes.name=\u8986\u5beb\u5176\u5b83\u6240\u9078\u7bc0\u9ede\u7684\u8cc7\u6599... +CopyNodeDataToOtherNodes.description=\u8907\u88fd\u6240\u9078\u7bc0\u9ede\u6b04\u4f4d\u8cc7\u6599\u5230\u5176\u4ed6\u6240\u9078\u7bc0\u9ede\u3002 +CopyNodeDataToOtherNodes.ui.rowDescription=\u8907\u88fd\u7bc0\u9ede\uff1a +CopyNodeDataToOtherNodes.ui.columnsDescription=\u8986\u84cb\u6b04\u4f4d\uff1a +Group.name=\u7fa4\u7d44\u5316 +Ungroup.name.single=\u53d6\u6d88\u7fa4\u7d44 +Ungroup.name.multiple=\u53d6\u6d88\u6240\u9078\u7fa4\u7d44 +UngroupRecursively.name.single=\u905e\u8ff4\u53d6\u6d88\u7fa4\u7d44 +UngroupRecursively.name.multiple=\u905e\u8ff4\u53d6\u6d88\u6240\u9078\u7fa4\u7d44 +UngroupRecursively.description=\u53d6\u6d88\u6240\u9078\u7fa4\u7d44\u53ca\u5176\u5167\u5305\u542b\u7684\u7fa4\u7d44 +MoveNodeToGroup.name.single=\u642c\u79fb\u81f3\u7fa4\u7d44... +MoveNodeToGroup.name.multiple=Move all to group... +RemoveNodeFromGroup.name.single=Remove from its group +RemoveNodeFromGroup.name.multiple=Remove all from their group +Settle.name.single=\u56fa\u5b9a +Settle.name.multiple=Settle all +Free.name.single=\u91cb\u653e +Free.name.multiple=Free all +SetNodesSize.name.single=Set node size... +SetNodesSize.name.multiple=Set all nodes size... +MergeNodes.name=Merge nodes... +MergeNodes.description=All nodes are merged into a new one, combining the edges and values using different strategies +LinkNodes.name=Link to nodes... +LinkNodes.description=Create edges (directed or undirected) between one node and all the selected nodes +CopyNodes.name.single=\u8907\u88fd +CopyNodes.name.multiple=Duplicate all diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/cs.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/cs.po deleted file mode 100644 index e6ba426cef..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/cs.po +++ /dev/null @@ -1,139 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# ZbynΔ›k Schwarz , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-02-27 14:03+0000\n" -"Last-Translator: ZbynΔ›k Schwarz \n" -"Language-Team: Czech (http://www.transifex.com/projects/p/gephi/language/cs/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: cs\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" - -msgid "OpenInEditNodeWindow.name" -msgstr "Upravit uzel" - -msgid "OpenInEditNodeWindow.name.multiple" -msgstr "Upravit vΕ‘echny uzle" - -msgid "OpenInEditNodeWindow.description" -msgstr "ZmΔ›nit velikost, umΓ­stΔ›nΓ­, barvu a vlastnosti." - -msgid "OpenInEditNodeWindow.description.multiple" -msgstr "ZmΔ›nit velikost, umΓ­stΔ›nΓ­, barvu a vlastnosti. Pole budou zpočÑtku prΓ‘zdnΓ‘." - -msgid "SelectOnGraph.name" -msgstr "Vybrat pΕ™ehled" - -msgid "SelectNeighboursOnTable.name" -msgstr "Vybrat sousedΓ­cΓ­ uzle v tabulce" - -msgid "SelectEdgesOnTable.name" -msgstr "Vybrat souvisejΓ­cΓ­ hrany" - -msgid "DeleteNodes.name.single" -msgstr "Smazat" - -msgid "DeleteNodes.name.multiple" -msgstr "Smazat vΕ‘e" - -msgid "DeleteNodes.confirmation.message" -msgstr "Potvrdit smazΓ‘nΓ­ uzle?" - -msgid "ClearNodesData.name.single" -msgstr "Vyčistit..." - -msgid "ClearNodesData.name.multiple" -msgstr "Vyčisti vΕ‘e..." - -msgid "ClearNodesData.description" -msgstr "Vyčistit data z vybranΓ½ch uzlΕ―" - -msgid "ClearNodesData.ui.description" -msgstr "Vyčistit sloupce:" - -msgid "CopyNodeDataToOtherNodes.name" -msgstr "PΕ™epsat data na dalΕ‘Γ­ vybranΓ© uzly..." - -msgid "CopyNodeDataToOtherNodes.description" -msgstr "KopΓ­rovat vybranΓ© sloupce uzlΕ― na dalΕ‘Γ­ vybranΓ© uzly." - -msgid "CopyNodeDataToOtherNodes.ui.rowDescription" -msgstr "KopΓ­rovat uzel:" - -msgid "CopyNodeDataToOtherNodes.ui.columnsDescription" -msgstr "PΕ™epsat sloupce:" - -msgid "Group.name" -msgstr "Seskupit" - -msgid "Ungroup.name.single" -msgstr "RozdΔ›lit" - -msgid "Ungroup.name.multiple" -msgstr "RozdΔ›lit vybranΓ© skupiny" - -msgid "UngroupRecursively.name.single" -msgstr "RozdΔ›lit rekurzivnΔ›" - -msgid "UngroupRecursively.name.multiple" -msgstr "RozdΔ›lit vybranΓ© skupiny rekurzivnΔ›" - -msgid "UngroupRecursively.description" -msgstr "RozdΔ›lit vybranΓ© skupiny a jejich nΓ‘slednΓ­ky" - -msgid "MoveNodeToGroup.name.single" -msgstr "PΕ™esunout do skupiny..." - -msgid "MoveNodeToGroup.name.multiple" -msgstr "PΕ™esunout vΕ‘e do skupiny..." - -msgid "RemoveNodeFromGroup.name.single" -msgstr "Odstranit ze skupiny" - -msgid "RemoveNodeFromGroup.name.multiple" -msgstr "Odstranit vΕ‘e ze skupiny" - -msgid "Settle.name.single" -msgstr "Urovnat" - -msgid "Settle.name.multiple" -msgstr "Urovnat vΕ‘e" - -msgid "Free.name.single" -msgstr "Uvolnit" - -msgid "Free.name.multiple" -msgstr "Uvolnit vΕ‘e" - -msgid "SetNodesSize.name.single" -msgstr "Nastavit velikost uzlu..." - -msgid "SetNodesSize.name.multiple" -msgstr "Nastavit velikost vΕ‘ech uzlΕ―..." - -msgid "MergeNodes.name" -msgstr "Sloučit uzle..." - -msgid "MergeNodes.description" -msgstr "VΕ‘echny uzle jsou sloučeny do novΓ©ho, spojenΓ­m hran a hodnot pomocΓ­ rΕ―znΓ½ch strategiΓ­" - -msgid "LinkNodes.name" -msgstr "Odkazy na uzle..." - -msgid "LinkNodes.description" -msgstr "VytvoΕ™it hrany (Ε™Γ­zenΓ© či neΕ™Γ­zenΓ©) mezi jednΓ­m uzlem a vybranΓ½mi uzly" - -msgid "CopyNodes.name.single" -msgstr "KopΓ­rovat" - -msgid "CopyNodes.name.multiple" -msgstr "KopΓ­rovat vΕ‘e" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/es.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/es.po deleted file mode 100644 index f10695244c..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/es.po +++ /dev/null @@ -1,140 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Eduardo Ramos , 2011. -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 14:40+0000\n" -"Last-Translator: Eduardo Ramos \n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/gephi/language/es/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -msgid "OpenInEditNodeWindow.name" -msgstr "Editar nodo" - -msgid "OpenInEditNodeWindow.name.multiple" -msgstr "Editar todos nodos" - -msgid "OpenInEditNodeWindow.description" -msgstr "Cambiar tamaΓ±o, posiciΓ³n, color y atributos." - -msgid "OpenInEditNodeWindow.description.multiple" -msgstr "Cambiar tamaΓ±o, posiciΓ³n, color y atributos. Los campos estarΓ‘n vacΓ­os inicialmente." - -msgid "SelectOnGraph.name" -msgstr "Seleccionar en la vista del grafo" - -msgid "SelectNeighboursOnTable.name" -msgstr "Seleccionar nodos vecinos en la tabla" - -msgid "SelectEdgesOnTable.name" -msgstr "Seleccionar aristas relacionadas" - -msgid "DeleteNodes.name.single" -msgstr "Eliminar" - -msgid "DeleteNodes.name.multiple" -msgstr "Eliminar todos" - -msgid "DeleteNodes.confirmation.message" -msgstr "ΒΏConfirmar borrado de nodo(s)?" - -msgid "ClearNodesData.name.single" -msgstr "Borrar datos del nodo..." - -msgid "ClearNodesData.name.multiple" -msgstr "Borrar datos de todos los nodos..." - -msgid "ClearNodesData.description" -msgstr "Borrar datos lo(s) nodo(s) seleccionado(s)" - -msgid "ClearNodesData.ui.description" -msgstr "Borrar columnas:" - -msgid "CopyNodeDataToOtherNodes.name" -msgstr "Sobreescribir datos a los otros nodos seleccionados..." - -msgid "CopyNodeDataToOtherNodes.description" -msgstr "Copia las columnas del nodo seleccionado a los otros nodos seleccionados" - -msgid "CopyNodeDataToOtherNodes.ui.rowDescription" -msgstr "Copiar nodo:" - -msgid "CopyNodeDataToOtherNodes.ui.columnsDescription" -msgstr "Sobreescribir columnas:" - -msgid "Group.name" -msgstr "Agrupar" - -msgid "Ungroup.name.single" -msgstr "Desagrupar" - -msgid "Ungroup.name.multiple" -msgstr "Desagrupar grupos seleccionados" - -msgid "UngroupRecursively.name.single" -msgstr "Desagrupar recursivamente" - -msgid "UngroupRecursively.name.multiple" -msgstr "Desagrupar grupos seleccionados recursivamente" - -msgid "UngroupRecursively.description" -msgstr "Desagrupa los grupos seleccionados y sus descendientes" - -msgid "MoveNodeToGroup.name.single" -msgstr "Mover a grupo..." - -msgid "MoveNodeToGroup.name.multiple" -msgstr "Mover todos a grupo..." - -msgid "RemoveNodeFromGroup.name.single" -msgstr "Quitar del grupo" - -msgid "RemoveNodeFromGroup.name.multiple" -msgstr "Quitar todos de su grupo" - -msgid "Settle.name.single" -msgstr "Bloquear" - -msgid "Settle.name.multiple" -msgstr "Bloquear todos" - -msgid "Free.name.single" -msgstr "Desbloquear" - -msgid "Free.name.multiple" -msgstr "Desbloquear todos" - -msgid "SetNodesSize.name.single" -msgstr "Configurar tamaΓ±o del nodo..." - -msgid "SetNodesSize.name.multiple" -msgstr "Configurar tamaΓ±o de los nodos..." - -msgid "MergeNodes.name" -msgstr "Mezclar nodos..." - -msgid "MergeNodes.description" -msgstr "Todos los nodos son mezclados creando uno nuevo, combinando las aristas y valores utilizando diferentes estrategias" - -msgid "LinkNodes.name" -msgstr "Enlazar a nodos..." - -msgid "LinkNodes.description" -msgstr "Crea aristas (dirigidas o no dirigidas) entre el nodo escogido y todos los demΓ‘s nodos seleccionados" - -msgid "CopyNodes.name.single" -msgstr "Duplicar" - -msgid "CopyNodes.name.multiple" -msgstr "Duplicar todos" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/fr.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/fr.po deleted file mode 100644 index a1dedbc9d7..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/fr.po +++ /dev/null @@ -1,140 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -# , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-07 11:16+0000\n" -"Last-Translator: gephi \n" -"Language-Team: French (http://www.transifex.com/projects/p/gephi/language/fr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "OpenInEditNodeWindow.name" -msgstr "Editer le noeud" - -msgid "OpenInEditNodeWindow.name.multiple" -msgstr "Editer tous les noeuds" - -msgid "OpenInEditNodeWindow.description" -msgstr "Change la taille, couleur, position et attributs." - -msgid "OpenInEditNodeWindow.description.multiple" -msgstr "Change la taille, couleur, position et attributs. Les champs sont vides au dΓ©but." - -msgid "SelectOnGraph.name" -msgstr "SΓ©lectionner dans la Vue d'Ensemble" - -msgid "SelectNeighboursOnTable.name" -msgstr "SΓ©lectionner les noeuds voisins" - -msgid "SelectEdgesOnTable.name" -msgstr "SΓ©lectionner les liens connectΓ©s" - -msgid "DeleteNodes.name.single" -msgstr "Supprimer" - -msgid "DeleteNodes.name.multiple" -msgstr "Tout supprimer" - -msgid "DeleteNodes.confirmation.message" -msgstr "Confirmer la suppression des noeuds ?" - -msgid "ClearNodesData.name.single" -msgstr "Effacer..." - -msgid "ClearNodesData.name.multiple" -msgstr "Tout effacer..." - -msgid "ClearNodesData.description" -msgstr "Effacer les donnΓ©es des noeuds sΓ©lectionnΓ©s" - -msgid "ClearNodesData.ui.description" -msgstr "Effacer les colonnes :" - -msgid "CopyNodeDataToOtherNodes.name" -msgstr "Ecraser les donnΓ©es des autres noeuds sΓ©lectionnΓ©s..." - -msgid "CopyNodeDataToOtherNodes.description" -msgstr "Copier les colonnes du noeud vers les autres noeuds sΓ©lectionnΓ©s" - -msgid "CopyNodeDataToOtherNodes.ui.rowDescription" -msgstr "Copier le noeud :" - -msgid "CopyNodeDataToOtherNodes.ui.columnsDescription" -msgstr "Ecraser les colonnes :" - -msgid "Group.name" -msgstr "Grouper" - -msgid "Ungroup.name.single" -msgstr "DΓ©grouper" - -msgid "Ungroup.name.multiple" -msgstr "DΓ©grouper les noeuds sΓ©lectionnΓ©s" - -msgid "UngroupRecursively.name.single" -msgstr "DΓ©grouper rΓ©cursivement" - -msgid "UngroupRecursively.name.multiple" -msgstr "DΓ©grouper la sΓ©lection rΓ©cursivement" - -msgid "UngroupRecursively.description" -msgstr "DΓ©grouper les groupes sΓ©lectionnΓ©s et leur descendants" - -msgid "MoveNodeToGroup.name.single" -msgstr "DΓ©placer dans un groupe..." - -msgid "MoveNodeToGroup.name.multiple" -msgstr "Tout dΓ©placer dans un groupe..." - -msgid "RemoveNodeFromGroup.name.single" -msgstr "Retirer de son groupe" - -msgid "RemoveNodeFromGroup.name.multiple" -msgstr "Tout retirer des groupes" - -msgid "Settle.name.single" -msgstr "Fixer" - -msgid "Settle.name.multiple" -msgstr "Tout fixer" - -msgid "Free.name.single" -msgstr "RelΓ’cher" - -msgid "Free.name.multiple" -msgstr "Tout relΓ’cher" - -msgid "SetNodesSize.name.single" -msgstr "DΓ©finir la taille..." - -msgid "SetNodesSize.name.multiple" -msgstr "DΓ©finir la taille de tous..." - -msgid "MergeNodes.name" -msgstr "Fusionner les noeuds..." - -msgid "MergeNodes.description" -msgstr "Tous les noeuds sont fusionnΓ©s dans un nouveau noeud unique, combinant les liens et les valeurs d'attributs par diffΓ©rentes stratΓ©gies." - -msgid "LinkNodes.name" -msgstr "Connecter aux noeuds..." - -msgid "LinkNodes.description" -msgstr "CrΓ©er les liens (direct ou non) entre un noeud et tous les autres sΓ©lectionnΓ©s" - -msgid "CopyNodes.name.single" -msgstr "Dupliquer" - -msgid "CopyNodes.name.multiple" -msgstr "Tout dupliquer" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ja.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ja.po deleted file mode 100644 index bc5f2569b1..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ja.po +++ /dev/null @@ -1,139 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-27 08:12+0000\n" -"Last-Translator: Siro Kida \n" -"Language-Team: Japanese (http://www.transifex.com/projects/p/gephi/language/ja/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ja\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "OpenInEditNodeWindow.name" -msgstr "γƒŽγƒΌγƒ‰γη·¨ι›†" - -msgid "OpenInEditNodeWindow.name.multiple" -msgstr "すべてγγƒŽγƒΌγƒ‰γη·¨ι›†" - -msgid "OpenInEditNodeWindow.description" -msgstr "ァむズ、位η½γ€θ‰²γŠγ‚ˆγ³ε±žζ€§γε€‰ζ›΄γ€‚" - -msgid "OpenInEditNodeWindow.description.multiple" -msgstr "ァむズ、位η½γ€θ‰²γŠγ‚ˆγ³ε±žζ€§γε€‰ζ›΄γ€‚ζœ€εˆγ―空欄です。" - -msgid "SelectOnGraph.name" -msgstr "ζ¦‚θ¦γ§ιΈζŠž" - -msgid "SelectNeighboursOnTable.name" -msgstr "γƒ†γƒΌγƒ–γƒ«γ§ιš£ζŽ₯γƒŽγƒΌγƒ‰γ‚’ιΈζŠž" - -msgid "SelectEdgesOnTable.name" -msgstr "ι–’ι€£γ™γ‚‹θΎΊγ‚’ιΈζŠž" - -msgid "DeleteNodes.name.single" -msgstr "ε‰Šι™€" - -msgid "DeleteNodes.name.multiple" -msgstr "すべてγε‰Šι™€" - -msgid "DeleteNodes.confirmation.message" -msgstr "γƒŽγƒΌγƒ‰γε‰Šι™€γη’ΊθͺοΌŸ" - -msgid "ClearNodesData.name.single" -msgstr "γ‚―γƒͺγ‚’..." - -msgid "ClearNodesData.name.multiple" -msgstr "すべてをクγƒͺγ‚’..." - -msgid "ClearNodesData.description" -msgstr "ιΈζŠžγ—γŸγƒŽγƒΌγƒ‰γγƒ‡γƒΌγ‚Ώγ‚’γ‚―γƒͺγ‚’" - -msgid "ClearNodesData.ui.description" -msgstr "εˆ—γ‚’γ‚―γƒͺγ‚’:" - -msgid "CopyNodeDataToOtherNodes.name" -msgstr "データをεˆ₯γιΈζŠžγ—γŸγƒŽγƒΌγƒ‰γ«δΈŠζ›Έγ:" - -msgid "CopyNodeDataToOtherNodes.description" -msgstr "ιΈζŠžγ—γŸγƒŽγƒΌγƒ‰εˆ—γ‚’εˆ₯γιΈζŠžγ—γŸγƒŽγƒΌγƒ‰γ«γ‚³γƒ”γƒΌ" - -msgid "CopyNodeDataToOtherNodes.ui.rowDescription" -msgstr "γƒŽγƒΌγƒ‰γ‚’γ‚³γƒ”γƒΌ:" - -msgid "CopyNodeDataToOtherNodes.ui.columnsDescription" -msgstr "εˆ—γ‚’δΈŠζ›Έγ:" - -msgid "Group.name" -msgstr "γ‚°γƒ«γƒΌγƒ—εŒ–" - -msgid "Ungroup.name.single" -msgstr "γ‚°γƒ«γƒΌγƒ—εŒ–θ§£ι™€" - -msgid "Ungroup.name.multiple" -msgstr "ιΈζŠžγ—γŸγ‚°γƒ«γƒΌγƒ—γγ‚°γƒ«γƒΌγƒ—εŒ–θ§£ι™€" - -msgid "UngroupRecursively.name.single" -msgstr "ε†εΈ°ηš„γ«γ‚°γƒ«γƒΌγƒ—εŒ–γ‚’θ§£ι™€" - -msgid "UngroupRecursively.name.multiple" -msgstr "ιΈζŠžγ•γ‚ŒγŸγ‚°γƒ«γƒΌγƒ—γ‚’ε†εΈ°ηš„γ«γ‚°γƒ«γƒΌγƒ—εŒ–θ§£ι™€" - -msgid "UngroupRecursively.description" -msgstr "ιΈζŠžγ•γ‚ŒγŸγ‚°γƒ«γƒΌγƒ—γ¨γγζ΄Ύη”Ÿγ‚°γƒ«γƒΌγƒ—γγ‚°γƒ«γƒΌγƒ—εŒ–θ§£ι™€" - -msgid "MoveNodeToGroup.name.single" -msgstr "グループに移動:" - -msgid "MoveNodeToGroup.name.multiple" -msgstr "全てをグループに移動:" - -msgid "RemoveNodeFromGroup.name.single" -msgstr "γ‚°γƒ«γƒΌγƒ—γ‹γ‚‰ζŽ’ι™€" - -msgid "RemoveNodeFromGroup.name.multiple" -msgstr "γ™γΉγ¦γ‚’γ‚°γƒ«γƒΌγƒ—γ‹γ‚‰ζŽ’ι™€" - -msgid "Settle.name.single" -msgstr "ε›Ίεš" - -msgid "Settle.name.multiple" -msgstr "すべてを固εš" - -msgid "Free.name.single" -msgstr "可動" - -msgid "Free.name.multiple" -msgstr "すべてを可動" - -msgid "SetNodesSize.name.single" -msgstr "γƒŽγƒΌγƒ‰γγ‚΅γ‚€γ‚Ίγθ¨­εš..." - -msgid "SetNodesSize.name.multiple" -msgstr "すべてγγƒŽγƒΌγƒ‰γγ‚΅γ‚€γ‚Ίγθ¨­εš..." - -msgid "MergeNodes.name" -msgstr "γƒŽγƒΌγƒ‰γη΅±εˆ..." - -msgid "MergeNodes.description" -msgstr "すべてγγƒŽγƒΌγƒ‰γ―、εˆ₯γζˆ¦η•₯γ‚’δ½Ώγ£γ¦θΎΊγ¨ε€€γ‚’η΅„γΏεˆγ‚γ›γ€ζ–°γ—γ„γ‚‚γγ«η΅±εˆγ•γ‚ŒγΎγ™" - -msgid "LinkNodes.name" -msgstr "γƒŽγƒΌγƒ‰γΈγγƒͺンク..." - -msgid "LinkNodes.description" -msgstr "1぀γγƒŽγƒΌγƒ‰γ¨ιΈζŠžγ—γŸγ™γΉγ¦γγƒŽγƒΌγƒ‰ι–“γθΎΊ(ζœ‰ε‘γ‚°γƒ©γƒ•γΎγŸγ―η„‘ε‘)γ‚’δ½œζˆ" - -msgid "CopyNodes.name.single" -msgstr "耇写" - -msgid "CopyNodes.name.multiple" -msgstr "すべてγθ€‡ε†™" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/org-gephi-datalab-plugin-manipulators-nodes.pot b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/org-gephi-datalab-plugin-manipulators-nodes.pot deleted file mode 100644 index 395618f681..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/org-gephi-datalab-plugin-manipulators-nodes.pot +++ /dev/null @@ -1,141 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# Gephi Team , 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: Gephi 0.8\n" -"Report-Msgid-Bugs-To: gephi.team@lists.launchpad.net\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-05 14:52+0200\n" -"Last-Translator: Mathieu Bastian \n" -"Language-Team: English \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "OpenInEditNodeWindow.name" -msgstr "Edit node" - -msgid "OpenInEditNodeWindow.name.multiple" -msgstr "Edit all nodes" - -msgid "OpenInEditNodeWindow.description" -msgstr "Change size, position, color and attributes." - -msgid "OpenInEditNodeWindow.description.multiple" -msgstr "" -"Change size, position, color and attributes. Fields will be blank at first." - -msgid "SelectOnGraph.name" -msgstr "Select on Overview" - -msgid "SelectNeighboursOnTable.name" -msgstr "Select neighbour nodes on table" - -msgid "SelectEdgesOnTable.name" -msgstr "Select related edges" - -msgid "DeleteNodes.name.single" -msgstr "Delete" - -msgid "DeleteNodes.name.multiple" -msgstr "Delete all" - -msgid "DeleteNodes.confirmation.message" -msgstr "Confirm nodes deletion?" - -msgid "ClearNodesData.name.single" -msgstr "Clear..." - -msgid "ClearNodesData.name.multiple" -msgstr "Clear all..." - -msgid "ClearNodesData.description" -msgstr "Clear data of the selected nodes" - -msgid "ClearNodesData.ui.description" -msgstr "Clear columns:" - -msgid "CopyNodeDataToOtherNodes.name" -msgstr "Overwrite data to the other selected nodes..." - -msgid "CopyNodeDataToOtherNodes.description" -msgstr "Copy the selected node columns to the other selected nodes." - -msgid "CopyNodeDataToOtherNodes.ui.rowDescription" -msgstr "Copy node:" - -msgid "CopyNodeDataToOtherNodes.ui.columnsDescription" -msgstr "Overwrite columns:" - -msgid "Group.name" -msgstr "Group" - -msgid "Ungroup.name.single" -msgstr "Ungroup" - -msgid "Ungroup.name.multiple" -msgstr "Ungroup selected groups" - -msgid "UngroupRecursively.name.single" -msgstr "Ungroup recursively" - -msgid "UngroupRecursively.name.multiple" -msgstr "Ungroup selected groups recursively" - -msgid "UngroupRecursively.description" -msgstr "Ungroup the selected groups and their descendants" - -msgid "MoveNodeToGroup.name.single" -msgstr "Move to group..." - -msgid "MoveNodeToGroup.name.multiple" -msgstr "Move all to group..." - -msgid "RemoveNodeFromGroup.name.single" -msgstr "Remove from its group" - -msgid "RemoveNodeFromGroup.name.multiple" -msgstr "Remove all from their group" - -msgid "Settle.name.single" -msgstr "Settle" - -msgid "Settle.name.multiple" -msgstr "Settle all" - -msgid "Free.name.single" -msgstr "Free" - -msgid "Free.name.multiple" -msgstr "Free all" - -msgid "SetNodesSize.name.single" -msgstr "Set node size..." - -msgid "SetNodesSize.name.multiple" -msgstr "Set all nodes size..." - -msgid "MergeNodes.name" -msgstr "Merge nodes..." - -msgid "MergeNodes.description" -msgstr "" -"All nodes are merged into a new one, combining the edges and values using " -"different strategies" - -msgid "LinkNodes.name" -msgstr "Link to nodes..." - -msgid "LinkNodes.description" -msgstr "" -"Create edges (directed or undirected) between one node and all the selected " -"nodes" - -msgid "CopyNodes.name.single" -msgstr "Duplicate" - -msgid "CopyNodes.name.multiple" -msgstr "Duplicate all" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/pt_BR.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/pt_BR.po deleted file mode 100644 index b1b4d12692..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/pt_BR.po +++ /dev/null @@ -1,139 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# CΓ©lio CJr , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-08 23:45+0000\n" -"Last-Translator: CΓ©lio Faria Jr. \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/gephi/language/pt_BR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "OpenInEditNodeWindow.name" -msgstr "Editar nΓ³" - -msgid "OpenInEditNodeWindow.name.multiple" -msgstr "Editar todos os nΓ³s" - -msgid "OpenInEditNodeWindow.description" -msgstr "Alterar tamanho, cor, posiΓ§Γ£o e atributos." - -msgid "OpenInEditNodeWindow.description.multiple" -msgstr "Alterar tamanho, cor, posiΓ§Γ£o e atributos. Os campos serΓ£o inicializados em branco." - -msgid "SelectOnGraph.name" -msgstr "Selecionar na VisΓ£o Geral" - -msgid "SelectNeighboursOnTable.name" -msgstr "Selecionar nΓ³s vizinhos na tabela" - -msgid "SelectEdgesOnTable.name" -msgstr "Selecionar arestas relacionadas" - -msgid "DeleteNodes.name.single" -msgstr "Excluir" - -msgid "DeleteNodes.name.multiple" -msgstr "Excluir todos" - -msgid "DeleteNodes.confirmation.message" -msgstr "Confirma a exclusΓ£o dos nΓ³s?" - -msgid "ClearNodesData.name.single" -msgstr "Limpar dados do nΓ³..." - -msgid "ClearNodesData.name.multiple" -msgstr "Limpar dados de todos os nΓ³s..." - -msgid "ClearNodesData.description" -msgstr "Limpar dados do(s) nΓ³(s) selecionado(s)" - -msgid "ClearNodesData.ui.description" -msgstr "Limpar valores das colunas:" - -msgid "CopyNodeDataToOtherNodes.name" -msgstr "Sobrescrever dados dos outros nΓ³s selecionados..." - -msgid "CopyNodeDataToOtherNodes.description" -msgstr "Copia as colunas do nΓ³ selecionado para os outros nΓ³s selecionados" - -msgid "CopyNodeDataToOtherNodes.ui.rowDescription" -msgstr "Copiar nΓ³:" - -msgid "CopyNodeDataToOtherNodes.ui.columnsDescription" -msgstr "Sobrescrever colunas:" - -msgid "Group.name" -msgstr "Agrupar" - -msgid "Ungroup.name.single" -msgstr "Desagrupar" - -msgid "Ungroup.name.multiple" -msgstr "Desagrupar selecionados" - -msgid "UngroupRecursively.name.single" -msgstr "Desagrupar recursivamente" - -msgid "UngroupRecursively.name.multiple" -msgstr "Desagrupar os grupos selecionados recursivamente" - -msgid "UngroupRecursively.description" -msgstr "Desagrupar os grupos selecionados e seus descendentes" - -msgid "MoveNodeToGroup.name.single" -msgstr "Mover para o grupo..." - -msgid "MoveNodeToGroup.name.multiple" -msgstr "Mover todos para o grupo..." - -msgid "RemoveNodeFromGroup.name.single" -msgstr "Remover de seu grupo" - -msgid "RemoveNodeFromGroup.name.multiple" -msgstr "Remover todos de seus grupos" - -msgid "Settle.name.single" -msgstr "Bloquear" - -msgid "Settle.name.multiple" -msgstr "Bloquear todos" - -msgid "Free.name.single" -msgstr "Desbloquear" - -msgid "Free.name.multiple" -msgstr "Desbloquear todos" - -msgid "SetNodesSize.name.single" -msgstr "Definir o tamanho do nΓ³..." - -msgid "SetNodesSize.name.multiple" -msgstr "Definir o tamanho de todos os nΓ³s..." - -msgid "MergeNodes.name" -msgstr "Mesclar nΓ³s..." - -msgid "MergeNodes.description" -msgstr "Todos os nΓ³s serΓ£o mesclados em um novo nΓ³, combinando as arestas e valores usando diferentes estratΓ©gias" - -msgid "LinkNodes.name" -msgstr "Conectar aos nΓ³s..." - -msgid "LinkNodes.description" -msgstr "Criar arestas (dirigidas ou nΓ£o) entre um nΓ³ e todos os nΓ³s selecionados" - -msgid "CopyNodes.name.single" -msgstr "Duplicar" - -msgid "CopyNodes.name.multiple" -msgstr "Duplicar todos" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ru.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ru.po deleted file mode 100644 index 5b9cce200e..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ru.po +++ /dev/null @@ -1,140 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# , 2011, 2012. -# FIRST AUTHOR , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-14 15:22+0000\n" -"Last-Translator: Altsoph \n" -"Language-Team: Russian (http://www.transifex.com/projects/p/gephi/language/ru/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -msgid "OpenInEditNodeWindow.name" -msgstr "Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡƒΠ·Π΅Π»" - -msgid "OpenInEditNodeWindow.name.multiple" -msgstr "Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ всС ΡƒΠ·Π»Ρ‹" - -msgid "OpenInEditNodeWindow.description" -msgstr "Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€, ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ†Π²Π΅Ρ‚ ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹." - -msgid "OpenInEditNodeWindow.description.multiple" -msgstr "Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€, ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ†Π²Π΅Ρ‚ ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹. Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ поля Π±ΡƒΠ΄ΡƒΡ‚ пустыми." - -msgid "SelectOnGraph.name" -msgstr "Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π² ΠΎΠΊΠ½Π΅ ΠΎΠ±Π·ΠΎΡ€Π°" - -msgid "SelectNeighboursOnTable.name" -msgstr "Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ сосСдниС ΡƒΠ·Π»Ρ‹ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅" - -msgid "SelectEdgesOnTable.name" -msgstr "Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ связанныС Ρ€Ρ‘Π±Ρ€Π°" - -msgid "DeleteNodes.name.single" -msgstr "Π£Π΄Π°Π»ΠΈΡ‚ΡŒ" - -msgid "DeleteNodes.name.multiple" -msgstr "Π£Π΄Π°Π»ΠΈΡ‚ΡŒ всС" - -msgid "DeleteNodes.confirmation.message" -msgstr "ΠŸΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡƒΠ·Π»ΠΎΠ²?" - -msgid "ClearNodesData.name.single" -msgstr "ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ..." - -msgid "ClearNodesData.name.multiple" -msgstr "ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ всС..." - -msgid "ClearNodesData.description" -msgstr "ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… ΡƒΠ·Π»Π°Ρ…" - -msgid "ClearNodesData.ui.description" -msgstr "ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ столбцы:" - -msgid "CopyNodeDataToOtherNodes.name" -msgstr "ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ ΡƒΠ·Π»Ρ‹..." - -msgid "CopyNodeDataToOtherNodes.description" -msgstr "Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ столбцы Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ ΡƒΠ·Π»Ρ‹" - -msgid "CopyNodeDataToOtherNodes.ui.rowDescription" -msgstr "ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ·Π»Ρ‹:" - -msgid "CopyNodeDataToOtherNodes.ui.columnsDescription" -msgstr "ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ столбцы:" - -msgid "Group.name" -msgstr "Π‘Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ" - -msgid "Ungroup.name.single" -msgstr "Π Π°Π·Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ" - -msgid "Ungroup.name.multiple" -msgstr "Π Π°Π·Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹" - -msgid "UngroupRecursively.name.single" -msgstr "Π Π°Π·Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ рСкурсивно" - -msgid "UngroupRecursively.name.multiple" -msgstr "Π Π°Π·Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ рСкурсивно" - -msgid "UngroupRecursively.description" -msgstr "Π Π°Π·Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΈ ΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ²" - -msgid "MoveNodeToGroup.name.single" -msgstr "ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² Π³Ρ€ΡƒΠΏΠΏΡƒ..." - -msgid "MoveNodeToGroup.name.multiple" -msgstr "ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ всё Π² Π³Ρ€ΡƒΠΏΠΏΡƒ..." - -msgid "RemoveNodeFromGroup.name.single" -msgstr "Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ· Π³Ρ€ΡƒΠΏΠΏΡ‹" - -msgid "RemoveNodeFromGroup.name.multiple" -msgstr "Π£Π΄Π°Π»ΠΈΡ‚ΡŒ всё ΠΈΠ· ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π³Ρ€ΡƒΠΏΠΏ" - -msgid "Settle.name.single" -msgstr "Π—Π°ΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ" - -msgid "Settle.name.multiple" -msgstr "Π—Π°ΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ всё" - -msgid "Free.name.single" -msgstr "ΠžΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ" - -msgid "Free.name.multiple" -msgstr "ΠžΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ всё" - -msgid "SetNodesSize.name.single" -msgstr "Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΡƒΠ·Π»Π°..." - -msgid "SetNodesSize.name.multiple" -msgstr "Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ всСх ΡƒΠ·Π»ΠΎΠ²..." - -msgid "MergeNodes.name" -msgstr "Π‘ΠΊΠ»Π΅ΠΈΡ‚ΡŒ ΡƒΠ·Π»Ρ‹..." - -msgid "MergeNodes.description" -msgstr "ВсС ΡƒΠ·Π»Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ слиты Π² ΠΎΠ΄ΠΈΠ½ Π½ΠΎΠ²Ρ‹ΠΉ, Ρ€Π΅Π±Ρ€Π° ΠΈ ΠΌΠ΅Ρ‚ΠΊΠΈ Π±ΡƒΠ΄ΡƒΡ‚ сгСнСрированы ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌ" - -msgid "LinkNodes.name" -msgstr "ΠŸΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ ΠΊ ΡƒΠ·Π»Π°ΠΌ..." - -msgid "LinkNodes.description" -msgstr "Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π΅Π±Ρ€ΠΎ (ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΈΠ»ΠΈ Π½Π΅ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅) ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ΄Π½ΠΈΠΌ ΡƒΠ·Π»ΠΎΠΌ ΠΈ всСми Π²Ρ‹Ρ€Π±Ρ€Π°Π½Π½Ρ‹ΠΌΠΈ ΡƒΠ·Π»Π°ΠΌΠΈ" - -msgid "CopyNodes.name.single" -msgstr "Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ" - -msgid "CopyNodes.name.multiple" -msgstr "Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle.properties index 15795fc6ed..88d8c12b5a 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle.properties @@ -1,4 +1,4 @@ -MergeNodesUI.description=One new node with the same color, size and position of the main selected node is created.
    Edges are assigned to the new node.
    Each column uses the given strategy to reduce the rows values to one value.
    Hierarchy is ignored. +MergeNodesUI.description=One new node with the same color, size and position of the main selected node is created.
    Edges are assigned to the new node.
    Each column uses the given strategy to reduce the rows values to one value. MergeNodesUI.deleteMergedNodesText=Delete merged nodes MergeNodesUI.selectedRowText=Main selected row: MergeNodesUI.configurationText=Configure diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_ar.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_ar.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_ar.properties @@ -0,0 +1 @@ + diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_ca.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_ca.properties new file mode 100644 index 0000000000..7539f38694 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_ca.properties @@ -0,0 +1,13 @@ +MergeNodesUI.description=One new node with the same color, size and position of the main selected node is created.
    Edges are assigned to the new node.
    Each column uses the given strategy to reduce the rows values to one value. +MergeNodesUI.deleteMergedNodesText=Delete merged nodes +MergeNodesUI.selectedRowText=Main selected row: +MergeNodesUI.configurationText=Configura +LinkNodesUI.descriptionLabel.text=Tria el node de sortida i el tipus d'arestes.
    Si es pot, es crearan arestes entre els nodes de sortida i els altres nodes seleccionats +LinkNodesUI.directedEdge.text=Dirigit +LinkNodesUI.undirectedEdge.text=No dirigit +LinkNodesUI.sourceNodeLabel.text=Node de sortida: +LinkNodesUI.edgeTypeLabel.text=Tipus s'aresta: +MoveNodeToGroupUI.descriptionLabel.text=Nou grup: +CopyNodesUI.descriptionLabel.text=Nombre de cςpies +SetNodesSizeUI.sizeLabel.text=Nova mida dels nodes +SetNodesSizeUI.sizeText.text= diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_cs.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_cs.properties index c035988c18..d2dd480007 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_cs.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_cs.properties @@ -1,31 +1,13 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Zbyn\u011bk Schwarz , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-02-27 14\:20+0000\nLast-Translator\: Zbyn\u011bk Schwarz \nLanguage-Team\: Czech (http\://www.transifex.com/projects/p/gephi/language/cs/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: cs\nPlural-Forms\: nplurals\=3; plural\=(n\=\=1) ? 0 \: (n>\=2 && n<\=4) ? 1 \: 2;\n - -MergeNodesUI.description=Je vytvo\u0159en jeden nov\u00fd uzel se stejnou barvou, velikost\u00ed a um\u00edst\u011bn\u00edm z hlavn\u00edho zvolen\u00e9ho uzle.
    Hrany jsou p\u0159id\u011bleny k nov\u00e9mu uzlu.
    Ka\u017ed\u00fd sloupec pou\u017e\u00edv\u00e1 zadanou strategii pro sn\u00ed\u017een\u00ed hodnot \u0159\u00e1dk\u016f na jendu hodnotu.
    Hierarchie je ignorov\u00e1na. - -MergeNodesUI.deleteMergedNodesText=Smazat slou\u010den\u00e9 uzle - -MergeNodesUI.selectedRowText=Hlavn\u00ed vybran\u00fd \u0159\u00e1dek - -MergeNodesUI.configurationText=Nastavit - -LinkNodesUI.descriptionLabel.text=Zvolte zdrojov\u00fd uzel a typ hran.
    Hrany mezi zdrojov\u00fdm uzlem a jin\u00fdmi vybran\u00fdmi uzly jsou vytvo\u0159eny, pokud je mo\u017enost. - -LinkNodesUI.directedEdge.text=\u0158\u00edzen\u00e9 - -LinkNodesUI.undirectedEdge.text=Ne\u0159\u00edzen\u00e9 - -LinkNodesUI.sourceNodeLabel.text=Zdrojov\u00fd uzel\: - -LinkNodesUI.edgeTypeLabel.text=Typ hrany\: - -MoveNodeToGroupUI.descriptionLabel.text=Nov\u00e1 skupina\: - -CopyNodesUI.descriptionLabel.text=Po\u010det kopi\u00ed\: - -SetNodesSizeUI.sizeLabel.text=Velikost nov\u00e9ho uzle\: +MergeNodesUI.description=Je vytvo\u0159en jeden novύ uzel se stejnou barvou, velikostν a umνst\u011bnνm z hlavnνho zvolenιho uzle.
    Hrany jsou p\u0159id\u011bleny k novιmu uzlu.
    Ka\u017edύ sloupec pou\u017eνvα zadanou strategii pro snν\u017eenν hodnot \u0159αdk\u016f na jendu hodnotu.
    Hierarchie je ignorovαna. +MergeNodesUI.deleteMergedNodesText=Smazat slou\u010denι uzle +MergeNodesUI.selectedRowText=Hlavnν vybranύ \u0159αdek +MergeNodesUI.configurationText=Nastavit +LinkNodesUI.descriptionLabel.text=Zvolte zdrojovύ uzel a typ hran.
    Hrany mezi zdrojovύm uzlem a jinύmi vybranύmi uzly jsou vytvo\u0159eny, pokud je mo\u017enost. +LinkNodesUI.directedEdge.text=\u0158νzenι +LinkNodesUI.undirectedEdge.text=Ne\u0159νzenι +LinkNodesUI.sourceNodeLabel.text=Zdrojovύ uzel: +LinkNodesUI.edgeTypeLabel.text=Typ hrany: +MoveNodeToGroupUI.descriptionLabel.text=Novα skupina: +CopyNodesUI.descriptionLabel.text=Po\u010det kopiν: +SetNodesSizeUI.sizeLabel.text=Velikost novιho uzle: +SetNodesSizeUI.sizeText.text= diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_de.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_de.properties new file mode 100644 index 0000000000..8595a66182 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_de.properties @@ -0,0 +1,13 @@ +MergeNodesUI.description=Ein neuer Knoten mit der selben Farbe, Grφίe und Position des primδr selektierten Knoten wird erstellt.
    Kanten werden dem neuen Knoten zugewiesen.
    Jede Spalte verwendet die angegebene Vorgehensweise um die Werte der Reihen zu einem auf einen Wert zu reduzieren. +MergeNodesUI.deleteMergedNodesText=Verschmolzene Knoten lφschen +MergeNodesUI.selectedRowText=Primδr ausgewδhlte Reihe: +MergeNodesUI.configurationText=Konfigurieren +LinkNodesUI.descriptionLabel.text=Wδhle den Startknoten und Typ der Kanten.
    Kanten zwischen dem Startknoten und den anderen selektierten Knoten werden wenn mφglich erstellt. +LinkNodesUI.directedEdge.text=Gerichtet +LinkNodesUI.undirectedEdge.text=Ungerichtet +LinkNodesUI.sourceNodeLabel.text=Startknoten: +LinkNodesUI.edgeTypeLabel.text=Kantentyp: +MoveNodeToGroupUI.descriptionLabel.text=Neue Gruppe: +CopyNodesUI.descriptionLabel.text=Anzahl der Kopien: +SetNodesSizeUI.sizeLabel.text=Neue Knotengrφίe: +SetNodesSizeUI.sizeText.text= diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_es.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_es.properties index 80ab1c9e0a..2c18c9a6b1 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_es.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_es.properties @@ -1,33 +1,13 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Eduardo Ramos , 2011, 2012. -# FIRST AUTHOR , 2010. -# , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-03-31 12\:39+0000\nLast-Translator\: gephi \nLanguage-Team\: Spanish (http\://www.transifex.com/projects/p/gephi/language/es/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: es\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n - -MergeNodesUI.description=Un nuevo nodo con el mismo color, tama\u00f1o y posici\u00f3n que el nodo principal seleccionado es creado.
    Las aristas son asignadas al nuevo nodo.
    Cada columna utiliza la estrategia proporcionada para reducir los valores de las filas a un valor.
    La jerarqu\u00eda es ignorada - -MergeNodesUI.deleteMergedNodesText=Eliminar nodos mezclados - -MergeNodesUI.selectedRowText=Fila principal seleccionada\: - +MergeNodesUI.description=Se crea un nuevo nodo con el mismo color, tama\u00F1o y posici\u00F3n del nodo principal seleccionado.
    Se asignan aristas al nuevo nodo.
    Cada columna utiliza la estrategia dada para reducir los valores de las filas a un valor. +MergeNodesUI.deleteMergedNodesText=Eliminar nodos fusionados +MergeNodesUI.selectedRowText=Fila principal seleccionada: MergeNodesUI.configurationText=Configurar - -LinkNodesUI.descriptionLabel.text=Escoge el nodo origen y el tipo de la(s) arista(s).
    Se crear\u00e1n aristas entre el nodo seleccionado y todos los dem\u00e1s nodos cuando sea posible. - +LinkNodesUI.descriptionLabel.text=Elige el nodo origen y el tipo de las aristas.
    Si es posible, se crean aristas entre el nodo origen y los dem\u00E1s nodos seleccionados. LinkNodesUI.directedEdge.text=Dirigida - LinkNodesUI.undirectedEdge.text=No dirigida - -LinkNodesUI.sourceNodeLabel.text=Nodo origen\: - -LinkNodesUI.edgeTypeLabel.text=Tipo de arista\: - -MoveNodeToGroupUI.descriptionLabel.text=Nuevo grupo\: - -CopyNodesUI.descriptionLabel.text=N\u00famero de copias\: - -SetNodesSizeUI.sizeLabel.text=Nuevo tama\u00f1o\: +LinkNodesUI.sourceNodeLabel.text=Nodo origen: +LinkNodesUI.edgeTypeLabel.text=Tipo de arista: +MoveNodeToGroupUI.descriptionLabel.text=Nuevo grupo: +CopyNodesUI.descriptionLabel.text=Nϊmero de copias: +SetNodesSizeUI.sizeLabel.text=Nuevo tamaρo: +SetNodesSizeUI.sizeText.text= diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_fr.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_fr.properties index eb500b4e3c..3580df7cda 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_fr.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_fr.properties @@ -1,32 +1,13 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -# , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-07 11\:12+0000\nLast-Translator\: gephi \nLanguage-Team\: French (http\://www.transifex.com/projects/p/gephi/language/fr/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fr\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -MergeNodesUI.description=Cr\u00e9\u00e9 un nouveau noeud de m\u00eame couleur, taille et position que le principal s\u00e9lectionn\u00e9.
    Chaque colonne utilise une strat\u00e9gie pour r\u00e9duire les valeurs des lignes en une seule valeur.
    Ignore la hi\u00e9rarchie. - -MergeNodesUI.deleteMergedNodesText=Supprimer les noeuds fusionn\u00e9s - -MergeNodesUI.selectedRowText=Ligne s\u00e9lectionn\u00e9e principale \: - -MergeNodesUI.configurationText=Configurer - -LinkNodesUI.descriptionLabel.text=Choisissez le noeud source.
    Les liens entre ce noeud et les autres noeuds s\u00e9lectionn\u00e9s seront cr\u00e9\u00e9s si possible. - -LinkNodesUI.directedEdge.text=Dirig\u00e9 - -LinkNodesUI.undirectedEdge.text=Non dirig\u00e9 - -LinkNodesUI.sourceNodeLabel.text=Noeud source \: - -LinkNodesUI.edgeTypeLabel.text=Type de lien \: - -MoveNodeToGroupUI.descriptionLabel.text=Choisissez le groupe ou d\u00e9placer les noeuds - -CopyNodesUI.descriptionLabel.text=Nombre de copies \: - -SetNodesSizeUI.sizeLabel.text=Nouvelle taille des noeuds \: +MergeNodesUI.description=Crιι un nouveau noeud de mκme couleur, taille et position que le principal sιlectionnι.
    Chaque colonne utilise une stratιgie pour rιduire les valeurs des lignes en une seule valeur.
    Ignore la hiιrarchie. +MergeNodesUI.deleteMergedNodesText=Supprimer les noeuds fusionnιs +MergeNodesUI.selectedRowText=Ligne sιlectionnιe principale : +MergeNodesUI.configurationText=Configurer +LinkNodesUI.descriptionLabel.text=Choisissez le noeud source.
    Les liens entre ce noeud et les autres noeuds sιlectionnιs seront crιιs si possible. +LinkNodesUI.directedEdge.text=Dirigι +LinkNodesUI.undirectedEdge.text=Non dirigι +LinkNodesUI.sourceNodeLabel.text=Noeud source : +LinkNodesUI.edgeTypeLabel.text=Type de lien : +MoveNodeToGroupUI.descriptionLabel.text=Choisissez le groupe ou dιplacer les noeuds +CopyNodesUI.descriptionLabel.text=Nombre de copies : +SetNodesSizeUI.sizeLabel.text=Nouvelle taille des noeuds : +SetNodesSizeUI.sizeText.text= diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_he.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_he.properties new file mode 100644 index 0000000000..88d8c12b5a --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_he.properties @@ -0,0 +1,13 @@ +MergeNodesUI.description=One new node with the same color, size and position of the main selected node is created.
    Edges are assigned to the new node.
    Each column uses the given strategy to reduce the rows values to one value. +MergeNodesUI.deleteMergedNodesText=Delete merged nodes +MergeNodesUI.selectedRowText=Main selected row: +MergeNodesUI.configurationText=Configure +LinkNodesUI.descriptionLabel.text=Choose the source node and type of the edges.
    Edges between source node and the other selected nodes are created if possible. +LinkNodesUI.directedEdge.text=Directed +LinkNodesUI.undirectedEdge.text=Undirected +LinkNodesUI.sourceNodeLabel.text=Source node: +LinkNodesUI.edgeTypeLabel.text=Edge type: +MoveNodeToGroupUI.descriptionLabel.text=New group: +CopyNodesUI.descriptionLabel.text=Number of copies: +SetNodesSizeUI.sizeLabel.text=New nodes size: +SetNodesSizeUI.sizeText.text= diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_hu.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_hu.properties new file mode 100644 index 0000000000..35bf774abb --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_hu.properties @@ -0,0 +1,14 @@ + + +MergeNodesUI.selectedRowText=F\u0151 kiv\u00E1lasztott sor: +MergeNodesUI.configurationText=Be\u00E1ll\u00EDt\u00E1s +LinkNodesUI.sourceNodeLabel.text=Forr\u00E1s csom\u00F3pont: +LinkNodesUI.descriptionLabel.text=V\u00E1lassza ki a forr\u00E1scsom\u00F3pontot \u00E9s az \u00E9lek t\u00EDpus\u00E1t.
    A forr\u00E1scsom\u00F3pont \u00E9s a t\u00F6bbi kiv\u00E1lasztott csom\u00F3pont k\u00F6z\u00F6tti \u00E9leket lehet\u0151s\u00E9g szerint l\u00E9trehozza. +MergeNodesUI.description=Egy \u00FAj csom\u00F3pont j\u00F6n l\u00E9tre, amely megegyezik a kiv\u00E1lasztott f\u0151 csom\u00F3pont sz\u00EDn\u00E9vel, m\u00E9ret\u00E9vel \u00E9s poz\u00EDci\u00F3j\u00E1val.
    Az \u00E9lek hozz\u00E1 vannak rendelve az \u00FAj csom\u00F3ponthoz.
    Minden oszlop a megadott strat\u00E9gi\u00E1t haszn\u00E1lja a sorok \u00E9rt\u00E9k\u00E9nek cs\u00F6kkent\u00E9s\u00E9re egy \u00E9rt\u00E9k. +LinkNodesUI.directedEdge.text=Ir\u00E1ny\u00EDtott +LinkNodesUI.edgeTypeLabel.text=\u00C9l t\u00EDpusa: +CopyNodesUI.descriptionLabel.text=M\u00E1solatok sz\u00E1ma: +SetNodesSizeUI.sizeLabel.text=\u00DAj csom\u00F3pontok m\u00E9rete: +LinkNodesUI.undirectedEdge.text=Ir\u00E1ny\u00EDtatlan +MergeNodesUI.deleteMergedNodesText=Az egyes\u00EDtett csom\u00F3pontok t\u00F6rl\u00E9se +MoveNodeToGroupUI.descriptionLabel.text=\u00DAj csoport: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_it.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_it.properties new file mode 100644 index 0000000000..3b919eb4d8 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_it.properties @@ -0,0 +1,13 @@ +MergeNodesUI.description=One new node with the same color, size and position of the main selected node is created.
    Edges are assigned to the new node.
    Each column uses the given strategy to reduce the rows values to one value. +MergeNodesUI.deleteMergedNodesText=Delete merged nodes +MergeNodesUI.selectedRowText=Main selected row: +MergeNodesUI.configurationText=Configure +LinkNodesUI.descriptionLabel.text=Choose the source node and type of the edges.
    Edges between source node and the other selected nodes are created if possible. +LinkNodesUI.directedEdge.text=Orientato +LinkNodesUI.undirectedEdge.text=Non orientato +LinkNodesUI.sourceNodeLabel.text=Source node: +LinkNodesUI.edgeTypeLabel.text=Edge type: +MoveNodeToGroupUI.descriptionLabel.text=New group: +CopyNodesUI.descriptionLabel.text=Number of copies: +SetNodesSizeUI.sizeLabel.text=New nodes size: +SetNodesSizeUI.sizeText.text= diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_ja.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_ja.properties index 071a2bc866..4e1cc3fd1a 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_ja.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_ja.properties @@ -1,31 +1,13 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-09-02 10\:54+0000\nLast-Translator\: Siro Kida \nLanguage-Team\: Japanese (http\://www.transifex.com/projects/p/gephi/language/ja/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ja\nPlural-Forms\: nplurals\=1; plural\=0;\n - -MergeNodesUI.description=\u9078\u629e\u3055\u308c\u305f\u4e3b\u306a\u30ce\u30fc\u30c9\u306e\u540c\u3058\u8272\u3001\u30b5\u30a4\u30ba\u3001\u4f4d\u7f6e\u306e\u65b0\u305f\u306a\u30ce\u30fc\u30c9\u304c\u751f\u6210\u3055\u308c\u307e\u3059\u3002
    \u8fba\u306f\u65b0\u3057\u3044\u30ce\u30fc\u30c9\u306b\u5272\u308a\u5f53\u3066\u3089\u308c\u307e\u3059\u3002
    \u5404\u5217\u306f\u884c\u306e\u5024\u3092\uff11\u3064\u306e\u5024\u306b\u6e1b\u3089\u3059\u305f\u3081\u306e\u4e0e\u3048\u3089\u308c\u305f\u6226\u7565\u3092\u6301\u3061\u307e\u3059\u3002
    \u968e\u5c64\u306f\u7121\u8996\u3055\u308c\u307e\u3059\u3002 - -MergeNodesUI.deleteMergedNodesText=\u7d71\u5408\u3057\u305f\u30ce\u30fc\u30c9\u306e\u524a\u9664 - -MergeNodesUI.selectedRowText=\u4e3b\u306a\u9078\u629e\u3057\u305f\u5217\: - -MergeNodesUI.configurationText=\u69cb\u6210 - -LinkNodesUI.descriptionLabel.text=\u30bd\u30fc\u30b9\u30fb\u30ce\u30fc\u30c9\u3068\u8fba\u306e\u30bf\u30a4\u30d7\u3092\u9078\u3093\u3067\u4e0b\u3055\u3044\u3002
    \u30bd\u30fc\u30b9\u30fb\u30ce\u30fc\u30c9\u3068\u4ed6\u306e\u9078\u629e\u3057\u305f\u30ce\u30fc\u30c9\u9593\u306e\u8fba\u306f\u53ef\u80fd\u306a\u5834\u5408\u751f\u6210\u3055\u308c\u307e\u3059\u3002 - -LinkNodesUI.directedEdge.text=\u6709\u5411 - -LinkNodesUI.undirectedEdge.text=\u7121\u5411 - -LinkNodesUI.sourceNodeLabel.text=\u30bd\u30fc\u30b9\u30fb\u30ce\u30fc\u30c9\: - -LinkNodesUI.edgeTypeLabel.text=\u8fba\u306e\u30bf\u30a4\u30d7\: - -MoveNodeToGroupUI.descriptionLabel.text=\u65b0\u898f\u30b0\u30eb\u30fc\u30d7\: - -CopyNodesUI.descriptionLabel.text=\u30b3\u30d4\u30fc\u306e\u6570\: - -SetNodesSizeUI.sizeLabel.text=\u65b0\u898f\u30ce\u30fc\u30c9\u306e\u30b5\u30a4\u30ba\: +MergeNodesUI.description=\u9078\u629e\u3055\u308c\u305f\u4e3b\u306a\u30ce\u30fc\u30c9\u306e\u540c\u3058\u8272\u3001\u30b5\u30a4\u30ba\u3001\u4f4d\u7f6e\u306e\u65b0\u305f\u306a\u30ce\u30fc\u30c9\u304c\u751f\u6210\u3055\u308c\u307e\u3059\u3002
    \u8fba\u306f\u65b0\u3057\u3044\u30ce\u30fc\u30c9\u306b\u5272\u308a\u5f53\u3066\u3089\u308c\u307e\u3059\u3002
    \u5404\u5217\u306f\u884c\u306e\u5024\u3092\uff11\u3064\u306e\u5024\u306b\u6e1b\u3089\u3059\u305f\u3081\u306e\u4e0e\u3048\u3089\u308c\u305f\u6226\u7565\u3092\u6301\u3061\u307e\u3059\u3002
    \u968e\u5c64\u306f\u7121\u8996\u3055\u308c\u307e\u3059\u3002 +MergeNodesUI.deleteMergedNodesText=\u7d71\u5408\u3057\u305f\u30ce\u30fc\u30c9\u306e\u524a\u9664 +MergeNodesUI.selectedRowText=\u4e3b\u306a\u9078\u629e\u3057\u305f\u5217: +MergeNodesUI.configurationText=\u69cb\u6210 +LinkNodesUI.descriptionLabel.text=\u30bd\u30fc\u30b9\u30fb\u30ce\u30fc\u30c9\u3068\u8fba\u306e\u30bf\u30a4\u30d7\u3092\u9078\u3093\u3067\u4e0b\u3055\u3044\u3002
    \u30bd\u30fc\u30b9\u30fb\u30ce\u30fc\u30c9\u3068\u4ed6\u306e\u9078\u629e\u3057\u305f\u30ce\u30fc\u30c9\u9593\u306e\u8fba\u306f\u53ef\u80fd\u306a\u5834\u5408\u751f\u6210\u3055\u308c\u307e\u3059\u3002 +LinkNodesUI.directedEdge.text=\u6709\u5411 +LinkNodesUI.undirectedEdge.text=\u7121\u5411 +LinkNodesUI.sourceNodeLabel.text=\u30bd\u30fc\u30b9\u30fb\u30ce\u30fc\u30c9: +LinkNodesUI.edgeTypeLabel.text=\u8fba\u306e\u30bf\u30a4\u30d7: +MoveNodeToGroupUI.descriptionLabel.text=\u65b0\u898f\u30b0\u30eb\u30fc\u30d7: +CopyNodesUI.descriptionLabel.text=\u30b3\u30d4\u30fc\u306e\u6570: +SetNodesSizeUI.sizeLabel.text=\u65b0\u898f\u30ce\u30fc\u30c9\u306e\u30b5\u30a4\u30ba: +SetNodesSizeUI.sizeText.text= diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_ko.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_ko.properties new file mode 100644 index 0000000000..df782b2832 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_ko.properties @@ -0,0 +1,14 @@ + + +MergeNodesUI.selectedRowText=\uC120\uD0DD\uD55C \uAE30\uBCF8 \uD589: +MergeNodesUI.configurationText=\uAD6C\uC131 +LinkNodesUI.sourceNodeLabel.text=\uC18C\uC2A4 \uB178\uB4DC: +LinkNodesUI.descriptionLabel.text=\uC18C\uC2A4 \uB178\uB4DC\uC640 \uC5E3\uC9C0 \uC720\uD615\uC744 \uC120\uD0DD\uD558\uC138\uC694.
    \uAC00\uB2A5\uD55C \uACBD\uC6B0 \uC18C\uC2A4 \uB178\uB4DC\uC640 \uC120\uD0DD\uD55C \uB2E4\uB978 \uB178\uB4DC \uC0AC\uC774\uC758 \uC5E3\uC9C0\uAC00 \uC0DD\uC131\uB429\uB2C8\uB2E4. +MergeNodesUI.description=\uC120\uD0DD\uD55C \uC8FC \uB178\uB4DC\uC758 \uC0C9\uC0C1, \uD06C\uAE30 \uBC0F \uC704\uCE58\uAC00 \uB3D9\uC77C\uD55C \uD558\uB098\uC758 \uC0C8\uB85C\uC6B4 \uB178\uB4DC\uAC00 \uC0DD\uC131\uB429\uB2C8\uB2E4.
    \uC5E3\uC9C0\uAC00 \uC0C8 \uB178\uB4DC\uC5D0 \uD560\uB2F9\uB429\uB2C8\uB2E4.
    \uAC01 \uC5F4\uC740 \uC8FC\uC5B4\uC9C4 \uC804\uB7B5\uC744 \uC0AC\uC6A9\uD558\uC5EC \uD589 \uAC12\uB4E4\uC744 \uD558\uB098\uC758 \uAC12\uC73C\uB85C \uC904\uC785\uB2C8\uB2E4. +LinkNodesUI.directedEdge.text=\uBC29\uD5A5\uC131 +LinkNodesUI.edgeTypeLabel.text=\uC5E3\uC9C0 \uC720\uD615: +CopyNodesUI.descriptionLabel.text=\uC0AC\uBCF8 \uC218: +SetNodesSizeUI.sizeLabel.text=\uC0C8 \uB178\uB4DC \uD06C\uAE30: +LinkNodesUI.undirectedEdge.text=\uBE44\uBC29\uD5A5\uC131 +MergeNodesUI.deleteMergedNodesText=\uBCD1\uD569\uB41C \uB178\uB4DC\uB4E4 \uC0AD\uC81C +MoveNodeToGroupUI.descriptionLabel.text=\uC0C8 \uADF8\uB8F9: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_nl.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_nl.properties new file mode 100644 index 0000000000..84952dab8b --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_nl.properties @@ -0,0 +1,13 @@ +MergeNodesUI.description=One new node with the same color, size and position of the main selected node is created.
    Edges are assigned to the new node.
    Each column uses the given strategy to reduce the rows values to one value. +MergeNodesUI.deleteMergedNodesText=Delete merged nodes +MergeNodesUI.selectedRowText=Main selected row: +MergeNodesUI.configurationText=Configureren +LinkNodesUI.descriptionLabel.text=Choose the source node and type of the edges.
    Edges between source node and the other selected nodes are created if possible. +LinkNodesUI.directedEdge.text=Gericht +LinkNodesUI.undirectedEdge.text=Ongericht +LinkNodesUI.sourceNodeLabel.text=Bronknoop: +LinkNodesUI.edgeTypeLabel.text=Edge type: +MoveNodeToGroupUI.descriptionLabel.text=Nieuwe groep: +CopyNodesUI.descriptionLabel.text=Aantal kopieλn: +SetNodesSizeUI.sizeLabel.text=Grootte van nieuwe knopen: +SetNodesSizeUI.sizeText.text= diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_pt_BR.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_pt_BR.properties index 39606a00d4..7d205a1ebc 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_pt_BR.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_pt_BR.properties @@ -1,31 +1,13 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# C\u00e9lio CJr , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-08 19\:14+0000\nLast-Translator\: C\u00e9lio Faria Jr. \nLanguage-Team\: Portuguese (Brazil) (http\://www.transifex.com/projects/p/gephi/language/pt_BR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt_BR\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -MergeNodesUI.description=Ser\u00e1 criado um novo n\u00f3 com a mesma cor, tamanho e posi\u00e7\u00e3o do n\u00f3 principal selecionado.
    Arestas ser\u00e3o atribu\u00eddas ao novo n\u00f3.
    Cada coluna utiliza a estrat\u00e9gia determinada para reduzir os valores de linhas para apenas um valor.
    A hierarquia \u00e9 ignorada. - -MergeNodesUI.deleteMergedNodesText=Excluir n\u00f3s mesclados - -MergeNodesUI.selectedRowText=Principal linha selecionada\: - -MergeNodesUI.configurationText=Configurar - -LinkNodesUI.descriptionLabel.text=Escolher o n\u00f3 de origem e o tipo das arestas.
    Ser\u00e3o criadas, se poss\u00edvel, arestas entre o n\u00f3 fonte e os outros n\u00f3s selecionados. - -LinkNodesUI.directedEdge.text=Dirigido - -LinkNodesUI.undirectedEdge.text=N\u00e3o dirigido - -LinkNodesUI.sourceNodeLabel.text=N\u00f3 origem\: - -LinkNodesUI.edgeTypeLabel.text=Tipo de aresta\: - -MoveNodeToGroupUI.descriptionLabel.text=Novo grupo\: - -CopyNodesUI.descriptionLabel.text=N\u00famero de c\u00f3pias\: - -SetNodesSizeUI.sizeLabel.text=Novo tamanho\: +MergeNodesUI.description=Serα criado um novo nσ com a mesma cor, tamanho e posiηγo do nσ principal selecionado.
    Arestas serγo atribuνdas ao novo nσ.
    Cada coluna utiliza a estratιgia determinada para reduzir os valores de linhas para apenas um valor.
    A hierarquia ι ignorada. +MergeNodesUI.deleteMergedNodesText=Excluir nσs mesclados +MergeNodesUI.selectedRowText=Principal linha selecionada: +MergeNodesUI.configurationText=Configurar +LinkNodesUI.descriptionLabel.text=Escolher o nσ de origem e o tipo das arestas.
    Serγo criadas, se possνvel, arestas entre o nσ fonte e os outros nσs selecionados. +LinkNodesUI.directedEdge.text=Dirigido +LinkNodesUI.undirectedEdge.text=Nγo dirigido +LinkNodesUI.sourceNodeLabel.text=Nσ origem: +LinkNodesUI.edgeTypeLabel.text=Tipo de aresta: +MoveNodeToGroupUI.descriptionLabel.text=Novo grupo: +CopyNodesUI.descriptionLabel.text=Nϊmero de cσpias: +SetNodesSizeUI.sizeLabel.text=Novo tamanho: +SetNodesSizeUI.sizeText.text= diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_ro.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_ro.properties new file mode 100644 index 0000000000..848e38d170 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_ro.properties @@ -0,0 +1,14 @@ + + +LinkNodesUI.descriptionLabel.text=Selecteaz\u0103 nodul surs\u0103 \u0219i tipul muchiilor.
    Vor fi create muchii \u00EEntre nodul surs\u0103 \u0219i celelalte noduri dac\u0103 este posibil. +LinkNodesUI.directedEdge.text=Orientat +LinkNodesUI.undirectedEdge.text=Neorientat +LinkNodesUI.sourceNodeLabel.text=Nod surs\u0103: +LinkNodesUI.edgeTypeLabel.text=Tipul muchiei: +MoveNodeToGroupUI.descriptionLabel.text=Grup nou: +MergeNodesUI.deleteMergedNodesText=\u0218terge nodurile \u00EEmbinate +MergeNodesUI.selectedRowText=R\u00E2ndul principal selectat: +MergeNodesUI.configurationText=Configureaz\u0103 +CopyNodesUI.descriptionLabel.text=Num\u0103r de copii: +SetNodesSizeUI.sizeLabel.text=Dimensiunea noilor noduri: +MergeNodesUI.description=Este creat un nou nod de aceea\u0219i culoare, dimensiune \u0219i pozi\u021Bie ca nodul principal selectat.
    Muchiile sunt atribuite nodului nou.
    Fiecare coloan\u0103 reduce valorile la una singur\u0103 folosind strategia dat\u0103. diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_ru.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_ru.properties index 56411cf275..4de8af3981 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_ru.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_ru.properties @@ -1,32 +1,13 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# , 2011, 2012. -# FIRST AUTHOR , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-14 15\:20+0000\nLast-Translator\: Altsoph \nLanguage-Team\: Russian (http\://www.transifex.com/projects/p/gephi/language/ru/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ru\nPlural-Forms\: nplurals\=3; plural\=(n%10\=\=1 && n%100\!\=11 ? 0 \: n%10>\=2 && n%10<\=4 && (n%100<10 || n%100>\=20) ? 1 \: 2);\n - -MergeNodesUI.description=\u0411\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d \u043d\u043e\u0432\u044b\u0439 \u0443\u0437\u0435\u043b \u0441 \u0442\u0435\u043c \u0436\u0435 \u0446\u0432\u0435\u0442\u043e\u043c, \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0438 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c, \u0447\u0442\u043e \u0438 \u0443 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0443\u0437\u043b\u0430.
    \u0420\u0451\u0431\u0440\u0430 \u0431\u0443\u0434\u0443\u0442 \u043f\u0435\u0440\u0435\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u044b \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 \u0443\u0437\u0435\u043b.
    \u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432\u0435\u0441\u043e\u0432 \u0441\u0445\u043b\u043e\u043f\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0434\u043e \u043e\u0434\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u043c\u0443 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0443.
    \u0418\u0435\u0440\u0430\u0440\u0445\u0438\u044f \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f. - -MergeNodesUI.deleteMergedNodesText=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u043a\u043b\u0435\u0435\u043d\u044b\u0435 \u0443\u0437\u043b\u044b - -MergeNodesUI.selectedRowText=\u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430\: - -MergeNodesUI.configurationText=\u0421\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c - -LinkNodesUI.descriptionLabel.text=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0443\u0437\u0435\u043b \u0442\u0438\u043f \u0440\u0435\u0431\u0440\u0430.
    \n\u0420\u0451\u0431\u0440\u0430 \u043c\u0435\u0436\u0434\u0443 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u043c \u0443\u0437\u043b\u043e\u043c \u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u043c\u0438 \u0443\u0437\u043b\u0430\u043c\u0438 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u044b, \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e. - -LinkNodesUI.directedEdge.text=\u041e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 - -LinkNodesUI.undirectedEdge.text=\u041d\u0435\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 - -LinkNodesUI.sourceNodeLabel.text=\u041d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0443\u0437\u0435\u043b\: - -LinkNodesUI.edgeTypeLabel.text=\u0422\u0438\u043f \u0440\u0435\u0431\u0440\u0430\: - -MoveNodeToGroupUI.descriptionLabel.text=\u041d\u043e\u0432\u0430\u044f \u0433\u0440\u0443\u043f\u043f\u0430\: - -CopyNodesUI.descriptionLabel.text=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u043e\u043f\u0438\u0439\: - -SetNodesSizeUI.sizeLabel.text=\u0420\u0430\u0437\u043c\u0435\u0440 \u043d\u043e\u0432\u044b\u0445 \u0443\u0437\u043b\u043e\u0432\: +MergeNodesUI.description=\u0411\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d \u043d\u043e\u0432\u044b\u0439 \u0443\u0437\u0435\u043b \u0441 \u0442\u0435\u043c \u0436\u0435 \u0446\u0432\u0435\u0442\u043e\u043c, \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0438 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c, \u0447\u0442\u043e \u0438 \u0443 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0443\u0437\u043b\u0430.
    \u0420\u0451\u0431\u0440\u0430 \u0431\u0443\u0434\u0443\u0442 \u043f\u0435\u0440\u0435\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u044b \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 \u0443\u0437\u0435\u043b.
    \u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432\u0435\u0441\u043e\u0432 \u0441\u0445\u043b\u043e\u043f\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0434\u043e \u043e\u0434\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u043c\u0443 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0443.
    \u0418\u0435\u0440\u0430\u0440\u0445\u0438\u044f \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f. +MergeNodesUI.deleteMergedNodesText=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u043a\u043b\u0435\u0435\u043d\u044b\u0435 \u0443\u0437\u043b\u044b +MergeNodesUI.selectedRowText=\u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430: +MergeNodesUI.configurationText=\u0421\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c +LinkNodesUI.descriptionLabel.text=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0443\u0437\u0435\u043b \u0442\u0438\u043f \u0440\u0435\u0431\u0440\u0430.
    \n\u0420\u0451\u0431\u0440\u0430 \u043c\u0435\u0436\u0434\u0443 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u043c \u0443\u0437\u043b\u043e\u043c \u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u043c\u0438 \u0443\u0437\u043b\u0430\u043c\u0438 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u044b, \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e. +LinkNodesUI.directedEdge.text=\u041e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 +LinkNodesUI.undirectedEdge.text=\u041d\u0435\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 +LinkNodesUI.sourceNodeLabel.text=\u041d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0443\u0437\u0435\u043b: +LinkNodesUI.edgeTypeLabel.text=\u0422\u0438\u043f \u0440\u0435\u0431\u0440\u0430: +MoveNodeToGroupUI.descriptionLabel.text=\u041d\u043e\u0432\u0430\u044f \u0433\u0440\u0443\u043f\u043f\u0430: +CopyNodesUI.descriptionLabel.text=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u043e\u043f\u0438\u0439: +SetNodesSizeUI.sizeLabel.text=\u0420\u0430\u0437\u043c\u0435\u0440 \u043d\u043e\u0432\u044b\u0445 \u0443\u0437\u043b\u043e\u0432: +SetNodesSizeUI.sizeText.text= diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_th.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_th.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_th.properties @@ -0,0 +1 @@ + diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_tr.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_tr.properties new file mode 100644 index 0000000000..62debf4ee3 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_tr.properties @@ -0,0 +1,13 @@ +MergeNodesUI.description=One new node with the same color, size and position of the main selected node is created.
    Edges are assigned to the new node.
    Each column uses the given strategy to reduce the rows values to one value. +MergeNodesUI.deleteMergedNodesText=Delete merged nodes +MergeNodesUI.selectedRowText=Main selected row: +MergeNodesUI.configurationText=Configure +LinkNodesUI.descriptionLabel.text=Choose the source node and type of the edges.
    Edges between source node and the other selected nodes are created if possible. +LinkNodesUI.directedEdge.text=Yφnlό +LinkNodesUI.undirectedEdge.text=Yφnsόz +LinkNodesUI.sourceNodeLabel.text=Source node: +LinkNodesUI.edgeTypeLabel.text=Edge type: +MoveNodeToGroupUI.descriptionLabel.text=New group: +CopyNodesUI.descriptionLabel.text=Number of copies: +SetNodesSizeUI.sizeLabel.text=New nodes size: +SetNodesSizeUI.sizeText.text= diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_uk.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_uk.properties new file mode 100644 index 0000000000..2e9c7312ed --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_uk.properties @@ -0,0 +1,13 @@ +MergeNodesUI.selectedRowText=\u041E\u0441\u043D\u043E\u0432\u043D\u0438\u0439 \u0432\u0438\u0431\u0440\u0430\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: +MergeNodesUI.configurationText=\u041D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u0442\u0438 +LinkNodesUI.descriptionLabel.text=\u0412\u0438\u0431\u0435\u0440\u0456\u0442\u044C \u0432\u0438\u0445\u0456\u0434\u043D\u0438\u0439 \u0432\u0443\u0437\u043E\u043B \u0456 \u0442\u0438\u043F \u0440\u0435\u0431\u0435\u0440.
    \u0417\u0430 \u043C\u043E\u0436\u043B\u0438\u0432\u043E\u0441\u0442\u0456 \u0441\u0442\u0432\u043E\u0440\u044E\u044E\u0442\u044C\u0441\u044F \u0440\u0435\u0431\u0440\u0430 \u043C\u0456\u0436 \u0432\u0438\u0445\u0456\u0434\u043D\u0438\u043C \u0432\u0443\u0437\u043B\u043E\u043C \u0442\u0430 \u0456\u043D\u0448\u0438\u043C\u0438 \u0432\u0438\u0431\u0440\u0430\u043D\u0438\u043C\u0438 \u0432\u0443\u0437\u043B\u0430\u043C\u0438. +MergeNodesUI.description=\u0421\u0442\u0432\u043E\u0440\u044E\u0454\u0442\u044C\u0441\u044F \u043E\u0434\u0438\u043D \u043D\u043E\u0432\u0438\u0439 \u0432\u0443\u0437\u043E\u043B \u0437 \u0442\u0430\u043A\u0438\u043C \u0441\u0430\u043C\u0438\u043C \u043A\u043E\u043B\u044C\u043E\u0440\u043E\u043C, \u0440\u043E\u0437\u043C\u0456\u0440\u043E\u043C \u0456 \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u043D\u044F\u043C \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0433\u043E \u0432\u0438\u0431\u0440\u0430\u043D\u043E\u0433\u043E \u0432\u0443\u0437\u043B\u0430.
    \u041D\u043E\u0432\u043E\u043C\u0443 \u0432\u0443\u0437\u043B\u0443 \u043F\u0440\u0438\u0437\u043D\u0430\u0447\u0430\u044E\u0442\u044C\u0441\u044F \u0440\u0435\u0431\u0440\u0430.
    \u041A\u043E\u0436\u0435\u043D \u0441\u0442\u043E\u0432\u043F\u0435\u0446\u044C \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0454 \u0432\u043A\u0430\u0437\u0430\u043D\u0443 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0456\u044E \u0434\u043B\u044F \u0437\u043C\u0435\u043D\u0448\u0435\u043D\u043D\u044F \u0437\u043D\u0430\u0447\u0435\u043D\u044C \u0440\u044F\u0434\u043A\u0456\u0432 \u0434\u043E \u043E\u0434\u043D\u043E\u0433\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F. +MergeNodesUI.deleteMergedNodesText=\u0412\u0438\u0434\u0430\u043B\u0438\u0442\u0438 \u043E\u0431'\u0454\u0434\u043D\u0430\u043D\u0456 \u0432\u0443\u0437\u043B\u0438 +LinkNodesUI.directedEdge.text=\u0420\u0435\u0436\u0438\u0441\u0435\u0440 +LinkNodesUI.undirectedEdge.text=\u041D\u0435\u0440\u0435\u0436\u0438\u0441\u043E\u0432\u0430\u043D\u0438\u0439 +LinkNodesUI.sourceNodeLabel.text=\u0412\u0438\u0445\u0456\u0434\u043D\u0438\u0439 \u0432\u0443\u0437\u043E\u043B: +LinkNodesUI.edgeTypeLabel.text=\u0422\u0438\u043F \u043A\u0440\u0430\u044E: +MoveNodeToGroupUI.descriptionLabel.text=\u041D\u043E\u0432\u0430 \u0433\u0440\u0443\u043F\u0430: +CopyNodesUI.descriptionLabel.text=\u041A\u0456\u043B\u044C\u043A\u0456\u0441\u0442\u044C \u043A\u043E\u043F\u0456\u0439: +SetNodesSizeUI.sizeLabel.text=\u0420\u043E\u0437\u043C\u0456\u0440 \u043D\u043E\u0432\u0438\u0445 \u0432\u0443\u0437\u043B\u0456\u0432: +SetNodesSizeUI.sizeText.text=\u0420\u043E\u0437\u043C\u0456\u0440 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_zh_CN.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_zh_CN.properties index ab7c685f7e..85a5a282b4 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_zh_CN.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_zh_CN.properties @@ -1,30 +1,13 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-08 00\:19+0000\nLast-Translator\: gephi \nLanguage-Team\: Chinese (China) (http\://www.transifex.com/projects/p/gephi/language/zh_CN/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: zh_CN\nPlural-Forms\: nplurals\=1; plural\=0;\n - -MergeNodesUI.description=\u521b\u5efa\u4e00\u4e2a\u65b0\u8282\u70b9\uff0c\u4e0e\u4e3b\u8981\u7684\u9009\u62e9\u8282\u70b9\u6709\u76f8\u540c\u7684\u989c\u8272\uff0c\u5927\u5c0f\u548c\u4f4d\u7f6e\u3002
    \u4e3a\u65b0\u7684\u8282\u70b9\u8bbe\u7f6e\u8fb9\u3002
    \u6bcf\u5217\u4f7f\u7528\u6240\u7ed9\u7684\u65b9\u6cd5\u6765\u51cf\u5c11\u884c\u503c\u5230\u4e00\u4e2a\u6570\u503c\u3002
    \u7b49\u7ea7\u7f3a\u7701\u3002 - +MergeNodesUI.description=\u521B\u5EFA\u4E00\u4E2A\u65B0\u8282\u70B9\uFF0C\u5176\u4E0E\u9009\u4E2D\u7684\u4E3B\u8282\u70B9\u5728\u989C\u8272\uFF0C\u5927\u5C0F\u548C\u4F4D\u7F6E\u65B9\u9762\u5747\u76F8\u540C\u3002
    \u5DF2\u5411\u65B0\u8282\u70B9\u5206\u914D\u4E86 Edge\u3002
    \u6BCF\u5217\u4F7F\u7528\u7ED9\u5B9A\u7684\u65B9\u6CD5\u6765\u51CF\u5C11\u884C\u503C\u5230\u4E00\u4E2A\u6570\u503C\u3002 MergeNodesUI.deleteMergedNodesText=\u5220\u9664\u5408\u5e76\u7684\u8282\u70b9 - MergeNodesUI.selectedRowText=\u4e3b\u8981\u7684\u9009\u62e9\u884c\uff1a - MergeNodesUI.configurationText=\u8bbe\u7f6e - LinkNodesUI.descriptionLabel.text=\u9009\u62e9\u6e90\u8282\u70b9\u548c\u8fb9\u7684\u7c7b\u578b\u3002
    \u521b\u5efa\u6e90\u8282\u70b9\u548c\u5176\u9009\u62e9\u7684\u8282\u70b9\u7684\u53ef\u80fd\u5b58\u5728\u7684\u8fb9\u3002 - LinkNodesUI.directedEdge.text=\u6709\u5411\u7684 - LinkNodesUI.undirectedEdge.text=\u65e0\u5411\u7684 - LinkNodesUI.sourceNodeLabel.text=\u6e90\u8282\u70b9\uff1a - -LinkNodesUI.edgeTypeLabel.text=\u8fb9\u7684\u7c7b\u578b\u201d - +LinkNodesUI.edgeTypeLabel.text=\u8FB9\u7C7B\u578B\uFF1A MoveNodeToGroupUI.descriptionLabel.text=\u65b0\u7ec4\uff1a - CopyNodesUI.descriptionLabel.text=\u590d\u5236\u7684\u6570\u91cf\uff1a - SetNodesSizeUI.sizeLabel.text=\u65b0\u8282\u70b9\u5927\u5c0f\uff1a +SetNodesSizeUI.sizeText.text= diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_zh_TW.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_zh_TW.properties new file mode 100644 index 0000000000..0b46656dae --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/Bundle_zh_TW.properties @@ -0,0 +1,13 @@ +MergeNodesUI.description=One new node with the same color, size and position of the main selected node is created.
    Edges are assigned to the new node.
    Each column uses the given strategy to reduce the rows values to one value. +MergeNodesUI.deleteMergedNodesText=Delete merged nodes +MergeNodesUI.selectedRowText=Main selected row: +MergeNodesUI.configurationText=Configure +LinkNodesUI.descriptionLabel.text=Choose the source node and type of the edges.
    Edges between source node and the other selected nodes are created if possible. +LinkNodesUI.directedEdge.text=\u6709\u5411\u6027 +LinkNodesUI.undirectedEdge.text=\u7121\u5411\u6027 +LinkNodesUI.sourceNodeLabel.text=Source node: +LinkNodesUI.edgeTypeLabel.text=Edge type: +MoveNodeToGroupUI.descriptionLabel.text=New group: +CopyNodesUI.descriptionLabel.text=Number of copies: +SetNodesSizeUI.sizeLabel.text=New nodes size: +SetNodesSizeUI.sizeText.text= diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/cs.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/cs.po deleted file mode 100644 index 7b8977512c..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/cs.po +++ /dev/null @@ -1,55 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# ZbynΔ›k Schwarz , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-02-27 14:20+0000\n" -"Last-Translator: ZbynΔ›k Schwarz \n" -"Language-Team: Czech (http://www.transifex.com/projects/p/gephi/language/cs/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: cs\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" - -msgid "MergeNodesUI.description" -msgstr "Je vytvoΕ™en jeden novΓ½ uzel se stejnou barvou, velikostΓ­ a umΓ­stΔ›nΓ­m z hlavnΓ­ho zvolenΓ©ho uzle.
    Hrany jsou pΕ™idΔ›leny k novΓ©mu uzlu.
    KaΕΎdΓ½ sloupec pouΕΎΓ­vΓ‘ zadanou strategii pro snΓ­ΕΎenΓ­ hodnot Ε™Γ‘dkΕ― na jendu hodnotu.
    Hierarchie je ignorovΓ‘na." - -msgid "MergeNodesUI.deleteMergedNodesText" -msgstr "Smazat sloučenΓ© uzle" - -msgid "MergeNodesUI.selectedRowText" -msgstr "HlavnΓ­ vybranΓ½ Ε™Γ‘dek" - -msgid "MergeNodesUI.configurationText" -msgstr "Nastavit" - -msgid "LinkNodesUI.descriptionLabel.text" -msgstr "Zvolte zdrojovΓ½ uzel a typ hran.
    Hrany mezi zdrojovΓ½m uzlem a jinΓ½mi vybranΓ½mi uzly jsou vytvoΕ™eny, pokud je moΕΎnost." - -msgid "LinkNodesUI.directedEdge.text" -msgstr "ŘízenΓ©" - -msgid "LinkNodesUI.undirectedEdge.text" -msgstr "NeΕ™Γ­zenΓ©" - -msgid "LinkNodesUI.sourceNodeLabel.text" -msgstr "ZdrojovΓ½ uzel:" - -msgid "LinkNodesUI.edgeTypeLabel.text" -msgstr "Typ hrany:" - -msgid "MoveNodeToGroupUI.descriptionLabel.text" -msgstr "NovΓ‘ skupina:" - -msgid "CopyNodesUI.descriptionLabel.text" -msgstr "Počet kopiΓ­:" - -msgid "SetNodesSizeUI.sizeLabel.text" -msgstr "Velikost novΓ©ho uzle:" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/es.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/es.po deleted file mode 100644 index 9e30421294..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/es.po +++ /dev/null @@ -1,57 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Eduardo Ramos , 2011, 2012. -# FIRST AUTHOR , 2010. -# , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-03-31 12:39+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/gephi/language/es/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -msgid "MergeNodesUI.description" -msgstr "Un nuevo nodo con el mismo color, tamaΓ±o y posiciΓ³n que el nodo principal seleccionado es creado.
    Las aristas son asignadas al nuevo nodo.
    Cada columna utiliza la estrategia proporcionada para reducir los valores de las filas a un valor.
    La jerarquΓ­a es ignorada" - -msgid "MergeNodesUI.deleteMergedNodesText" -msgstr "Eliminar nodos mezclados" - -msgid "MergeNodesUI.selectedRowText" -msgstr "Fila principal seleccionada:" - -msgid "MergeNodesUI.configurationText" -msgstr "Configurar" - -msgid "LinkNodesUI.descriptionLabel.text" -msgstr "Escoge el nodo origen y el tipo de la(s) arista(s).
    Se crearΓ‘n aristas entre el nodo seleccionado y todos los demΓ‘s nodos cuando sea posible." - -msgid "LinkNodesUI.directedEdge.text" -msgstr "Dirigida" - -msgid "LinkNodesUI.undirectedEdge.text" -msgstr "No dirigida" - -msgid "LinkNodesUI.sourceNodeLabel.text" -msgstr "Nodo origen:" - -msgid "LinkNodesUI.edgeTypeLabel.text" -msgstr "Tipo de arista:" - -msgid "MoveNodeToGroupUI.descriptionLabel.text" -msgstr "Nuevo grupo:" - -msgid "CopyNodesUI.descriptionLabel.text" -msgstr "NΓΊmero de copias:" - -msgid "SetNodesSizeUI.sizeLabel.text" -msgstr "Nuevo tamaΓ±o:" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/fr.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/fr.po deleted file mode 100644 index a2875a085d..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/fr.po +++ /dev/null @@ -1,56 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -# , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-07 11:12+0000\n" -"Last-Translator: gephi \n" -"Language-Team: French (http://www.transifex.com/projects/p/gephi/language/fr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "MergeNodesUI.description" -msgstr "Créé un nouveau noeud de mΓͺme couleur, taille et position que le principal sΓ©lectionnΓ©.
    Chaque colonne utilise une stratΓ©gie pour rΓ©duire les valeurs des lignes en une seule valeur.
    Ignore la hiΓ©rarchie." - -msgid "MergeNodesUI.deleteMergedNodesText" -msgstr "Supprimer les noeuds fusionnΓ©s" - -msgid "MergeNodesUI.selectedRowText" -msgstr "Ligne sΓ©lectionnΓ©e principale :" - -msgid "MergeNodesUI.configurationText" -msgstr "Configurer" - -msgid "LinkNodesUI.descriptionLabel.text" -msgstr "Choisissez le noeud source.
    Les liens entre ce noeud et les autres noeuds sΓ©lectionnΓ©s seront créés si possible." - -msgid "LinkNodesUI.directedEdge.text" -msgstr "DirigΓ©" - -msgid "LinkNodesUI.undirectedEdge.text" -msgstr "Non dirigΓ©" - -msgid "LinkNodesUI.sourceNodeLabel.text" -msgstr "Noeud source :" - -msgid "LinkNodesUI.edgeTypeLabel.text" -msgstr "Type de lien :" - -msgid "MoveNodeToGroupUI.descriptionLabel.text" -msgstr "Choisissez le groupe ou dΓ©placer les noeuds" - -msgid "CopyNodesUI.descriptionLabel.text" -msgstr "Nombre de copies :" - -msgid "SetNodesSizeUI.sizeLabel.text" -msgstr "Nouvelle taille des noeuds :" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/ja.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/ja.po deleted file mode 100644 index c611d7caa7..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/ja.po +++ /dev/null @@ -1,55 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-09-02 10:54+0000\n" -"Last-Translator: Siro Kida \n" -"Language-Team: Japanese (http://www.transifex.com/projects/p/gephi/language/ja/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ja\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "MergeNodesUI.description" -msgstr "ιΈζŠžγ•γ‚ŒγŸδΈ»γͺγƒŽγƒΌγƒ‰γεŒγ˜θ‰²γ€γ‚΅γ‚€γ‚Ίγ€δ½η½γζ–°γŸγͺγƒŽγƒΌγƒ‰γŒη”Ÿζˆγ•γ‚ŒγΎγ™γ€‚
    θΎΊγ―ζ–°γ—γ„γƒŽγƒΌγƒ‰γ«ε‰²γ‚Šε½“γ¦γ‚‰γ‚ŒγΎγ™γ€‚
    ε„εˆ—γ―θ‘Œγε€€γ‚’1぀γε€€γ«ζΈ›γ‚‰γ™γŸγ‚γδΈŽγˆγ‚‰γ‚ŒγŸζˆ¦η•₯γ‚’ζŒγ‘γΎγ™γ€‚
    ιšŽε±€γ―η„‘θ¦–γ•γ‚ŒγΎγ™γ€‚" - -msgid "MergeNodesUI.deleteMergedNodesText" -msgstr "η΅±εˆγ—γŸγƒŽγƒΌγƒ‰γε‰Šι™€" - -msgid "MergeNodesUI.selectedRowText" -msgstr "δΈ»γͺιΈζŠžγ—γŸεˆ—:" - -msgid "MergeNodesUI.configurationText" -msgstr "ζ§‹ζˆ" - -msgid "LinkNodesUI.descriptionLabel.text" -msgstr "γ‚½γƒΌγ‚Ήγƒ»γƒŽγƒΌγƒ‰γ¨θΎΊγγ‚Ώγ‚€γƒ—を選んで下さい。
    γ‚½γƒΌγ‚Ήγƒ»γƒŽγƒΌγƒ‰γ¨δ»–γιΈζŠžγ—γŸγƒŽγƒΌγƒ‰ι–“γθΎΊγ―可能γͺε ΄εˆη”Ÿζˆγ•γ‚ŒγΎγ™γ€‚" - -msgid "LinkNodesUI.directedEdge.text" -msgstr "ζœ‰ε‘" - -msgid "LinkNodesUI.undirectedEdge.text" -msgstr "焑向" - -msgid "LinkNodesUI.sourceNodeLabel.text" -msgstr "γ‚½γƒΌγ‚Ήγƒ»γƒŽγƒΌγƒ‰:" - -msgid "LinkNodesUI.edgeTypeLabel.text" -msgstr "θΎΊγγ‚Ώγ‚€γƒ—:" - -msgid "MoveNodeToGroupUI.descriptionLabel.text" -msgstr "新規グループ:" - -msgid "CopyNodesUI.descriptionLabel.text" -msgstr "コピーγζ•°:" - -msgid "SetNodesSizeUI.sizeLabel.text" -msgstr "ζ–°θ¦γƒŽγƒΌγƒ‰γγ‚΅γ‚€γ‚Ί:" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/org-gephi-datalab-plugin-manipulators-nodes-ui.pot b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/org-gephi-datalab-plugin-manipulators-nodes-ui.pot deleted file mode 100644 index 37b646c966..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/org-gephi-datalab-plugin-manipulators-nodes-ui.pot +++ /dev/null @@ -1,58 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# Gephi Team , 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: Gephi 0.8\n" -"Report-Msgid-Bugs-To: gephi.team@lists.launchpad.net\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-05 14:52+0200\n" -"Last-Translator: Mathieu Bastian \n" -"Language-Team: English \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "MergeNodesUI.description" -msgstr "" -"One new node with the same color, size and position of the main " -"selected node is created.
    Edges are assigned to the new node.
    Each " -"column uses the given strategy to reduce the rows values to one value.
    Hierarchy is ignored." - -msgid "MergeNodesUI.deleteMergedNodesText" -msgstr "Delete merged nodes" - -msgid "MergeNodesUI.selectedRowText" -msgstr "Main selected row:" - -msgid "MergeNodesUI.configurationText" -msgstr "Configure" - -msgid "LinkNodesUI.descriptionLabel.text" -msgstr "" -"Choose the source node and type of the edges.
    Edges between " -"source node and the other selected nodes are created if possible." - -msgid "LinkNodesUI.directedEdge.text" -msgstr "Directed" - -msgid "LinkNodesUI.undirectedEdge.text" -msgstr "Undirected" - -msgid "LinkNodesUI.sourceNodeLabel.text" -msgstr "Source node:" - -msgid "LinkNodesUI.edgeTypeLabel.text" -msgstr "Edge type:" - -msgid "MoveNodeToGroupUI.descriptionLabel.text" -msgstr "New group:" - -msgid "CopyNodesUI.descriptionLabel.text" -msgstr "Number of copies:" - -msgid "SetNodesSizeUI.sizeLabel.text" -msgstr "New nodes size:" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/pt_BR.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/pt_BR.po deleted file mode 100644 index 54b032ed0f..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/pt_BR.po +++ /dev/null @@ -1,55 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# CΓ©lio CJr , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-08 19:14+0000\n" -"Last-Translator: CΓ©lio Faria Jr. \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/gephi/language/pt_BR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "MergeNodesUI.description" -msgstr "SerΓ‘ criado um novo nΓ³ com a mesma cor, tamanho e posiΓ§Γ£o do nΓ³ principal selecionado.
    Arestas serΓ£o atribuΓ­das ao novo nΓ³.
    Cada coluna utiliza a estratΓ©gia determinada para reduzir os valores de linhas para apenas um valor.
    A hierarquia Γ© ignorada." - -msgid "MergeNodesUI.deleteMergedNodesText" -msgstr "Excluir nΓ³s mesclados" - -msgid "MergeNodesUI.selectedRowText" -msgstr "Principal linha selecionada:" - -msgid "MergeNodesUI.configurationText" -msgstr "Configurar" - -msgid "LinkNodesUI.descriptionLabel.text" -msgstr "Escolher o nΓ³ de origem e o tipo das arestas.
    SerΓ£o criadas, se possΓ­vel, arestas entre o nΓ³ fonte e os outros nΓ³s selecionados." - -msgid "LinkNodesUI.directedEdge.text" -msgstr "Dirigido" - -msgid "LinkNodesUI.undirectedEdge.text" -msgstr "NΓ£o dirigido" - -msgid "LinkNodesUI.sourceNodeLabel.text" -msgstr "NΓ³ origem:" - -msgid "LinkNodesUI.edgeTypeLabel.text" -msgstr "Tipo de aresta:" - -msgid "MoveNodeToGroupUI.descriptionLabel.text" -msgstr "Novo grupo:" - -msgid "CopyNodesUI.descriptionLabel.text" -msgstr "NΓΊmero de cΓ³pias:" - -msgid "SetNodesSizeUI.sizeLabel.text" -msgstr "Novo tamanho:" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/ru.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/ru.po deleted file mode 100644 index 3842a50c03..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/ru.po +++ /dev/null @@ -1,56 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# , 2011, 2012. -# FIRST AUTHOR , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-14 15:20+0000\n" -"Last-Translator: Altsoph \n" -"Language-Team: Russian (http://www.transifex.com/projects/p/gephi/language/ru/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -msgid "MergeNodesUI.description" -msgstr "Π‘ΡƒΠ΄Π΅Ρ‚ создан Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΠ·Π΅Π» с Ρ‚Π΅ΠΌ ΠΆΠ΅ Ρ†Π²Π΅Ρ‚ΠΎΠΌ, Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΈ Ρƒ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΡƒΠ·Π»Π°.
    Π Ρ‘Π±Ρ€Π° Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΠ·Π΅Π».
    ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ вСсов схлопываСтся Π΄ΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ значСния ΠΏΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌΡƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ.
    Π˜Π΅Ρ€Π°Ρ€Ρ…ΠΈΡ игнорируСтся. " - -msgid "MergeNodesUI.deleteMergedNodesText" -msgstr "Π£Π΄Π°Π»ΠΈΡ‚ΡŒ склССныС ΡƒΠ·Π»Ρ‹" - -msgid "MergeNodesUI.selectedRowText" -msgstr "Основная выбранная строка:" - -msgid "MergeNodesUI.configurationText" -msgstr "Π‘ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ" - -msgid "LinkNodesUI.descriptionLabel.text" -msgstr "Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΠ·Π΅Π» Ρ‚ΠΈΠΏ Ρ€Π΅Π±Ρ€Π°.
    \nΠ Ρ‘Π±Ρ€Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌ ΡƒΠ·Π»ΠΎΠΌ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌΠΈ ΡƒΠ·Π»Π°ΠΌΠΈ Π±ΡƒΠ΄ΡƒΡ‚ созданы, Ссли это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ." - -msgid "LinkNodesUI.directedEdge.text" -msgstr "ΠžΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅" - -msgid "LinkNodesUI.undirectedEdge.text" -msgstr "НСориСнтированноС" - -msgid "LinkNodesUI.sourceNodeLabel.text" -msgstr "ΠΠ°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΠ·Π΅Π»:" - -msgid "LinkNodesUI.edgeTypeLabel.text" -msgstr "Π’ΠΈΠΏ Ρ€Π΅Π±Ρ€Π°:" - -msgid "MoveNodeToGroupUI.descriptionLabel.text" -msgstr "Новая Π³Ρ€ΡƒΠΏΠΏΠ°:" - -msgid "CopyNodesUI.descriptionLabel.text" -msgstr "ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΊΠΎΠΏΠΈΠΉ:" - -msgid "SetNodesSizeUI.sizeLabel.text" -msgstr "Π Π°Π·ΠΌΠ΅Ρ€ Π½ΠΎΠ²Ρ‹Ρ… ΡƒΠ·Π»ΠΎΠ²:" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/zh_CN.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/zh_CN.po deleted file mode 100644 index 3808d54f03..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/ui/zh_CN.po +++ /dev/null @@ -1,54 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-08 00:19+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/gephi/language/zh_CN/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "MergeNodesUI.description" -msgstr "εˆ›ε»ΊδΈ€δΈͺζ–°θŠ‚η‚ΉοΌŒδΈŽδΈ»θ¦ηš„ι€‰ζ‹©θŠ‚η‚Ήζœ‰η›ΈεŒηš„ι’œθ‰²οΌŒε€§ε°ε’Œδ½η½γ€‚
    δΈΊζ–°ηš„θŠ‚η‚ΉθΎη½θΎΉγ€‚
    ζ―εˆ—δ½Ώη”¨ζ‰€η»™ηš„ζ–Ήζ³•ζ₯ε‡ε°‘θ‘Œε€Όεˆ°δΈ€δΈͺ数值。
    η­‰ηΊ§ηΌΊηœγ€‚" - -msgid "MergeNodesUI.deleteMergedNodesText" -msgstr "εˆ ι™€εˆεΉΆηš„θŠ‚η‚Ή" - -msgid "MergeNodesUI.selectedRowText" -msgstr "δΈ»θ¦ηš„ι€‰ζ‹©θ‘ŒοΌš" - -msgid "MergeNodesUI.configurationText" -msgstr "θΎη½" - -msgid "LinkNodesUI.descriptionLabel.text" -msgstr "ι€‰ζ‹©ζΊθŠ‚η‚Ήε’ŒθΎΉηš„η±»εž‹γ€‚
    εˆ›ε»ΊζΊθŠ‚η‚Ήε’Œε…Άι€‰ζ‹©ηš„θŠ‚η‚Ήηš„ε―θƒ½ε­˜εœ¨ηš„θΎΉγ€‚" - -msgid "LinkNodesUI.directedEdge.text" -msgstr "ζœ‰ε‘ηš„" - -msgid "LinkNodesUI.undirectedEdge.text" -msgstr "ζ— ε‘ηš„" - -msgid "LinkNodesUI.sourceNodeLabel.text" -msgstr "ζΊθŠ‚η‚ΉοΌš" - -msgid "LinkNodesUI.edgeTypeLabel.text" -msgstr "θΎΉηš„η±»εž‹β€" - -msgid "MoveNodeToGroupUI.descriptionLabel.text" -msgstr "ζ–°η»„οΌš" - -msgid "CopyNodesUI.descriptionLabel.text" -msgstr "ε€εˆΆηš„ζ•°ι‡οΌš" - -msgid "SetNodesSizeUI.sizeLabel.text" -msgstr "ζ–°θŠ‚η‚Ήε€§ε°οΌš" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/zh_CN.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/zh_CN.po deleted file mode 100644 index b21a500316..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/nodes/zh_CN.po +++ /dev/null @@ -1,138 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-08 00:18+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/gephi/language/zh_CN/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "OpenInEditNodeWindow.name" -msgstr "ηΌ–θΎ‘θŠ‚η‚Ή" - -msgid "OpenInEditNodeWindow.name.multiple" -msgstr "ηΌ–θΎ‘ζ‰€ζœ‰θŠ‚η‚Ή" - -msgid "OpenInEditNodeWindow.description" -msgstr "ζ”Ήε˜ε€§ε°γ€δ½η½γ€ι’œθ‰²ε’Œε±žζ€§γ€‚" - -msgid "OpenInEditNodeWindow.description.multiple" -msgstr "ζ”Ήε˜ε€§ε°γ€δ½η½γ€ι’œθ‰²ε’Œε±žζ€§γ€‚εˆε§‹ε€ΌδΈΊη©Ίγ€‚" - -msgid "SelectOnGraph.name" -msgstr "εœ¨ζ¦‚θΏ°ι€‰ζ‹©" - -msgid "SelectNeighboursOnTable.name" -msgstr "εœ¨θ‘¨ζ Όι€‰ζ‹©δΈ΄θΏ‘θŠ‚η‚Ή" - -msgid "SelectEdgesOnTable.name" -msgstr "ι€‰ζ‹©η›Έε…³ηš„θΎΉ" - -msgid "DeleteNodes.name.single" -msgstr "εˆ ι™€" - -msgid "DeleteNodes.name.multiple" -msgstr "ε…¨ιƒ¨εˆ ι™€" - -msgid "DeleteNodes.confirmation.message" -msgstr "η‘εšεˆ ι™€θŠ‚η‚ΉοΌŸ" - -msgid "ClearNodesData.name.single" -msgstr "εˆ ι™€β€¦β€¦" - -msgid "ClearNodesData.name.multiple" -msgstr "εˆ ι™€ζ‰€ζœ‰β€¦β€¦" - -msgid "ClearNodesData.description" -msgstr "εˆ ι™€ι€‰ζ‹©θŠ‚η‚Ήηš„ζ•°ζ" - -msgid "ClearNodesData.ui.description" -msgstr "εˆ ι™€εˆ—" - -msgid "CopyNodeDataToOtherNodes.name" -msgstr "覆盖数ζεˆ°ε…Άεƒι€‰ζ‹©ηš„θŠ‚η‚Ήβ€¦β€¦" - -msgid "CopyNodeDataToOtherNodes.description" -msgstr "ε€εˆΆι€‰ζ‹©ηš„θŠ‚η‚Ήεˆ—εˆ°ι€‰ζ‹©ηš„ε…ΆεƒθŠ‚η‚Ήγ€‚" - -msgid "CopyNodeDataToOtherNodes.ui.rowDescription" -msgstr "ε€εˆΆθŠ‚η‚ΉοΌš" - -msgid "CopyNodeDataToOtherNodes.ui.columnsDescription" -msgstr "θ¦†η›–εˆ—οΌš" - -msgid "Group.name" -msgstr "η»„" - -msgid "Ungroup.name.single" -msgstr "ε–ζΆˆη»„" - -msgid "Ungroup.name.multiple" -msgstr "ε–ζΆˆι€‰ζ‹©ηš„η»„" - -msgid "UngroupRecursively.name.single" -msgstr "ι€’ε½’ηš„ε–ζΆˆη»„ηΎ€" - -msgid "UngroupRecursively.name.multiple" -msgstr "ι€’ε½’ε–ζΆˆζ‰€ι€‰ηš„η»„" - -msgid "UngroupRecursively.description" -msgstr "ε–ζΆˆζ‰€ι€‰ηš„η»„ε’Œε­jiedian" - -msgid "MoveNodeToGroup.name.single" -msgstr "η§»εŠ¨εˆ°η»„" - -msgid "MoveNodeToGroup.name.multiple" -msgstr "ε…¨ιƒ¨η§»εŠ¨εˆ°η»„" - -msgid "RemoveNodeFromGroup.name.single" -msgstr "δ»Žη»„ι‡Œη§»ι™€" - -msgid "RemoveNodeFromGroup.name.multiple" -msgstr "δ»Žη»„ι‡Œε…¨ιƒ¨η§»ι™€" - -msgid "Settle.name.single" -msgstr "η‘εš" - -msgid "Settle.name.multiple" -msgstr "全部η‘εš" - -msgid "Free.name.single" -msgstr "ι‡Šζ”Ύ" - -msgid "Free.name.multiple" -msgstr "ε…¨ιƒ¨ι‡Šζ”Ύ" - -msgid "SetNodesSize.name.single" -msgstr "θΎεšθŠ‚η‚Ήε€§ε°" - -msgid "SetNodesSize.name.multiple" -msgstr "θΎεšζ‰€ζœ‰θŠ‚η‚Ήε€§ε°" - -msgid "MergeNodes.name" -msgstr "εˆεΉΆθŠ‚η‚Ή" - -msgid "MergeNodes.description" -msgstr "ζ‰€ζœ‰θŠ‚η‚Ήθ’«εˆεΉΆδΈΊδΈ€δΈͺζ–°ηš„θŠ‚η‚ΉοΌŒη”¨δΈεŒηš„ζ–Ήζ³•εˆεΉΆθΎΉε’Œζ•°ε€Όγ€‚" - -msgid "LinkNodes.name" -msgstr "连ζŽ₯εˆ°θŠ‚η‚Ήβ€¦β€¦" - -msgid "LinkNodes.description" -msgstr "εˆ›ε»ΊθŠ‚η‚Ήε’Œζ‰€ζœ‰ι€‰ζ‹©θŠ‚η‚Ήι—΄ηš„θΎΉοΌˆζœ‰ε‘ηš„ζˆ–θ€…ζ— ε‘ηš„οΌ‰" - -msgid "CopyNodes.name.single" -msgstr "倍刢" - -msgid "CopyNodes.name.multiple" -msgstr "ε…¨ιƒ¨ε€εˆΆ" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/application-block.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/application-block.png deleted file mode 100644 index b69761479d..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/application-block.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/balance.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/balance.png deleted file mode 100644 index e213cd5b4a..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/balance.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/binocular--arrow.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/binocular--arrow.png deleted file mode 100644 index 28d9db5b04..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/binocular--arrow.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/binocular--pencil.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/binocular--pencil.png deleted file mode 100644 index a27a20e882..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/binocular--pencil.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/broom--arrow.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/broom--arrow.png deleted file mode 100644 index 5b4c962123..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/broom--arrow.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/broom.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/broom.png deleted file mode 100644 index 2c6152ef62..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/broom.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/category.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/category.png deleted file mode 100644 index 1a3f6a24ae..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/category.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/chart-up.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/chart-up.png deleted file mode 100644 index f02e909558..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/chart-up.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/chart.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/chart.png deleted file mode 100644 index d3cb71d5c5..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/chart.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/clear-data.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/clear-data.png deleted file mode 100644 index b72f940ae3..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/clear-data.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/clock-select.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/clock-select.png deleted file mode 100644 index 8c567916c8..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/clock-select.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/cross.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/cross.png deleted file mode 100644 index 6b9fa6dd36..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/cross.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/duplicate.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/duplicate.png deleted file mode 100644 index 88f1a2bbf1..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/duplicate.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/edge.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/edge.png deleted file mode 100644 index bdf68ec038..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/edge.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/edit.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/edit.png deleted file mode 100644 index 2c02169358..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/edit.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/eraser--minus.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/eraser--minus.png deleted file mode 100644 index 7107473847..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/eraser--minus.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/free.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/free.png deleted file mode 100644 index a9994ae1f6..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/free.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/frequency-list.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/frequency-list.png deleted file mode 100644 index daf0bbf0d0..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/frequency-list.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/gear.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/gear.png deleted file mode 100644 index efc599dccd..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/gear.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/group.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/group.png deleted file mode 100644 index f18a8e3edc..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/group.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/information.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/information.png deleted file mode 100644 index fa9a60b5ad..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/information.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/join.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/join.png deleted file mode 100644 index 698001b915..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/join.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/magnifier--arrow.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/magnifier--arrow.png deleted file mode 100644 index 2df6c5194e..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/magnifier--arrow.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/merge.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/merge.png deleted file mode 100644 index 698001b915..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/merge.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/minus-white.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/minus-white.png deleted file mode 100644 index 8efd5d331f..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/minus-white.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/plus-circle.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/plus-circle.png deleted file mode 100644 index 113873963c..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/plus-circle.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/plus-white.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/plus-white.png deleted file mode 100644 index c765946e03..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/plus-white.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/script-binary.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/script-binary.png deleted file mode 100644 index de79d7b471..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/script-binary.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/settle.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/settle.png deleted file mode 100644 index 3d6f96d423..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/settle.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/size.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/size.png deleted file mode 100644 index f763a16880..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/size.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/statistics.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/statistics.png deleted file mode 100644 index 96bb23aa68..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/statistics.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/table-delete-column.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/table-delete-column.png deleted file mode 100644 index a3fa27ceed..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/table-delete-column.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/table-duplicate-column.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/table-duplicate-column.png deleted file mode 100644 index 60855d4937..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/table-duplicate-column.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/table-excel.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/table-excel.png deleted file mode 100644 index 2111370eb6..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/table-excel.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/table-insert-column.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/table-insert-column.png deleted file mode 100644 index 86649bf1d1..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/table-insert-column.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/table-select-row.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/table-select-row.png deleted file mode 100644 index e96313c208..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/table-select-row.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/table-select.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/table-select.png deleted file mode 100644 index ab082a7641..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/table-select.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/ui-check-boxes.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/ui-check-boxes.png deleted file mode 100644 index 05eed23dfb..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/ui-check-boxes.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/ui-slider-050.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/ui-slider-050.png deleted file mode 100644 index b012f5ce80..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/ui-slider-050.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/ungroup.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/ungroup.png deleted file mode 100644 index b22b6285fe..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/ungroup.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/wooden-box.png b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/wooden-box.png deleted file mode 100644 index f64d761057..0000000000 Binary files a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/resources/wooden-box.png and /dev/null differ diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle.properties index 87b3e2a3d8..b3822e9e65 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle.properties @@ -10,8 +10,8 @@ FirstQuartileNumber.name=Calculate first quartile (Q1) FirstQuartileNumber.description=Calculates the first quartile (Q1) MedianNumber.name=Calculate median value MedianNumber.description=Calculates the median -ThirdQuartileNumber.name=Calculate first quartile (Q3) -ThirdQuartileNumber.description=Calculates the first quartile (Q3) +ThirdQuartileNumber.name=Calculate third quartile (Q3) +ThirdQuartileNumber.description=Calculates the third quartile (Q3) InterQuartileRangeNumber.name=Calculate interquartile range (IQR) InterQuartileRangeNumber.description=Calculates the interquartile range (IQR) SumNumbers.name=Calculate sum diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_ar.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_ar.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_ar.properties @@ -0,0 +1 @@ + diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_ca.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_ca.properties new file mode 100644 index 0000000000..b6266356c1 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_ca.properties @@ -0,0 +1,21 @@ +KeepSelectedRowValue.name=Keep main selected row value +KeepSelectedRowValue.description=Simply uses the value of the main selected row +JoinWithSeparator.name=Join values with a separator +JoinWithSeparator.description=Join values of a String or list column with a separator +SetNull.name=Set null +AverageNumber.name=Calculate average value +AverageNumber.description=Calculates the average value +FirstQuartileNumber.name=Calculate first quartile (Q1) +FirstQuartileNumber.description=Calculates the first quartile (Q1) +MedianNumber.name=Calcula el valor de la mediana +MedianNumber.description=Calcula la mediana +ThirdQuartileNumber.name=Calculate third quartile (Q3) +ThirdQuartileNumber.description=Calculates the third quartile (Q3) +InterQuartileRangeNumber.name=Calculate interquartile range (IQR) +InterQuartileRangeNumber.description=Calculates the interquartile range (IQR) +SumNumbers.name=Calculate sum +SumNumbers.description=Calculates the sum +MinimumNumber.name=Calcula el valor mνnim +MinimumNumber.description=Calcula el valor mνnim +MaximumNumber.name=Calcula el valor mΰxim +MaximumNumber.description=Calcula el valor mΰxim diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_cs.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_cs.properties index 64b1f88516..c00e4a9ba2 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_cs.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_cs.properties @@ -1,49 +1,22 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Zbyn\u011bk Schwarz , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-02-27 14\:12+0000\nLast-Translator\: Zbyn\u011bk Schwarz \nLanguage-Team\: Czech (http\://www.transifex.com/projects/p/gephi/language/cs/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: cs\nPlural-Forms\: nplurals\=3; plural\=(n\=\=1) ? 0 \: (n>\=2 && n<\=4) ? 1 \: 2;\n - -KeepSelectedRowValue.name=Ponechat hodnotu hlavn\u00edho zvolen\u00e9ho \u0159\u00e1dku - -KeepSelectedRowValue.description=Jendodu\u0161e pou\u017eije hodnotu hlavn\u00edho zvolen\u00e9ho \u0159\u00e1dku - -JoinWithSeparator.name=P\u0159ipojit hodnoty pomoc\u00ed odd\u011blova\u010de - -JoinWithSeparator.description=P\u0159ipojit hodnoty \u0159et\u011bzce nebo sloupce seznamu pomoc\u00ed odd\u011blova\u010de - -SetNull.name=Nastavit pr\u00e1zdn\u00e9 - -AverageNumber.name=Vypo\u010d\u00edtat pr\u016fm\u011brnou hodnotu - -AverageNumber.description=Vypo\u010d\u00edt\u00e1 pr\u016fmernou hodnotu - -FirstQuartileNumber.name=Vypo\u010d\u00edtat prvn\u00ed kvartil (Q1) - -FirstQuartileNumber.description=Vypo\u010d\u00edt\u00e1 prvn\u00ed kvartil (Q1) - -MedianNumber.name=Vypo\u010d\u00edt\u00e1 hodnotu medi\u00e1nu - -MedianNumber.description=Vypo\u010d\u00edtat medi\u00e1n - -ThirdQuartileNumber.name=Vypo\u010d\u00edtat prvn\u00ed kvartil (Q3) - -ThirdQuartileNumber.description=Vypo\u010d\u00edt\u00e1 prvn\u00ed kvartil (Q3) - -InterQuartileRangeNumber.name=Vypo\u010d\u00edtat mezikvartiln\u00ed rozsah (IQR) - -InterQuartileRangeNumber.description=Vypo\u010d\u00edt\u00e1 mezikvartiln\u00ed rozsah (IQR) - -SumNumbers.name=Vypo\u010d\u00edtat sou\u010det - -SumNumbers.description=Vypo\u010d\u00edt\u00e1 sou\u010det - -MinimumNumber.name=Vypo\u010d\u00edtat minim\u00e1ln\u00ed hodnotu - -MinimumNumber.description=Vypo\u010d\u00edt\u00e1 minim\u00e1ln\u00ed hodnotu - -MaximumNumber.name=Vypo\u010d\u00edtat maxim\u00e1ln\u00ed hodnotu - -MaximumNumber.description=Vypo\u010d\u00edt\u00e1 maxim\u00e1ln\u00ed hodnotu +KeepSelectedRowValue.name=Ponechat hodnotu hlavnνho zvolenιho \u0159αdku +KeepSelectedRowValue.description=Jendodu\u0161e pou\u017eije hodnotu hlavnνho zvolenιho \u0159αdku +JoinWithSeparator.name=P\u0159ipojit hodnoty pomocν odd\u011blova\u010de +JoinWithSeparator.description=P\u0159ipojit hodnoty \u0159et\u011bzce nebo sloupce seznamu pomocν odd\u011blova\u010de +SetNull.name=Nastavit prαzdnι + +AverageNumber.name=Vypo\u010dνtat pr\u016fm\u011brnou hodnotu +AverageNumber.description=Vypo\u010dνtα pr\u016fmernou hodnotu +FirstQuartileNumber.name=Vypo\u010dνtat prvnν kvartil (Q1) +FirstQuartileNumber.description=Vypo\u010dνtα prvnν kvartil (Q1) +MedianNumber.name=Vypo\u010dνtα hodnotu mediαnu +MedianNumber.description=Vypo\u010dνtat mediαn +# ThirdQuartileNumber.name=Calculate third quartile (Q3) +# ThirdQuartileNumber.description=Calculates the third quartile (Q3) +InterQuartileRangeNumber.name=Vypo\u010dνtat mezikvartilnν rozsah (IQR) +InterQuartileRangeNumber.description=Vypo\u010dνtα mezikvartilnν rozsah (IQR) +SumNumbers.name=Vypo\u010dνtat sou\u010det +SumNumbers.description=Vypo\u010dνtα sou\u010det +MinimumNumber.name=Vypo\u010dνtat minimαlnν hodnotu +MinimumNumber.description=Vypo\u010dνtα minimαlnν hodnotu +MaximumNumber.name=Vypo\u010dνtat maximαlnν hodnotu +MaximumNumber.description=Vypo\u010dνtα maximαlnν hodnotu diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_de.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_de.properties new file mode 100644 index 0000000000..ee82d2425e --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_de.properties @@ -0,0 +1,22 @@ +KeepSelectedRowValue.name=Primδr ausgewδhlten Zeilenwert beibehalten +KeepSelectedRowValue.description=Verwendet den primδr ausgewδhlten Zeilenwert +JoinWithSeparator.name=Werte mit einem Trenner zusammenfόgen +JoinWithSeparator.description=Fόge Werte einer String oder Listen-Spalte mit Trenner zusammen +SetNull.name=Auf Wert 'null' setzen + +AverageNumber.name=Durschnittswert berechnen +AverageNumber.description=Berechnet den Durchschnittswert +FirstQuartileNumber.name=Erstes Quartil (Q1) berechnen +FirstQuartileNumber.description=Berechnet das erste Quartil (Q1) +MedianNumber.name=Median-Wert berechnen +MedianNumber.description=Berechnet den Median-Wert +ThirdQuartileNumber.name=Drittes Quartil (Q3) berechnen +ThirdQuartileNumber.description=Berechnet das dritte Quartil (Q3) +InterQuartileRangeNumber.name=Interquartilsabstand (IQR) berechnen +InterQuartileRangeNumber.description=Berechnet den Interquartilsabstand (IQR) +SumNumbers.name=Summe berechnen +SumNumbers.description=Berechnet die Summe +MinimumNumber.name=Minimal-Wert berechnen +MinimumNumber.description=Berechnet den Minimal-Wert +MaximumNumber.name=Maximal-Wert berechnen +MaximumNumber.description=Berechnet den Maximal-Wert diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_es.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_es.properties index f00cb248ad..be5ceeb6fe 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_es.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_es.properties @@ -1,50 +1,21 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Eduardo Ramos , 2011. -# , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-07 22\:09+0000\nLast-Translator\: Eduardo Ramos \nLanguage-Team\: Spanish (http\://www.transifex.com/projects/p/gephi/language/es/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: es\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n - KeepSelectedRowValue.name=Mantener valor de la fila principal seleccionada - KeepSelectedRowValue.description=Simplemente utiliza el valor de la fila principal seleccionada - JoinWithSeparator.name=Unir valores con separador - JoinWithSeparator.description=Une los valores de una columna de tipo String o lista con un separador - SetNull.name=Utilizar valor nulo - AverageNumber.name=Calcular valor medio - -AverageNumber.description=Calcula el valor medio - +AverageNumber.description=Calcula el promedio FirstQuartileNumber.name=Calcular primer cuartil (Q1) - FirstQuartileNumber.description=Calcula el primer cuartil (Q1) - MedianNumber.name=Calcular mediana - MedianNumber.description=Calcula la mediana - ThirdQuartileNumber.name=Calcular tercer cuartil (Q3) - ThirdQuartileNumber.description=Calcula el tercer cuartil (Q3) - -InterQuartileRangeNumber.name=Calcular rango intercuart\u00edlico (IQR) - -InterQuartileRangeNumber.description=Calcula el rango intercuart\u00edlico (IQR) - +InterQuartileRangeNumber.name=Calcular rango intercuartνlico (IQR) +InterQuartileRangeNumber.description=Calcula el rango intercuart\u00EDlico (IQR) SumNumbers.name=Calcular suma - SumNumbers.description=Calcula la suma - -MinimumNumber.name=Calcular valor m\u00ednimo - -MinimumNumber.description=Calcula el valor m\u00ednimo - -MaximumNumber.name=Calcular valor m\u00e1ximo - -MaximumNumber.description=Calcula el valor m\u00e1ximo +MinimumNumber.name=Calcula el valor m\u00EDnimo +MinimumNumber.description=Calcula el valor mνnimo +MaximumNumber.name=Calcular valor mαximo +MaximumNumber.description=Calcula el valor mαximo diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_fr.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_fr.properties index 502bb76362..85f6aee559 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_fr.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_fr.properties @@ -1,49 +1,21 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-07 11\:48+0000\nLast-Translator\: gephi \nLanguage-Team\: French (http\://www.transifex.com/projects/p/gephi/language/fr/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fr\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -KeepSelectedRowValue.name=Garder la valeur de la ligne principale s\u00e9lectionn\u00e9e - -KeepSelectedRowValue.description=R\u00e9utiliser la valeur de la ligne principale s\u00e9lectionn\u00e9e - -JoinWithSeparator.name=Joindre les valeurs avec un s\u00e9parateur - -JoinWithSeparator.description=Joindre les valeurs d'une liste/colonne de cha\u00eenes de caract\u00e8res avec un s\u00e9parateur - +KeepSelectedRowValue.name=Garder la valeur de la ligne principale sιlectionnιe +KeepSelectedRowValue.description=Rιutiliser la valeur de la ligne principale sιlectionnιe +JoinWithSeparator.name=Joindre les valeurs avec un sιparateur +JoinWithSeparator.description=Joindre les valeurs d'une liste/colonne de chaξnes de caractθres avec un sιparateur SetNull.name=Rendre nul - -AverageNumber.name=Calculer la moyenne - -AverageNumber.description=Calculer la moyenne - +AverageNumber.name=Calculer la valeur moyenne +AverageNumber.description=Calculer la valeur moyenne FirstQuartileNumber.name=Calculer le premier quartile (Q1) - FirstQuartileNumber.description=Calculer le premier quartile (Q1) - -MedianNumber.name=Calculer la m\u00e9diane - -MedianNumber.description=Calculer la m\u00e9diane - -ThirdQuartileNumber.name=Calculer le troisi\u00e8me quartile (Q3) - -ThirdQuartileNumber.description=Calculer le troisi\u00e8me quartile (Q3) - -InterQuartileRangeNumber.name=Calculer l'\u00e9cart interquartile (EI) - -InterQuartileRangeNumber.description=Calculer l'\u00e9cart interquartile (EI) - +MedianNumber.name=Calculer la valeur m\u00E9diane +MedianNumber.description=Calculer la mιdiane +ThirdQuartileNumber.name=Calcule le troisiθme quartile (Q3) +ThirdQuartileNumber.description=Calculer le troisiθme quartile (Q3) +InterQuartileRangeNumber.name=Calculer l'\u00E9cart interquartile (EI) +InterQuartileRangeNumber.description=Calculer l'ιcart interquartile (EI) SumNumbers.name=Calculer la somme - SumNumbers.description=Calculer la somme - -MinimumNumber.name=Calculer le minimum - -MinimumNumber.description=Calculer le minimum - -MaximumNumber.name=Calculer le maximum - -MaximumNumber.description=Calculer le maximum +MinimumNumber.name=Calculer la valeur minimum +MinimumNumber.description=Calculer la valeur minimum +MaximumNumber.name=Calculer la valeur maximum +MaximumNumber.description=Calculer la valeur maximum diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_he.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_he.properties new file mode 100644 index 0000000000..ea6042f408 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_he.properties @@ -0,0 +1,21 @@ +KeepSelectedRowValue.name=Keep main selected row value +KeepSelectedRowValue.description=Simply uses the value of the main selected row +JoinWithSeparator.name=Join values with a separator +JoinWithSeparator.description=Join values of a String or list column with a separator +SetNull.name=Set null +AverageNumber.name=Calculate average value +AverageNumber.description=Calculates the average value +FirstQuartileNumber.name=Calculate first quartile (Q1) +FirstQuartileNumber.description=Calculates the first quartile (Q1) +MedianNumber.name=Calculate median value +MedianNumber.description=Calculates the median +ThirdQuartileNumber.name=Calculate third quartile (Q3) +ThirdQuartileNumber.description=Calculates the third quartile (Q3) +InterQuartileRangeNumber.name=Calculate interquartile range (IQR) +InterQuartileRangeNumber.description=Calculates the interquartile range (IQR) +SumNumbers.name=Calculate sum +SumNumbers.description=Calculates the sum +MinimumNumber.name=Calculate minimum value +MinimumNumber.description=Calculates the minimum value +MaximumNumber.name=Calculate maximum value +MaximumNumber.description=Calculates the maximum value diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_hu.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_hu.properties new file mode 100644 index 0000000000..2693657115 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_hu.properties @@ -0,0 +1,23 @@ + + +InterQuartileRangeNumber.name=Interkvartilis tartom\u00E1ny (IQR) kisz\u00E1m\u00EDt\u00E1sa +AverageNumber.description=Kisz\u00E1m\u00EDtja az \u00E1tlag\u00E9rt\u00E9ket +MaximumNumber.name=Sz\u00E1m\u00EDtsa ki a maxim\u00E1lis \u00E9rt\u00E9ket +FirstQuartileNumber.name=Az els\u0151 kvartilis kisz\u00E1m\u00EDt\u00E1sa (Q1) +InterQuartileRangeNumber.description=Kisz\u00E1m\u00EDtja az interkvartilis tartom\u00E1nyt (IQR) +MaximumNumber.description=Kisz\u00E1m\u00EDtja a maxim\u00E1lis \u00E9rt\u00E9ket +ThirdQuartileNumber.description=Kisz\u00E1m\u00EDtja a harmadik kvartilist (Q3) +MedianNumber.name=Sz\u00E1m\u00EDtsa ki a medi\u00E1n \u00E9rt\u00E9ket +MinimumNumber.name=Sz\u00E1m\u00EDtsa ki a minim\u00E1lis \u00E9rt\u00E9ket +MinimumNumber.description=Kisz\u00E1m\u00EDtja a minim\u00E1lis \u00E9rt\u00E9ket +AverageNumber.name=Sz\u00E1m\u00EDtsa ki az \u00E1tlag\u00E9rt\u00E9ket +SumNumbers.description=Kisz\u00E1molja az \u00F6sszeget +KeepSelectedRowValue.description=Egyszer\u0171en a kiv\u00E1lasztott f\u0151 sor \u00E9rt\u00E9k\u00E9t haszn\u00E1lja +SetNull.name=\u00C1ll\u00EDtsa null\u00E1ra +KeepSelectedRowValue.name=Gephi harmadik felek be\u00E9p\u00FCl\u0151 moduljai +MedianNumber.description=Kisz\u00E1m\u00EDtja a medi\u00E1nt +JoinWithSeparator.name=K\u00F6sd \u00F6ssze az \u00E9rt\u00E9keket elv\u00E1laszt\u00F3val +SumNumbers.name=Sz\u00E1m\u00EDtsa ki az \u00F6sszeget +JoinWithSeparator.description=Egy karakterl\u00E1nc vagy listaoszlop \u00E9rt\u00E9keit elv\u00E1laszt\u00F3val egyes\u00EDtse +FirstQuartileNumber.description=Kisz\u00E1m\u00EDtja az els\u0151 kvartilist (Q1) +ThirdQuartileNumber.name=Harmadik kvartilis kisz\u00E1m\u00EDt\u00E1sa (Q3) diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_it.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_it.properties new file mode 100644 index 0000000000..ea6042f408 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_it.properties @@ -0,0 +1,21 @@ +KeepSelectedRowValue.name=Keep main selected row value +KeepSelectedRowValue.description=Simply uses the value of the main selected row +JoinWithSeparator.name=Join values with a separator +JoinWithSeparator.description=Join values of a String or list column with a separator +SetNull.name=Set null +AverageNumber.name=Calculate average value +AverageNumber.description=Calculates the average value +FirstQuartileNumber.name=Calculate first quartile (Q1) +FirstQuartileNumber.description=Calculates the first quartile (Q1) +MedianNumber.name=Calculate median value +MedianNumber.description=Calculates the median +ThirdQuartileNumber.name=Calculate third quartile (Q3) +ThirdQuartileNumber.description=Calculates the third quartile (Q3) +InterQuartileRangeNumber.name=Calculate interquartile range (IQR) +InterQuartileRangeNumber.description=Calculates the interquartile range (IQR) +SumNumbers.name=Calculate sum +SumNumbers.description=Calculates the sum +MinimumNumber.name=Calculate minimum value +MinimumNumber.description=Calculates the minimum value +MaximumNumber.name=Calculate maximum value +MaximumNumber.description=Calculates the maximum value diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_ja.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_ja.properties index 65a2f58b61..9e9f6a9ad6 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_ja.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_ja.properties @@ -1,49 +1,22 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-09-01 17\:04+0000\nLast-Translator\: Siro Kida \nLanguage-Team\: Japanese (http\://www.transifex.com/projects/p/gephi/language/ja/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ja\nPlural-Forms\: nplurals\=1; plural\=0;\n - -KeepSelectedRowValue.name=\u4e3b\u306a\u9078\u629e\u3055\u308c\u305f\u884c\u306e\u5024\u3092\u4fdd\u6301 - -KeepSelectedRowValue.description=\u5358\u7d14\u306b\u30e1\u30a4\u30f3\u9078\u629e\u3055\u308c\u305f\u884c\u306e\u5024\u3092\u4f7f\u7528\u3057\u307e\u3059 - -JoinWithSeparator.name=\u533a\u5207\u308a\u6587\u5b57\u3067\u5024\u3092\u7d50\u5408 - -JoinWithSeparator.description=\u533a\u5207\u308a\u6587\u5b57\u3067\u6587\u5b57\u5217\u307e\u305f\u306f\u30ea\u30b9\u30c8\u306e\u5217\u306e\u5024\u3092\u7d50\u5408 - -SetNull.name=null\u3092\u8a2d\u5b9a - -AverageNumber.name=\u5e73\u5747\u5024\u306e\u8a08\u7b97 - -AverageNumber.description=\u5e73\u5747\u5024\u306e\u8a08\u7b97 - -FirstQuartileNumber.name=\u7b2c\u4e00\u56db\u5206\u4f4d\u5024\u306e\u8a08\u7b97 (Q1)\u306e\u8a08\u7b97 - -FirstQuartileNumber.description=\u7b2c\u4e00\u56db\u5206\u4f4d\u5024\u306e\u8a08\u7b97 (Q1)\u306e\u8a08\u7b97 - -MedianNumber.name=\u4e2d\u592e\u5024\u306e\u8a08\u7b97 - -MedianNumber.description=\u4e2d\u592e\u5024\u306e\u8a08\u7b97 - -ThirdQuartileNumber.name=\u7b2c\u4e09\u56db\u5206\u4f4d\u5024\u306e\u8a08\u7b97 (Q3)\u306e\u8a08\u7b97 - -ThirdQuartileNumber.description=\u7b2c\u4e09\u56db\u5206\u4f4d\u5024\u306e\u8a08\u7b97 (Q3)\u306e\u8a08\u7b97 - -InterQuartileRangeNumber.name=\u56db\u5206\u4f4d\u6570\u7bc4\u56f2 (IQR)\u306e\u8a08\u7b97 - -InterQuartileRangeNumber.description=\u56db\u5206\u4f4d\u6570\u7bc4\u56f2 (IQR)\u306e\u8a08\u7b97 - -SumNumbers.name=\u5408\u8a08\u306e\u8a08\u7b97 - -SumNumbers.description=\u5408\u8a08\u306e\u8a08\u7b97 - -MinimumNumber.name=\u6700\u5c0f\u5024\u306e\u8a08\u7b97 - -MinimumNumber.description=\u6700\u5c0f\u5024\u306e\u8a08\u7b97 - -MaximumNumber.name=\u6700\u5927\u5024\u306e\u8a08\u7b97 - -MaximumNumber.description=\u6700\u5927\u5024\u306e\u8a08\u7b97 +KeepSelectedRowValue.name=\u4e3b\u306a\u9078\u629e\u3055\u308c\u305f\u884c\u306e\u5024\u3092\u4fdd\u6301 +KeepSelectedRowValue.description=\u5358\u7d14\u306b\u30e1\u30a4\u30f3\u9078\u629e\u3055\u308c\u305f\u884c\u306e\u5024\u3092\u4f7f\u7528\u3057\u307e\u3059 +JoinWithSeparator.name=\u533a\u5207\u308a\u6587\u5b57\u3067\u5024\u3092\u7d50\u5408 +JoinWithSeparator.description=\u533a\u5207\u308a\u6587\u5b57\u3067\u6587\u5b57\u5217\u307e\u305f\u306f\u30ea\u30b9\u30c8\u306e\u5217\u306e\u5024\u3092\u7d50\u5408 +SetNull.name=null\u3092\u8a2d\u5b9a + +AverageNumber.name=\u5e73\u5747\u5024\u306e\u8a08\u7b97 +AverageNumber.description=\u5e73\u5747\u5024\u306e\u8a08\u7b97 +FirstQuartileNumber.name=\u7b2c\u4e00\u56db\u5206\u4f4d\u5024\u306e\u8a08\u7b97 (Q1)\u306e\u8a08\u7b97 +FirstQuartileNumber.description=\u7b2c\u4e00\u56db\u5206\u4f4d\u5024\u306e\u8a08\u7b97 (Q1)\u306e\u8a08\u7b97 +MedianNumber.name=\u4e2d\u592e\u5024\u306e\u8a08\u7b97 +MedianNumber.description=\u4e2d\u592e\u5024\u306e\u8a08\u7b97 +# ThirdQuartileNumber.name=Calculate third quartile (Q3) +# ThirdQuartileNumber.description=Calculates the third quartile (Q3) +InterQuartileRangeNumber.name=\u56db\u5206\u4f4d\u6570\u7bc4\u56f2 (IQR)\u306e\u8a08\u7b97 +InterQuartileRangeNumber.description=\u56db\u5206\u4f4d\u6570\u7bc4\u56f2 (IQR)\u306e\u8a08\u7b97 +SumNumbers.name=\u5408\u8a08\u306e\u8a08\u7b97 +SumNumbers.description=\u5408\u8a08\u306e\u8a08\u7b97 +MinimumNumber.name=\u6700\u5c0f\u5024\u306e\u8a08\u7b97 +MinimumNumber.description=\u6700\u5c0f\u5024\u306e\u8a08\u7b97 +MaximumNumber.name=\u6700\u5927\u5024\u306e\u8a08\u7b97 +MaximumNumber.description=\u6700\u5927\u5024\u306e\u8a08\u7b97 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_nl.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_nl.properties new file mode 100644 index 0000000000..ea6042f408 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_nl.properties @@ -0,0 +1,21 @@ +KeepSelectedRowValue.name=Keep main selected row value +KeepSelectedRowValue.description=Simply uses the value of the main selected row +JoinWithSeparator.name=Join values with a separator +JoinWithSeparator.description=Join values of a String or list column with a separator +SetNull.name=Set null +AverageNumber.name=Calculate average value +AverageNumber.description=Calculates the average value +FirstQuartileNumber.name=Calculate first quartile (Q1) +FirstQuartileNumber.description=Calculates the first quartile (Q1) +MedianNumber.name=Calculate median value +MedianNumber.description=Calculates the median +ThirdQuartileNumber.name=Calculate third quartile (Q3) +ThirdQuartileNumber.description=Calculates the third quartile (Q3) +InterQuartileRangeNumber.name=Calculate interquartile range (IQR) +InterQuartileRangeNumber.description=Calculates the interquartile range (IQR) +SumNumbers.name=Calculate sum +SumNumbers.description=Calculates the sum +MinimumNumber.name=Calculate minimum value +MinimumNumber.description=Calculates the minimum value +MaximumNumber.name=Calculate maximum value +MaximumNumber.description=Calculates the maximum value diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_pl.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_pl.properties new file mode 100644 index 0000000000..6c61c666e8 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_pl.properties @@ -0,0 +1,20 @@ + + +MedianNumber.description=Oblicza median\u0119 +JoinWithSeparator.name=Po\u0142\u0105cz zmienne separatorem +SetNull.name=Ustaw jako null +AverageNumber.name=Oblicz warto\u015B\u0107 \u015Bredni\u0105 +AverageNumber.description=Oblicza \u015Bredni\u0105 +FirstQuartileNumber.name=Oblicz pierwszy kwartyl (Q1) +FirstQuartileNumber.description=Oblicza pierwszy kwartyl (Q1) +MedianNumber.name=Oblicz median\u0119 +ThirdQuartileNumber.name=Oblicz trzeci kwartyl (Q3) +ThirdQuartileNumber.description=Oblicza trzeci kwartyl (Q +InterQuartileRangeNumber.name=Oblicz rozst\u0119p mi\u0119dzykwartylowy (IQR) +InterQuartileRangeNumber.description=Oblicza rozst\u0119p mi\u0119dzykwartylowy (IQR) +SumNumbers.name=Oblicz sum\u0119 +SumNumbers.description=Oblicza sum\u0119 +MinimumNumber.name=Oblicz warto\u015B\u0107 minimaln\u0105 +MinimumNumber.description=Oblicza warto\u015B\u0107 minimaln\u0105 +MaximumNumber.name=Oblicz warto\u015B\u0107 maksymaln\u0105 +MaximumNumber.description=Oblicza warto\u015B\u0107 maksymaln\u0105 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_pt_BR.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_pt_BR.properties index 1da49db4e5..534c53468a 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_pt_BR.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_pt_BR.properties @@ -1,49 +1,22 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# C\u00e9lio CJr , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 01\:16+0000\nLast-Translator\: C\u00e9lio Faria Jr. \nLanguage-Team\: Portuguese (Brazil) (http\://www.transifex.com/projects/p/gephi/language/pt_BR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt_BR\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -KeepSelectedRowValue.name=Manter valor da linha principal selecionada - -KeepSelectedRowValue.description=Simplesmente usar o valor da linha principal selecionada - -JoinWithSeparator.name=Juntar valores com um separador - -JoinWithSeparator.description=Juntar valores de uma coluna texto ou lista com um separador - -SetNull.name=Utilizar valor nulo - -AverageNumber.name=Calcular valor m\u00e9dio - -AverageNumber.description=Calcula o valor m\u00e9dio - -FirstQuartileNumber.name=Calcular primeiro quartil (Q1) - -FirstQuartileNumber.description=Calcula o primeiro quartil (Q1) - -MedianNumber.name=Calcular mediana - -MedianNumber.description=Calcula a mediana - -ThirdQuartileNumber.name=Calcular primeiro quartil (Q3) - -ThirdQuartileNumber.description=Calcula o primeiro quartil (Q3) - -InterQuartileRangeNumber.name=Calcular intervalo interquartil (IQR) - -InterQuartileRangeNumber.description=Calcula o intervalo interquartil (IQR) - -SumNumbers.name=Calcular soma - -SumNumbers.description=Calcula a soma - -MinimumNumber.name=Calcular valor m\u00ednimo - -MinimumNumber.description=Calcula o valor m\u00ednimo - -MaximumNumber.name=Calcular valor m\u00e1ximo - -MaximumNumber.description=Calcula o valor m\u00e1ximo +KeepSelectedRowValue.name=Manter valor da linha principal selecionada +KeepSelectedRowValue.description=Simplesmente usar o valor da linha principal selecionada +JoinWithSeparator.name=Juntar valores com um separador +JoinWithSeparator.description=Juntar valores de uma coluna texto ou lista com um separador +SetNull.name=Utilizar valor nulo + +AverageNumber.name=Calcular valor mιdio +AverageNumber.description=Calcula o valor mιdio +FirstQuartileNumber.name=Calcular primeiro quartil (Q1) +FirstQuartileNumber.description=Calcula o primeiro quartil (Q1) +MedianNumber.name=Calcular mediana +MedianNumber.description=Calcula a mediana +ThirdQuartileNumber.name=Calcular terceiro quartil (Q3) +ThirdQuartileNumber.description=Calcula o terceiro quartil (Q3) +InterQuartileRangeNumber.name=Calcular intervalo interquartil (IQR) +InterQuartileRangeNumber.description=Calcula o intervalo interquartil (IQR) +SumNumbers.name=Calcular soma +SumNumbers.description=Calcula a soma +MinimumNumber.name=Calcular valor mνnimo +MinimumNumber.description=Calcula o valor mνnimo +MaximumNumber.name=Calcular valor mαximo +MaximumNumber.description=Calcula o valor mαximo diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_ro.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_ro.properties new file mode 100644 index 0000000000..dc86963abf --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_ro.properties @@ -0,0 +1,23 @@ + + +SetNull.name=Seteaz\u0103 nul +MedianNumber.description=Calculeaz\u0103 mediana +SumNumbers.description=Calculeaz\u0103 suma +MinimumNumber.name=Calculeaz\u0103 valoarea minim\u0103 +JoinWithSeparator.description=Une\u0219te valorile unei coloane de tip \u0219ir de caractere sau list\u0103 cu un separator +KeepSelectedRowValue.name=P\u0103streaz\u0103 valoarea din linia principal\u0103 selectat\u0103 +KeepSelectedRowValue.description=Pur \u0219i simplu folose\u0219te valoarea de pe linia principal\u0103 selectat\u0103 +JoinWithSeparator.name=Une\u0219te valorile cu un separator +AverageNumber.description=Calculeaz\u0103 valoarea medie +AverageNumber.name=Calculeaz\u0103 valoarea medie +MedianNumber.name=Calculeaz\u0103 valoarea median\u0103 +FirstQuartileNumber.name=Calculeaz\u0103 prima cuartil\u0103 (Q1) +FirstQuartileNumber.description=Calculeaz\u0103 prima cuartil\u0103 (Q1) +ThirdQuartileNumber.name=Calculeaz\u0103 a treia cuartil\u0103 (Q3) +ThirdQuartileNumber.description=Calculeaz\u0103 a treia cuartil\u0103 (Q3) +InterQuartileRangeNumber.name=Calculeaz\u0103 intervalul dintre cuartile (IQR) +InterQuartileRangeNumber.description=Calculeaz\u0103 intervalul dintre cuartile (IQR) +SumNumbers.name=Calculeaz\u0103 suma +MinimumNumber.description=Calculeaz\u0103 valoarea minim\u0103 +MaximumNumber.name=Calculeaz\u0103 valoarea maxim\u0103 +MaximumNumber.description=Calculeaz\u0103 valoarea maxim\u0103 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_ru.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_ru.properties index e3881d6ce8..016172230d 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_ru.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_ru.properties @@ -1,49 +1,22 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-10-12 07\:57+0000\nLast-Translator\: Altsoph \nLanguage-Team\: Russian (http\://www.transifex.com/projects/p/gephi/language/ru/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ru\nPlural-Forms\: nplurals\=3; plural\=(n%10\=\=1 && n%100\!\=11 ? 0 \: n%10>\=2 && n%10<\=4 && (n%100<10 || n%100>\=20) ? 1 \: 2);\n - -KeepSelectedRowValue.name=\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0437 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 - -KeepSelectedRowValue.description=\u041f\u0440\u043e\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0437 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 - -JoinWithSeparator.name=\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c - -JoinWithSeparator.description=\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f - -SetNull.name=Null - -AverageNumber.name=\u041f\u043e\u0438\u0441\u043a \u0441\u0440\u0435\u0434\u043d\u0435\u0433\u043e - -AverageNumber.description=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 - -FirstQuartileNumber.name=\u0420\u0430\u0441\u0447\u0451\u0442 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u0432\u0430\u0440\u0442\u0438\u043b\u044f (Q1) - -FirstQuartileNumber.description=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u043a\u0432\u0430\u0440\u0442\u0438\u043b\u044c (Q1) - -MedianNumber.name=\u041f\u043e\u0438\u0441\u043a \u043c\u0435\u0434\u0438\u0430\u043d\u044b - -MedianNumber.description=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u043c\u0435\u0434\u0438\u0430\u043d\u0443 - -ThirdQuartileNumber.name=\u0420\u0430\u0441\u0447\u0451\u0442 \u0442\u0440\u0435\u0442\u044c\u0435\u0433\u043e \u043a\u0432\u0430\u0440\u0442\u0438\u043b\u044f (Q3) - -ThirdQuartileNumber.description=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0442\u0440\u0435\u0442\u0438\u0439 \u043a\u0432\u0430\u0440\u0442\u0438\u043b\u044c (Q3) - -InterQuartileRangeNumber.name=\u041f\u043e\u0438\u0441\u043a \u043c\u0435\u0436\u043a\u0432\u0430\u0440\u0442\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0430\u0445\u0430 (IQR) - -InterQuartileRangeNumber.description=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u043c\u0435\u0436\u043a\u0432\u0430\u0440\u0442\u0438\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0430\u0445 (IQR) - -SumNumbers.name=\u0421\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 - -SumNumbers.description=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0441\u0443\u043c\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 - -MinimumNumber.name=\u041f\u043e\u0438\u0441\u043a \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f - -MinimumNumber.description=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 - -MaximumNumber.name=\u041f\u043e\u0438\u0441\u043a \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f - -MaximumNumber.description=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 +KeepSelectedRowValue.name=\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0437 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 +KeepSelectedRowValue.description=\u041f\u0440\u043e\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0437 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 +JoinWithSeparator.name=\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c +JoinWithSeparator.description=\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f +SetNull.name=Null + +AverageNumber.name=\u041f\u043e\u0438\u0441\u043a \u0441\u0440\u0435\u0434\u043d\u0435\u0433\u043e +AverageNumber.description=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 +FirstQuartileNumber.name=\u0420\u0430\u0441\u0447\u0451\u0442 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u0432\u0430\u0440\u0442\u0438\u043b\u044f (Q1) +FirstQuartileNumber.description=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u043a\u0432\u0430\u0440\u0442\u0438\u043b\u044c (Q1) +MedianNumber.name=\u041f\u043e\u0438\u0441\u043a \u043c\u0435\u0434\u0438\u0430\u043d\u044b +MedianNumber.description=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u043c\u0435\u0434\u0438\u0430\u043d\u0443 +# ThirdQuartileNumber.name=Calculate third quartile (Q3) +# ThirdQuartileNumber.description=Calculates the third quartile (Q3) +InterQuartileRangeNumber.name=\u041f\u043e\u0438\u0441\u043a \u043c\u0435\u0436\u043a\u0432\u0430\u0440\u0442\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0430\u0445\u0430 (IQR) +InterQuartileRangeNumber.description=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u043c\u0435\u0436\u043a\u0432\u0430\u0440\u0442\u0438\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0430\u0445 (IQR) +SumNumbers.name=\u0421\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 +SumNumbers.description=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0441\u0443\u043c\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 +MinimumNumber.name=\u041f\u043e\u0438\u0441\u043a \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f +MinimumNumber.description=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 +MaximumNumber.name=\u041f\u043e\u0438\u0441\u043a \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f +MaximumNumber.description=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_th.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_th.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_th.properties @@ -0,0 +1 @@ + diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_tr.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_tr.properties new file mode 100644 index 0000000000..ea6042f408 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_tr.properties @@ -0,0 +1,21 @@ +KeepSelectedRowValue.name=Keep main selected row value +KeepSelectedRowValue.description=Simply uses the value of the main selected row +JoinWithSeparator.name=Join values with a separator +JoinWithSeparator.description=Join values of a String or list column with a separator +SetNull.name=Set null +AverageNumber.name=Calculate average value +AverageNumber.description=Calculates the average value +FirstQuartileNumber.name=Calculate first quartile (Q1) +FirstQuartileNumber.description=Calculates the first quartile (Q1) +MedianNumber.name=Calculate median value +MedianNumber.description=Calculates the median +ThirdQuartileNumber.name=Calculate third quartile (Q3) +ThirdQuartileNumber.description=Calculates the third quartile (Q3) +InterQuartileRangeNumber.name=Calculate interquartile range (IQR) +InterQuartileRangeNumber.description=Calculates the interquartile range (IQR) +SumNumbers.name=Calculate sum +SumNumbers.description=Calculates the sum +MinimumNumber.name=Calculate minimum value +MinimumNumber.description=Calculates the minimum value +MaximumNumber.name=Calculate maximum value +MaximumNumber.description=Calculates the maximum value diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_zh_CN.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_zh_CN.properties index fe6f3ab770..190bc6657f 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_zh_CN.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_zh_CN.properties @@ -1,48 +1,23 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-08 00\:18+0000\nLast-Translator\: gephi \nLanguage-Team\: Chinese (China) (http\://www.transifex.com/projects/p/gephi/language/zh_CN/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: zh_CN\nPlural-Forms\: nplurals\=1; plural\=0;\n - KeepSelectedRowValue.name=\u4fdd\u6301\u4e3b\u8981\u7684\u9009\u62e9\u884c\u503c - KeepSelectedRowValue.description=\u4ec5\u4ec5\u5e94\u7528\u4e3b\u8981\u7684\u9009\u62e9\u884c\u503c - JoinWithSeparator.name=\u5206\u9694\u7b26\u52a0\u5165\u6570\u503c - JoinWithSeparator.description=\u5206\u9694\u7b26\u52a0\u5165\u4e00\u4e32\u5b57\u7b26\u503c\u6216\u8005\u5b57\u7b26\u5217 - SetNull.name=\u7f6e\u7a7a - AverageNumber.name=\u8ba1\u7b97\u5747\u503c - AverageNumber.description=\u8ba1\u7b97\u5747\u503c - -FirstQuartileNumber.name=\u8ba1\u7b97\u7b2c\u4e00\u4e2a\u56db\u5206\u4f4d\u70b9\uff08Q1\uff09 - -FirstQuartileNumber.description=\u8ba1\u7b97\u7b2c\u4e00\u4e2a\u56db\u5206\u4f4d\u70b9\uff08Q1\uff09 - +FirstQuartileNumber.name=\u8BA1\u7B97\u7B2C\u4E00\u56DB\u5206\u4F4D\u6570\uFF08Q1\uFF09 +FirstQuartileNumber.description=\u8BA1\u7B97\u7B2C\u4E00\u56DB\u5206\u4F4D\u70B9\uFF08Q1\uFF09 MedianNumber.name=\u8ba1\u7b97\u4e2d\u4f4d\u6570 - -MedianNumber.description=\u8ba1\u7b97zhongweishu - -ThirdQuartileNumber.name=\u8ba1\u7b97\u7b2c\u4e00\u4e2a\u56db\u5206\u4f4d\u70b9\uff08Q3\uff09 - -ThirdQuartileNumber.description=\u8ba1\u7b97\u7b2c\u4e00\u4e2a\u56db\u5206\u4f4d\u70b9\uff08Q3\uff09 - -InterQuartileRangeNumber.name=\u8ba1\u7b97\u56db\u5206\u4f4d\u5dee\uff08IQR\uff09 - +MedianNumber.description=\u8BA1\u7B97\u4E2D\u4F4D\u6570 +# ThirdQuartileNumber.name=Calculate third quartile (Q3) +# ThirdQuartileNumber.description=Calculates the third quartile (Q3) +InterQuartileRangeNumber.name=\u8BA1\u7B97\u56DB\u5206\u4F4D\u5DEE\uFF08IQR\uFF09 InterQuartileRangeNumber.description=\u8ba1\u7b97\u56db\u5206\u4f4d\u5dee\uff08IQR\uff09 - SumNumbers.name=\u8ba1\u7b97\u603b\u548c - -SumNumbers.description=\u8ba1\u7b97zonghe - -MinimumNumber.name=\u8ba1\u7b97zuixiaozhi - -MinimumNumber.description=\u8ba1\u7b97zuixiaozhi - +SumNumbers.description=\u8BA1\u7B97\u603B\u548C +MinimumNumber.name=\u8BA1\u7B97\u6700\u5C0F\u503C +MinimumNumber.description=\u8BA1\u7B97\u6700\u5C0F\u503C MaximumNumber.name=\u8ba1\u7b97\u6700\u5927\u503c - -MaximumNumber.description=\u8ba1\u7b97zuidazhi +MaximumNumber.description=\u8BA1\u7B97\u6700\u5927\u503C +ThirdQuartileNumber.description=\u8BA1\u7B97\u7B2C\u4E09\u56DB\u5206\u4F4D\u6570 (Q3) +ThirdQuartileNumber.name=\u8BA1\u7B97\u7B2C\u4E09\u56DB\u5206\u4F4D\u6570\uFF08Q3\uFF09 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_zh_TW.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_zh_TW.properties new file mode 100644 index 0000000000..ea6042f408 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/Bundle_zh_TW.properties @@ -0,0 +1,21 @@ +KeepSelectedRowValue.name=Keep main selected row value +KeepSelectedRowValue.description=Simply uses the value of the main selected row +JoinWithSeparator.name=Join values with a separator +JoinWithSeparator.description=Join values of a String or list column with a separator +SetNull.name=Set null +AverageNumber.name=Calculate average value +AverageNumber.description=Calculates the average value +FirstQuartileNumber.name=Calculate first quartile (Q1) +FirstQuartileNumber.description=Calculates the first quartile (Q1) +MedianNumber.name=Calculate median value +MedianNumber.description=Calculates the median +ThirdQuartileNumber.name=Calculate third quartile (Q3) +ThirdQuartileNumber.description=Calculates the third quartile (Q3) +InterQuartileRangeNumber.name=Calculate interquartile range (IQR) +InterQuartileRangeNumber.description=Calculates the interquartile range (IQR) +SumNumbers.name=Calculate sum +SumNumbers.description=Calculates the sum +MinimumNumber.name=Calculate minimum value +MinimumNumber.description=Calculates the minimum value +MaximumNumber.name=Calculate maximum value +MaximumNumber.description=Calculates the maximum value diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/cs.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/cs.po deleted file mode 100644 index 4916e2c065..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/cs.po +++ /dev/null @@ -1,82 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# ZbynΔ›k Schwarz , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-02-27 14:12+0000\n" -"Last-Translator: ZbynΔ›k Schwarz \n" -"Language-Team: Czech (http://www.transifex.com/projects/p/gephi/language/cs/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: cs\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" - -msgid "KeepSelectedRowValue.name" -msgstr "Ponechat hodnotu hlavnΓ­ho zvolenΓ©ho Ε™Γ‘dku" - -msgid "KeepSelectedRowValue.description" -msgstr "JendoduΕ‘e pouΕΎije hodnotu hlavnΓ­ho zvolenΓ©ho Ε™Γ‘dku" - -msgid "JoinWithSeparator.name" -msgstr "PΕ™ipojit hodnoty pomocΓ­ oddΔ›lovače" - -msgid "JoinWithSeparator.description" -msgstr "PΕ™ipojit hodnoty Ε™etΔ›zce nebo sloupce seznamu pomocΓ­ oddΔ›lovače" - -msgid "SetNull.name" -msgstr "Nastavit prΓ‘zdnΓ©" - -msgid "AverageNumber.name" -msgstr "Vypočítat prΕ―mΔ›rnou hodnotu" - -msgid "AverageNumber.description" -msgstr "VypočítΓ‘ prΕ―mernou hodnotu" - -msgid "FirstQuartileNumber.name" -msgstr "Vypočítat prvnΓ­ kvartil (Q1)" - -msgid "FirstQuartileNumber.description" -msgstr "VypočítΓ‘ prvnΓ­ kvartil (Q1)" - -msgid "MedianNumber.name" -msgstr "VypočítΓ‘ hodnotu mediΓ‘nu" - -msgid "MedianNumber.description" -msgstr "Vypočítat mediΓ‘n" - -msgid "ThirdQuartileNumber.name" -msgstr "Vypočítat prvnΓ­ kvartil (Q3)" - -msgid "ThirdQuartileNumber.description" -msgstr "VypočítΓ‘ prvnΓ­ kvartil (Q3)" - -msgid "InterQuartileRangeNumber.name" -msgstr "Vypočítat mezikvartilnΓ­ rozsah (IQR)" - -msgid "InterQuartileRangeNumber.description" -msgstr "VypočítΓ‘ mezikvartilnΓ­ rozsah (IQR)" - -msgid "SumNumbers.name" -msgstr "Vypočítat součet" - -msgid "SumNumbers.description" -msgstr "VypočítΓ‘ součet" - -msgid "MinimumNumber.name" -msgstr "Vypočítat minimΓ‘lnΓ­ hodnotu" - -msgid "MinimumNumber.description" -msgstr "VypočítΓ‘ minimΓ‘lnΓ­ hodnotu" - -msgid "MaximumNumber.name" -msgstr "Vypočítat maximΓ‘lnΓ­ hodnotu" - -msgid "MaximumNumber.description" -msgstr "VypočítΓ‘ maximΓ‘lnΓ­ hodnotu" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/es.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/es.po deleted file mode 100644 index 5f4e9624bd..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/es.po +++ /dev/null @@ -1,83 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Eduardo Ramos , 2011. -# , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-07 22:09+0000\n" -"Last-Translator: Eduardo Ramos \n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/gephi/language/es/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -msgid "KeepSelectedRowValue.name" -msgstr "Mantener valor de la fila principal seleccionada" - -msgid "KeepSelectedRowValue.description" -msgstr "Simplemente utiliza el valor de la fila principal seleccionada" - -msgid "JoinWithSeparator.name" -msgstr "Unir valores con separador" - -msgid "JoinWithSeparator.description" -msgstr "Une los valores de una columna de tipo String o lista con un separador" - -msgid "SetNull.name" -msgstr "Utilizar valor nulo" - -msgid "AverageNumber.name" -msgstr "Calcular valor medio" - -msgid "AverageNumber.description" -msgstr "Calcula el valor medio" - -msgid "FirstQuartileNumber.name" -msgstr "Calcular primer cuartil (Q1)" - -msgid "FirstQuartileNumber.description" -msgstr "Calcula el primer cuartil (Q1)" - -msgid "MedianNumber.name" -msgstr "Calcular mediana" - -msgid "MedianNumber.description" -msgstr "Calcula la mediana" - -msgid "ThirdQuartileNumber.name" -msgstr "Calcular tercer cuartil (Q3)" - -msgid "ThirdQuartileNumber.description" -msgstr "Calcula el tercer cuartil (Q3)" - -msgid "InterQuartileRangeNumber.name" -msgstr "Calcular rango intercuartΓ­lico (IQR)" - -msgid "InterQuartileRangeNumber.description" -msgstr "Calcula el rango intercuartΓ­lico (IQR)" - -msgid "SumNumbers.name" -msgstr "Calcular suma" - -msgid "SumNumbers.description" -msgstr "Calcula la suma" - -msgid "MinimumNumber.name" -msgstr "Calcular valor mΓ­nimo" - -msgid "MinimumNumber.description" -msgstr "Calcula el valor mΓ­nimo" - -msgid "MaximumNumber.name" -msgstr "Calcular valor mΓ‘ximo" - -msgid "MaximumNumber.description" -msgstr "Calcula el valor mΓ‘ximo" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/fr.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/fr.po deleted file mode 100644 index 35c9c78cfc..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/fr.po +++ /dev/null @@ -1,82 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-07 11:48+0000\n" -"Last-Translator: gephi \n" -"Language-Team: French (http://www.transifex.com/projects/p/gephi/language/fr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "KeepSelectedRowValue.name" -msgstr "Garder la valeur de la ligne principale sΓ©lectionnΓ©e" - -msgid "KeepSelectedRowValue.description" -msgstr "RΓ©utiliser la valeur de la ligne principale sΓ©lectionnΓ©e" - -msgid "JoinWithSeparator.name" -msgstr "Joindre les valeurs avec un sΓ©parateur" - -msgid "JoinWithSeparator.description" -msgstr "Joindre les valeurs d'une liste/colonne de chaΓnes de caractΓ¨res avec un sΓ©parateur" - -msgid "SetNull.name" -msgstr "Rendre nul" - -msgid "AverageNumber.name" -msgstr "Calculer la moyenne" - -msgid "AverageNumber.description" -msgstr "Calculer la moyenne" - -msgid "FirstQuartileNumber.name" -msgstr "Calculer le premier quartile (Q1)" - -msgid "FirstQuartileNumber.description" -msgstr "Calculer le premier quartile (Q1)" - -msgid "MedianNumber.name" -msgstr "Calculer la mΓ©diane" - -msgid "MedianNumber.description" -msgstr "Calculer la mΓ©diane" - -msgid "ThirdQuartileNumber.name" -msgstr "Calculer le troisiΓ¨me quartile (Q3)" - -msgid "ThirdQuartileNumber.description" -msgstr "Calculer le troisiΓ¨me quartile (Q3)" - -msgid "InterQuartileRangeNumber.name" -msgstr "Calculer l'Γ©cart interquartile (EI)" - -msgid "InterQuartileRangeNumber.description" -msgstr "Calculer l'Γ©cart interquartile (EI)" - -msgid "SumNumbers.name" -msgstr "Calculer la somme" - -msgid "SumNumbers.description" -msgstr "Calculer la somme" - -msgid "MinimumNumber.name" -msgstr "Calculer le minimum" - -msgid "MinimumNumber.description" -msgstr "Calculer le minimum" - -msgid "MaximumNumber.name" -msgstr "Calculer le maximum" - -msgid "MaximumNumber.description" -msgstr "Calculer le maximum" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ja.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ja.po deleted file mode 100644 index 64026bc356..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ja.po +++ /dev/null @@ -1,82 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-09-01 17:04+0000\n" -"Last-Translator: Siro Kida \n" -"Language-Team: Japanese (http://www.transifex.com/projects/p/gephi/language/ja/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ja\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "KeepSelectedRowValue.name" -msgstr "δΈ»γͺιΈζŠžγ•γ‚ŒγŸθ‘Œγε€€γ‚’δΏζŒ" - -msgid "KeepSelectedRowValue.description" -msgstr "ε˜η΄”γ«γƒ‘γ‚€γƒ³ιΈζŠžγ•γ‚ŒγŸθ‘Œγε€€γ‚’使用します" - -msgid "JoinWithSeparator.name" -msgstr "εŒΊεˆ‡γ‚Šζ–‡ε­—γ§ε€€γ‚’η΅εˆ" - -msgid "JoinWithSeparator.description" -msgstr "εŒΊεˆ‡γ‚Šζ–‡ε­—γ§ζ–‡ε­—εˆ—γΎγŸγ―γƒͺγ‚Ήγƒˆγεˆ—γε€€γ‚’η΅εˆ" - -msgid "SetNull.name" -msgstr "nullγ‚’θ¨­εš" - -msgid "AverageNumber.name" -msgstr "平均倀γθ¨ˆη—" - -msgid "AverageNumber.description" -msgstr "平均倀γθ¨ˆη—" - -msgid "FirstQuartileNumber.name" -msgstr "η¬¬δΈ€ε››εˆ†δ½ε€€γθ¨ˆη— (Q1)γθ¨ˆη—" - -msgid "FirstQuartileNumber.description" -msgstr "η¬¬δΈ€ε››εˆ†δ½ε€€γθ¨ˆη— (Q1)γθ¨ˆη—" - -msgid "MedianNumber.name" -msgstr "δΈ­ε€ε€€γθ¨ˆη—" - -msgid "MedianNumber.description" -msgstr "δΈ­ε€ε€€γθ¨ˆη—" - -msgid "ThirdQuartileNumber.name" -msgstr "η¬¬δΈ‰ε››εˆ†δ½ε€€γθ¨ˆη— (Q3)γθ¨ˆη—" - -msgid "ThirdQuartileNumber.description" -msgstr "η¬¬δΈ‰ε››εˆ†δ½ε€€γθ¨ˆη— (Q3)γθ¨ˆη—" - -msgid "InterQuartileRangeNumber.name" -msgstr "ε››εˆ†δ½ζ•°η―„ε›² (IQR)γθ¨ˆη—" - -msgid "InterQuartileRangeNumber.description" -msgstr "ε››εˆ†δ½ζ•°η―„ε›² (IQR)γθ¨ˆη—" - -msgid "SumNumbers.name" -msgstr "合計γθ¨ˆη—" - -msgid "SumNumbers.description" -msgstr "合計γθ¨ˆη—" - -msgid "MinimumNumber.name" -msgstr "ζœ€ε°ε€€γθ¨ˆη—" - -msgid "MinimumNumber.description" -msgstr "ζœ€ε°ε€€γθ¨ˆη—" - -msgid "MaximumNumber.name" -msgstr "ζœ€ε€§ε€€γθ¨ˆη—" - -msgid "MaximumNumber.description" -msgstr "ζœ€ε€§ε€€γθ¨ˆη—" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/org-gephi-datalab-plugin-manipulators-rows-merge.pot b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/org-gephi-datalab-plugin-manipulators-rows-merge.pot deleted file mode 100644 index 57b2f67781..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/org-gephi-datalab-plugin-manipulators-rows-merge.pot +++ /dev/null @@ -1,79 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# Gephi Team , 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: Gephi 0.8\n" -"Report-Msgid-Bugs-To: gephi.team@lists.launchpad.net\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-05 14:52+0200\n" -"Last-Translator: Mathieu Bastian \n" -"Language-Team: English \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "KeepSelectedRowValue.name" -msgstr "Keep main selected row value" - -msgid "KeepSelectedRowValue.description" -msgstr "Simply uses the value of the main selected row" - -msgid "JoinWithSeparator.name" -msgstr "Join values with a separator" - -msgid "JoinWithSeparator.description" -msgstr "Join values of a String or list column with a separator" - -msgid "SetNull.name" -msgstr "Set null" - -msgid "AverageNumber.name" -msgstr "Calculate average value" - -msgid "AverageNumber.description" -msgstr "Calculates the average value" - -msgid "FirstQuartileNumber.name" -msgstr "Calculate first quartile (Q1)" - -msgid "FirstQuartileNumber.description" -msgstr "Calculates the first quartile (Q1)" - -msgid "MedianNumber.name" -msgstr "Calculate median value" - -msgid "MedianNumber.description" -msgstr "Calculates the median" - -msgid "ThirdQuartileNumber.name" -msgstr "Calculate first quartile (Q3)" - -msgid "ThirdQuartileNumber.description" -msgstr "Calculates the first quartile (Q3)" - -msgid "InterQuartileRangeNumber.name" -msgstr "Calculate interquartile range (IQR)" - -msgid "InterQuartileRangeNumber.description" -msgstr "Calculates the interquartile range (IQR)" - -msgid "SumNumbers.name" -msgstr "Calculate sum" - -msgid "SumNumbers.description" -msgstr "Calculates the sum" - -msgid "MinimumNumber.name" -msgstr "Calculate minimum value" - -msgid "MinimumNumber.description" -msgstr "Calculates the minimum value" - -msgid "MaximumNumber.name" -msgstr "Calculate maximum value" - -msgid "MaximumNumber.description" -msgstr "Calculates the maximum value" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/pt_BR.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/pt_BR.po deleted file mode 100644 index 51015c8104..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/pt_BR.po +++ /dev/null @@ -1,82 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# CΓ©lio CJr , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 01:16+0000\n" -"Last-Translator: CΓ©lio Faria Jr. \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/gephi/language/pt_BR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "KeepSelectedRowValue.name" -msgstr "Manter valor da linha principal selecionada" - -msgid "KeepSelectedRowValue.description" -msgstr "Simplesmente usar o valor da linha principal selecionada" - -msgid "JoinWithSeparator.name" -msgstr "Juntar valores com um separador" - -msgid "JoinWithSeparator.description" -msgstr "Juntar valores de uma coluna texto ou lista com um separador" - -msgid "SetNull.name" -msgstr "Utilizar valor nulo" - -msgid "AverageNumber.name" -msgstr "Calcular valor mΓ©dio" - -msgid "AverageNumber.description" -msgstr "Calcula o valor mΓ©dio" - -msgid "FirstQuartileNumber.name" -msgstr "Calcular primeiro quartil (Q1)" - -msgid "FirstQuartileNumber.description" -msgstr "Calcula o primeiro quartil (Q1)" - -msgid "MedianNumber.name" -msgstr "Calcular mediana" - -msgid "MedianNumber.description" -msgstr "Calcula a mediana" - -msgid "ThirdQuartileNumber.name" -msgstr "Calcular primeiro quartil (Q3)" - -msgid "ThirdQuartileNumber.description" -msgstr "Calcula o primeiro quartil (Q3)" - -msgid "InterQuartileRangeNumber.name" -msgstr "Calcular intervalo interquartil (IQR)" - -msgid "InterQuartileRangeNumber.description" -msgstr "Calcula o intervalo interquartil (IQR)" - -msgid "SumNumbers.name" -msgstr "Calcular soma" - -msgid "SumNumbers.description" -msgstr "Calcula a soma" - -msgid "MinimumNumber.name" -msgstr "Calcular valor mΓ­nimo" - -msgid "MinimumNumber.description" -msgstr "Calcula o valor mΓ­nimo" - -msgid "MaximumNumber.name" -msgstr "Calcular valor mΓ‘ximo" - -msgid "MaximumNumber.description" -msgstr "Calcula o valor mΓ‘ximo" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ru.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ru.po deleted file mode 100644 index bd53dc630f..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ru.po +++ /dev/null @@ -1,82 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-10-12 07:57+0000\n" -"Last-Translator: Altsoph \n" -"Language-Team: Russian (http://www.transifex.com/projects/p/gephi/language/ru/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -msgid "KeepSelectedRowValue.name" -msgstr "Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· основной Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ строки" - -msgid "KeepSelectedRowValue.description" -msgstr "ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· основной Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ строки" - -msgid "JoinWithSeparator.name" -msgstr "ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ значСния Ρ‡Π΅Ρ€Π΅Π· Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ" - -msgid "JoinWithSeparator.description" -msgstr "ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ строковыС значСния ΠΈΠ»ΠΈ список с использованиСм раздСлитСля" - -msgid "SetNull.name" -msgstr "Null" - -msgid "AverageNumber.name" -msgstr "Поиск срСднСго" - -msgid "AverageNumber.description" -msgstr "РассчитываСт срСднСС арифмСтичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅" - -msgid "FirstQuartileNumber.name" -msgstr "Расчёт ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ квартиля (Q1)" - -msgid "FirstQuartileNumber.description" -msgstr "РассчитываСт ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠ²Π°Ρ€Ρ‚ΠΈΠ»ΡŒ (Q1)" - -msgid "MedianNumber.name" -msgstr "Поиск ΠΌΠ΅Π΄ΠΈΠ°Π½Ρ‹" - -msgid "MedianNumber.description" -msgstr "РассчитываСт ΠΌΠ΅Π΄ΠΈΠ°Π½Ρƒ" - -msgid "ThirdQuartileNumber.name" -msgstr "Расчёт Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ квартиля (Q3)" - -msgid "ThirdQuartileNumber.description" -msgstr "РассчитываСт Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ΠΊΠ²Π°Ρ€Ρ‚ΠΈΠ»ΡŒ (Q3)" - -msgid "InterQuartileRangeNumber.name" -msgstr "Поиск ΠΌΠ΅ΠΆΠΊΠ²Π°Ρ€Ρ‚ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ°Ρ…Π° (IQR)" - -msgid "InterQuartileRangeNumber.description" -msgstr "РассчитываСт ΠΌΠ΅ΠΆΠΊΠ²Π°Ρ€Ρ‚ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ°Ρ… (IQR)" - -msgid "SumNumbers.name" -msgstr "Π‘ΡƒΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅" - -msgid "SumNumbers.description" -msgstr "РассчитываСт сумму Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ" - -msgid "MinimumNumber.name" -msgstr "Поиск минимальноС значСния" - -msgid "MinimumNumber.description" -msgstr "РассчитываСт минимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅" - -msgid "MaximumNumber.name" -msgstr "Поиск максимального значСния" - -msgid "MaximumNumber.description" -msgstr "РассчитываСт максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_ar.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_ar.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_ar.properties @@ -0,0 +1 @@ + diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_ca.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_ca.properties new file mode 100644 index 0000000000..09188c5779 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_ca.properties @@ -0,0 +1 @@ +JoinWithSeparatorUI.separatorLabel.text=Separador: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_cs.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_cs.properties index 61a8fb704f..37eb78b681 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_cs.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_cs.properties @@ -1,9 +1 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Zbyn\u011bk Schwarz , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-02-27 13\:05+0000\nLast-Translator\: Zbyn\u011bk Schwarz \nLanguage-Team\: Czech (http\://www.transifex.com/projects/p/gephi/language/cs/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: cs\nPlural-Forms\: nplurals\=3; plural\=(n\=\=1) ? 0 \: (n>\=2 && n<\=4) ? 1 \: 2;\n - -JoinWithSeparatorUI.separatorLabel.text=Odd\u011blova\u010d\: +JoinWithSeparatorUI.separatorLabel.text=Odd\u011blova\u010d: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_de.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_de.properties new file mode 100644 index 0000000000..35ca4fa029 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_de.properties @@ -0,0 +1 @@ +JoinWithSeparatorUI.separatorLabel.text=Trennzeichen: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_es.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_es.properties index fa13f5403a..09188c5779 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_es.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_es.properties @@ -1,9 +1 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Eduardo Ramos , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-07 11\:19+0000\nLast-Translator\: Eduardo Ramos \nLanguage-Team\: Spanish (http\://www.transifex.com/projects/p/gephi/language/es/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: es\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n - -JoinWithSeparatorUI.separatorLabel.text=Separador\: +JoinWithSeparatorUI.separatorLabel.text=Separador: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_fr.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_fr.properties index 6c4721e854..7bf2f7e18e 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_fr.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_fr.properties @@ -1,9 +1 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-07 11\:36+0000\nLast-Translator\: gephi \nLanguage-Team\: French (http\://www.transifex.com/projects/p/gephi/language/fr/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fr\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -JoinWithSeparatorUI.separatorLabel.text=S\u00e9parateur \: +JoinWithSeparatorUI.separatorLabel.text=Sιparateur : diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_he.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_he.properties new file mode 100644 index 0000000000..19b223215e --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_he.properties @@ -0,0 +1 @@ +JoinWithSeparatorUI.separatorLabel.text=Separator: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_hu.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_hu.properties new file mode 100644 index 0000000000..4eb56ac4a6 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_hu.properties @@ -0,0 +1,3 @@ + + +JoinWithSeparatorUI.separatorLabel.text=Sz\u00E9tv\u00E1laszt\u00F3: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_it.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_it.properties new file mode 100644 index 0000000000..19b223215e --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_it.properties @@ -0,0 +1 @@ +JoinWithSeparatorUI.separatorLabel.text=Separator: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_ja.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_ja.properties index 5ecb51eff7..f969d0f5c8 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_ja.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_ja.properties @@ -1,9 +1 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-10 15\:26+0000\nLast-Translator\: Siro Kida \nLanguage-Team\: Japanese (http\://www.transifex.com/projects/p/gephi/language/ja/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ja\nPlural-Forms\: nplurals\=1; plural\=0;\n - -JoinWithSeparatorUI.separatorLabel.text=\u30bb\u30d1\u30ec\u30fc\u30bf\: +JoinWithSeparatorUI.separatorLabel.text=\u30bb\u30d1\u30ec\u30fc\u30bf: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_ko.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_ko.properties new file mode 100644 index 0000000000..737d0206db --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_ko.properties @@ -0,0 +1,3 @@ + + +JoinWithSeparatorUI.separatorLabel.text=\uAD6C\uBD84\uC790: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_nl.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_nl.properties new file mode 100644 index 0000000000..19b223215e --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_nl.properties @@ -0,0 +1 @@ +JoinWithSeparatorUI.separatorLabel.text=Separator: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_pt.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_pt.properties new file mode 100644 index 0000000000..a4c2fe9b11 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_pt.properties @@ -0,0 +1 @@ +JoinWithSeparatorUI.separatorLabel.text=Separador: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_pt_BR.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_pt_BR.properties index df69ff3af7..09188c5779 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_pt_BR.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_pt_BR.properties @@ -1,9 +1 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# C\u00e9lio CJr , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-06 23\:19+0000\nLast-Translator\: C\u00e9lio Faria Jr. \nLanguage-Team\: Portuguese (Brazil) (http\://www.transifex.com/projects/p/gephi/language/pt_BR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt_BR\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -JoinWithSeparatorUI.separatorLabel.text=Separador\: +JoinWithSeparatorUI.separatorLabel.text=Separador: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_ro.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_ro.properties new file mode 100644 index 0000000000..c0a952dc93 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_ro.properties @@ -0,0 +1,3 @@ + + +JoinWithSeparatorUI.separatorLabel.text=Separator: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_ru.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_ru.properties index dc15db5ecb..f15c4d4a36 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_ru.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_ru.properties @@ -1,9 +1 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-10-12 07\:40+0000\nLast-Translator\: Altsoph \nLanguage-Team\: Russian (http\://www.transifex.com/projects/p/gephi/language/ru/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ru\nPlural-Forms\: nplurals\=3; plural\=(n%10\=\=1 && n%100\!\=11 ? 0 \: n%10>\=2 && n%10<\=4 && (n%100<10 || n%100>\=20) ? 1 \: 2);\n - -JoinWithSeparatorUI.separatorLabel.text=\u0420\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c\: +JoinWithSeparatorUI.separatorLabel.text=\u0420\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_th.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_th.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_th.properties @@ -0,0 +1 @@ + diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_tr.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_tr.properties new file mode 100644 index 0000000000..e60735d275 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_tr.properties @@ -0,0 +1 @@ +JoinWithSeparatorUI.separatorLabel.text=Ay\u0131r\u0131c\u0131: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_uk.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_uk.properties new file mode 100644 index 0000000000..d22ec8c893 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_uk.properties @@ -0,0 +1 @@ +JoinWithSeparatorUI.separatorLabel.text=\u0420\u043E\u0437\u0434\u0456\u043B\u044C\u043D\u0438\u043A: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_zh_CN.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_zh_CN.properties index cf159604ef..ed7a7f38b0 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_zh_CN.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_zh_CN.properties @@ -1,8 +1 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-08 00\:18+0000\nLast-Translator\: gephi \nLanguage-Team\: Chinese (China) (http\://www.transifex.com/projects/p/gephi/language/zh_CN/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: zh_CN\nPlural-Forms\: nplurals\=1; plural\=0;\n - -JoinWithSeparatorUI.separatorLabel.text=\u5206\u9694\u7b26\uff1a +JoinWithSeparatorUI.separatorLabel.text=\u5206\u9694\u7b26\uff1a diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_zh_TW.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_zh_TW.properties new file mode 100644 index 0000000000..19b223215e --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/Bundle_zh_TW.properties @@ -0,0 +1 @@ +JoinWithSeparatorUI.separatorLabel.text=Separator: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/cs.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/cs.po deleted file mode 100644 index 22ca85a502..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/cs.po +++ /dev/null @@ -1,22 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# ZbynΔ›k Schwarz , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-02-27 13:05+0000\n" -"Last-Translator: ZbynΔ›k Schwarz \n" -"Language-Team: Czech (http://www.transifex.com/projects/p/gephi/language/cs/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: cs\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" - -msgid "JoinWithSeparatorUI.separatorLabel.text" -msgstr "OddΔ›lovač:" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/es.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/es.po deleted file mode 100644 index b3c3d9c747..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/es.po +++ /dev/null @@ -1,22 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Eduardo Ramos , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-07 11:19+0000\n" -"Last-Translator: Eduardo Ramos \n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/gephi/language/es/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -msgid "JoinWithSeparatorUI.separatorLabel.text" -msgstr "Separador:" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/fr.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/fr.po deleted file mode 100644 index c62c02eed4..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/fr.po +++ /dev/null @@ -1,22 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-07 11:36+0000\n" -"Last-Translator: gephi \n" -"Language-Team: French (http://www.transifex.com/projects/p/gephi/language/fr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "JoinWithSeparatorUI.separatorLabel.text" -msgstr "SΓ©parateur :" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/ja.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/ja.po deleted file mode 100644 index 515de84a6d..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/ja.po +++ /dev/null @@ -1,22 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-10 15:26+0000\n" -"Last-Translator: Siro Kida \n" -"Language-Team: Japanese (http://www.transifex.com/projects/p/gephi/language/ja/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ja\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "JoinWithSeparatorUI.separatorLabel.text" -msgstr "セパレータ:" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/org-gephi-datalab-plugin-manipulators-rows-merge-ui.pot b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/org-gephi-datalab-plugin-manipulators-rows-merge-ui.pot deleted file mode 100644 index ee7f5ddae3..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/org-gephi-datalab-plugin-manipulators-rows-merge-ui.pot +++ /dev/null @@ -1,19 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# Gephi Team , 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: Gephi 0.8\n" -"Report-Msgid-Bugs-To: gephi.team@lists.launchpad.net\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-05 14:52+0200\n" -"Last-Translator: Mathieu Bastian \n" -"Language-Team: English \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "JoinWithSeparatorUI.separatorLabel.text" -msgstr "Separator:" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/pt_BR.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/pt_BR.po deleted file mode 100644 index 1f28aa8514..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/pt_BR.po +++ /dev/null @@ -1,22 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# CΓ©lio CJr , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-06 23:19+0000\n" -"Last-Translator: CΓ©lio Faria Jr. \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/gephi/language/pt_BR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "JoinWithSeparatorUI.separatorLabel.text" -msgstr "Separador:" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/ru.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/ru.po deleted file mode 100644 index 095d3caa91..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/ru.po +++ /dev/null @@ -1,22 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-10-12 07:40+0000\n" -"Last-Translator: Altsoph \n" -"Language-Team: Russian (http://www.transifex.com/projects/p/gephi/language/ru/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -msgid "JoinWithSeparatorUI.separatorLabel.text" -msgstr "Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ:" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/zh_CN.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/zh_CN.po deleted file mode 100644 index aaff53abaa..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/ui/zh_CN.po +++ /dev/null @@ -1,21 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-08 00:18+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/gephi/language/zh_CN/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "JoinWithSeparatorUI.separatorLabel.text" -msgstr "εˆ†ιš”η¬¦οΌš" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/zh_CN.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/zh_CN.po deleted file mode 100644 index f9c8e91d75..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/rows/merge/zh_CN.po +++ /dev/null @@ -1,81 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-08 00:18+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/gephi/language/zh_CN/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "KeepSelectedRowValue.name" -msgstr "δΏζŒδΈ»θ¦ηš„ι€‰ζ‹©θ‘Œε€Ό" - -msgid "KeepSelectedRowValue.description" -msgstr "δ»…δ»…εΊ”η”¨δΈ»θ¦ηš„ι€‰ζ‹©θ‘Œε€Ό" - -msgid "JoinWithSeparator.name" -msgstr "εˆ†ιš”η¬¦εŠ ε…₯ζ•°ε€Ό" - -msgid "JoinWithSeparator.description" -msgstr "εˆ†ιš”η¬¦εŠ ε…₯δΈ€δΈ²ε­—η¬¦ε€Όζˆ–θ€…ε­—η¬¦εˆ—" - -msgid "SetNull.name" -msgstr "η½η©Ί" - -msgid "AverageNumber.name" -msgstr "θ‘η—均值" - -msgid "AverageNumber.description" -msgstr "θ‘η—均值" - -msgid "FirstQuartileNumber.name" -msgstr "θ‘η—第一δΈͺε››εˆ†δ½η‚ΉοΌˆQ1οΌ‰" - -msgid "FirstQuartileNumber.description" -msgstr "θ‘η—第一δΈͺε››εˆ†δ½η‚ΉοΌˆQ1οΌ‰" - -msgid "MedianNumber.name" -msgstr "θ‘η—中位数" - -msgid "MedianNumber.description" -msgstr "θ‘η—zhongweishu" - -msgid "ThirdQuartileNumber.name" -msgstr "θ‘η—第一δΈͺε››εˆ†δ½η‚ΉοΌˆQ3οΌ‰" - -msgid "ThirdQuartileNumber.description" -msgstr "θ‘η—第一δΈͺε››εˆ†δ½η‚ΉοΌˆQ3οΌ‰" - -msgid "InterQuartileRangeNumber.name" -msgstr "θ‘η—ε››εˆ†δ½ε·οΌˆIQRοΌ‰" - -msgid "InterQuartileRangeNumber.description" -msgstr "θ‘η—ε››εˆ†δ½ε·οΌˆIQRοΌ‰" - -msgid "SumNumbers.name" -msgstr "θ‘η—ζ€»ε’Œ" - -msgid "SumNumbers.description" -msgstr "θ‘η—zonghe" - -msgid "MinimumNumber.name" -msgstr "θ‘η—zuixiaozhi" - -msgid "MinimumNumber.description" -msgstr "θ‘η—zuixiaozhi" - -msgid "MaximumNumber.name" -msgstr "θ‘η—ζœ€ε€§ε€Ό" - -msgid "MaximumNumber.description" -msgstr "θ‘η—zuidazhi" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_ar.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_ar.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_ar.properties @@ -0,0 +1 @@ + diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_ca.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_ca.properties new file mode 100644 index 0000000000..003d57c2c9 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_ca.properties @@ -0,0 +1,7 @@ +GeneralNumberListStatisticsReportUI.configureBoxPlotButton.text=Configura el diagrama de caixa +GeneralNumberListStatisticsReportUI.configureScatterPlotButton.text_1=Configura el diagrama de dispersiσ +GeneralNumberListStatisticsReportUI.showReportButton.text=Mostra l'informe +GeneralNumberListStatisticsReportUI.useLinesCheckBox.text=Mostra les lνnies +GeneralNumberListStatisticsReportUI.useLinearRegression.text=Show linear regression +GeneralNumberListStatisticsReportUI.configureHistogramButton.text=Configura l'Historiograma +GeneralNumberListStatisticsReportUI.divisionsLabel.text=Divisions: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_cs.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_cs.properties index 2e316ed63c..98845f5895 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_cs.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_cs.properties @@ -1,21 +1,7 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Zbyn\u011bk Schwarz , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-02-27 16\:06+0000\nLast-Translator\: Zbyn\u011bk Schwarz \nLanguage-Team\: Czech (http\://www.transifex.com/projects/p/gephi/language/cs/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: cs\nPlural-Forms\: nplurals\=3; plural\=(n\=\=1) ? 0 \: (n>\=2 && n<\=4) ? 1 \: 2;\n - -GeneralNumberListStatisticsReportUI.configureBoxPlotButton.text=Nastavit burzovn\u00ed graf - -GeneralNumberListStatisticsReportUI.configureScatterPlotButton.text_1=Nastavit bodov\u00fd graf - -GeneralNumberListStatisticsReportUI.showReportButton.text=Zobrazit z\u00e1znam - -GeneralNumberListStatisticsReportUI.useLinesCheckBox.text=Zobrazit \u010d\u00e1ry - -GeneralNumberListStatisticsReportUI.useLinearRegression.text=Zobrazit line\u00e1rn\u00ed regresi - -GeneralNumberListStatisticsReportUI.configureHistogramButton.text=Nastavit histogram - -GeneralNumberListStatisticsReportUI.divisionsLabel.text=Odd\u00edly\: +GeneralNumberListStatisticsReportUI.configureBoxPlotButton.text=Nastavit burzovnν graf +GeneralNumberListStatisticsReportUI.configureScatterPlotButton.text_1=Nastavit bodovύ graf +GeneralNumberListStatisticsReportUI.showReportButton.text=Zobrazit zαznam +GeneralNumberListStatisticsReportUI.useLinesCheckBox.text=Zobrazit \u010dαry +GeneralNumberListStatisticsReportUI.useLinearRegression.text=Zobrazit lineαrnν regresi +GeneralNumberListStatisticsReportUI.configureHistogramButton.text=Nastavit histogram +GeneralNumberListStatisticsReportUI.divisionsLabel.text=Oddνly: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_de.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_de.properties new file mode 100644 index 0000000000..56864ef195 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_de.properties @@ -0,0 +1,7 @@ +GeneralNumberListStatisticsReportUI.configureBoxPlotButton.text=Boxplot konfigurieren +GeneralNumberListStatisticsReportUI.configureScatterPlotButton.text_1=Streudiagramm konfigurieren +GeneralNumberListStatisticsReportUI.showReportButton.text=Bericht anzeigen +GeneralNumberListStatisticsReportUI.useLinesCheckBox.text=Zeilen anzeigen +GeneralNumberListStatisticsReportUI.useLinearRegression.text=Lineare Regression anzeigen +GeneralNumberListStatisticsReportUI.configureHistogramButton.text=Histogramm konfigurieren +GeneralNumberListStatisticsReportUI.divisionsLabel.text=Unterteilungen: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_es.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_es.properties index d4b122a146..4e386d6cc6 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_es.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_es.properties @@ -1,21 +1,7 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-04 23\:10+0000\nLast-Translator\: gephi \nLanguage-Team\: Spanish (http\://www.transifex.com/projects/p/gephi/language/es/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: es\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n - -GeneralNumberListStatisticsReportUI.configureBoxPlotButton.text=Configurar diagrama de cajas - -GeneralNumberListStatisticsReportUI.configureScatterPlotButton.text_1=Configurar diagrama de dispersi\u00f3n - -GeneralNumberListStatisticsReportUI.showReportButton.text=Mostrar informe - -GeneralNumberListStatisticsReportUI.useLinesCheckBox.text=Mostrar l\u00edneas - -GeneralNumberListStatisticsReportUI.useLinearRegression.text=Mostrar regresi\u00f3n lineal - -GeneralNumberListStatisticsReportUI.configureHistogramButton.text=Configurar histograma\: - -GeneralNumberListStatisticsReportUI.divisionsLabel.text=Divisiones\: +GeneralNumberListStatisticsReportUI.configureBoxPlotButton.text=Configurar diagrama de cajas +GeneralNumberListStatisticsReportUI.configureScatterPlotButton.text_1=Configurar diagrama de dispersiσn +GeneralNumberListStatisticsReportUI.showReportButton.text=Mostrar informe +GeneralNumberListStatisticsReportUI.useLinesCheckBox.text=Mostrar lνneas +GeneralNumberListStatisticsReportUI.useLinearRegression.text=Mostrar regresiσn lineal +GeneralNumberListStatisticsReportUI.configureHistogramButton.text=Configurar histograma: +GeneralNumberListStatisticsReportUI.divisionsLabel.text=Divisiones: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_fr.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_fr.properties index 18e4cc473a..c021215987 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_fr.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_fr.properties @@ -1,21 +1,7 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-04 23\:10+0000\nLast-Translator\: gephi \nLanguage-Team\: French (http\://www.transifex.com/projects/p/gephi/language/fr/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fr\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -GeneralNumberListStatisticsReportUI.configureBoxPlotButton.text=Configurer la bo\u00eete \u00e0 moustaches - -GeneralNumberListStatisticsReportUI.configureScatterPlotButton.text_1=Configurer le nuage de points - -GeneralNumberListStatisticsReportUI.showReportButton.text=Afficher le rapport - -GeneralNumberListStatisticsReportUI.useLinesCheckBox.text=Afficher les lignes - -GeneralNumberListStatisticsReportUI.useLinearRegression.text=Afficher la r\u00e9gression lin\u00e9aire - -GeneralNumberListStatisticsReportUI.configureHistogramButton.text=Configurer l'histogramme - -GeneralNumberListStatisticsReportUI.divisionsLabel.text=Divisions \: +GeneralNumberListStatisticsReportUI.configureBoxPlotButton.text=Configurer la boξte ΰ moustaches +GeneralNumberListStatisticsReportUI.configureScatterPlotButton.text_1=Configurer le nuage de points +GeneralNumberListStatisticsReportUI.showReportButton.text=Afficher le rapport +GeneralNumberListStatisticsReportUI.useLinesCheckBox.text=Afficher les lignes +GeneralNumberListStatisticsReportUI.useLinearRegression.text=Afficher la rιgression linιaire +GeneralNumberListStatisticsReportUI.configureHistogramButton.text=Configurer l'histogramme +GeneralNumberListStatisticsReportUI.divisionsLabel.text=Divisions : diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_he.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_he.properties new file mode 100644 index 0000000000..88a10cbe13 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_he.properties @@ -0,0 +1,7 @@ +GeneralNumberListStatisticsReportUI.configureBoxPlotButton.text=\u05d4\u05e2\u05d3\u05e4\u05d5\u05ea \u05d2\u05e8\u05e3 boxplot +GeneralNumberListStatisticsReportUI.configureScatterPlotButton.text_1=\u05d4\u05e2\u05d3\u05e4\u05d5\u05ea \u05d2\u05e8\u05e3 \u05e0\u05e7\u05d5\u05d3\u05d5\u05ea +GeneralNumberListStatisticsReportUI.showReportButton.text=\u05d4\u05e6\u05d2 \u05d3\u05d5\u05d7 +GeneralNumberListStatisticsReportUI.useLinesCheckBox.text=\u05d4\u05e8\u05d0\u05d4 \u05e7\u05d5\u05d9\u05dd +GeneralNumberListStatisticsReportUI.useLinearRegression.text=\u05d4\u05e6\u05d2 \u05e8\u05d2\u05e8\u05e1\u05d9\u05d4 \u05dc\u05d9\u05e0\u05d0\u05e8\u05d9\u05ea +GeneralNumberListStatisticsReportUI.configureHistogramButton.text=Configure Histogram +GeneralNumberListStatisticsReportUI.divisionsLabel.text=\u05d7\u05dc\u05d5\u05e7\u05d5\u05ea: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_hu.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_hu.properties new file mode 100644 index 0000000000..2d69bbdbfa --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_hu.properties @@ -0,0 +1,9 @@ + + +GeneralNumberListStatisticsReportUI.configureScatterPlotButton.text_1=Sz\u00F3rv\u00E1nydiagram konfigur\u00E1l\u00E1sa +GeneralNumberListStatisticsReportUI.configureHistogramButton.text=Hisztogram konfigur\u00E1l\u00E1sa +GeneralNumberListStatisticsReportUI.configureBoxPlotButton.text=Konfigur\u00E1lja a doboz diagramot +GeneralNumberListStatisticsReportUI.useLinesCheckBox.text=Vonalak megjelen\u00EDt\u00E9se +GeneralNumberListStatisticsReportUI.divisionsLabel.text=Oszt\u00E1lyok: +GeneralNumberListStatisticsReportUI.useLinearRegression.text=Line\u00E1ris regresszi\u00F3 megjelen\u00EDt\u00E9se +GeneralNumberListStatisticsReportUI.showReportButton.text=Jelent\u00E9s megjelen\u00EDt\u00E9se diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_it.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_it.properties new file mode 100644 index 0000000000..683eb6d3fe --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_it.properties @@ -0,0 +1,7 @@ +GeneralNumberListStatisticsReportUI.configureBoxPlotButton.text=Configure box plot +GeneralNumberListStatisticsReportUI.configureScatterPlotButton.text_1=Configure scatter plot +GeneralNumberListStatisticsReportUI.showReportButton.text=Show report +GeneralNumberListStatisticsReportUI.useLinesCheckBox.text=Show lines +GeneralNumberListStatisticsReportUI.useLinearRegression.text=Show linear regression +GeneralNumberListStatisticsReportUI.configureHistogramButton.text=Configure Histogram +GeneralNumberListStatisticsReportUI.divisionsLabel.text=Divisions: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_ja.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_ja.properties index d0ea867002..b0d9577a36 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_ja.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_ja.properties @@ -1,21 +1,7 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-09-02 10\:57+0000\nLast-Translator\: Siro Kida \nLanguage-Team\: Japanese (http\://www.transifex.com/projects/p/gephi/language/ja/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ja\nPlural-Forms\: nplurals\=1; plural\=0;\n - -GeneralNumberListStatisticsReportUI.configureBoxPlotButton.text=\u7bb1\u9aed\u56f3\u306e\u69cb\u6210 - -GeneralNumberListStatisticsReportUI.configureScatterPlotButton.text_1=\u6563\u5e03\u56f3\u306e\u69cb\u6210 - -GeneralNumberListStatisticsReportUI.showReportButton.text=\u5831\u544a\u3092\u8868\u793a - -GeneralNumberListStatisticsReportUI.useLinesCheckBox.text=\u7dda\u3092\u8868\u793a - -GeneralNumberListStatisticsReportUI.useLinearRegression.text=\u56de\u5e30\u76f4\u7dda\u3092\u8868\u793a - -GeneralNumberListStatisticsReportUI.configureHistogramButton.text=\u30d2\u30b9\u30c8\u30b0\u30e9\u30e0\u3092\u69cb\u6210 - -GeneralNumberListStatisticsReportUI.divisionsLabel.text=\u90e8\u9580\: +GeneralNumberListStatisticsReportUI.configureBoxPlotButton.text=\u7bb1\u9aed\u56f3\u306e\u69cb\u6210 +GeneralNumberListStatisticsReportUI.configureScatterPlotButton.text_1=\u6563\u5e03\u56f3\u306e\u69cb\u6210 +GeneralNumberListStatisticsReportUI.showReportButton.text=\u5831\u544a\u3092\u8868\u793a +GeneralNumberListStatisticsReportUI.useLinesCheckBox.text=\u7dda\u3092\u8868\u793a +GeneralNumberListStatisticsReportUI.useLinearRegression.text=\u56de\u5e30\u76f4\u7dda\u3092\u8868\u793a +GeneralNumberListStatisticsReportUI.configureHistogramButton.text=\u30d2\u30b9\u30c8\u30b0\u30e9\u30e0\u3092\u69cb\u6210 +GeneralNumberListStatisticsReportUI.divisionsLabel.text=\u90e8\u9580: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_ko.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_ko.properties new file mode 100644 index 0000000000..f53de0f3d3 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_ko.properties @@ -0,0 +1,9 @@ + + +GeneralNumberListStatisticsReportUI.configureScatterPlotButton.text_1=\uC0B0\uD3EC\uB3C4 \uAD6C\uC131 +GeneralNumberListStatisticsReportUI.configureHistogramButton.text=\uD788\uC2A4\uD1A0\uADF8\uB7A8 \uAD6C\uC131 +GeneralNumberListStatisticsReportUI.configureBoxPlotButton.text=\uBC15\uC2A4 \uD50C\uB86F \uAD6C\uC131 +GeneralNumberListStatisticsReportUI.useLinesCheckBox.text=\uC120 \uBCF4\uAE30 +GeneralNumberListStatisticsReportUI.divisionsLabel.text=\uAD6C\uBD84: +GeneralNumberListStatisticsReportUI.useLinearRegression.text=\uC120\uD615 \uD68C\uAE30 \uBD84\uC11D \uBCF4\uAE30 +GeneralNumberListStatisticsReportUI.showReportButton.text=\uBCF4\uACE0\uC11C \uBCF4\uAE30 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_nl.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_nl.properties new file mode 100644 index 0000000000..5f9c320d22 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_nl.properties @@ -0,0 +1,7 @@ +GeneralNumberListStatisticsReportUI.configureBoxPlotButton.text=Configure box plot +GeneralNumberListStatisticsReportUI.configureScatterPlotButton.text_1=Configure scatter plot +GeneralNumberListStatisticsReportUI.showReportButton.text=Show report +GeneralNumberListStatisticsReportUI.useLinesCheckBox.text=Show lines +GeneralNumberListStatisticsReportUI.useLinearRegression.text=Show linear regression +GeneralNumberListStatisticsReportUI.configureHistogramButton.text=Histogram configureren +GeneralNumberListStatisticsReportUI.divisionsLabel.text=Divisions: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_pt_BR.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_pt_BR.properties index b0396a0b36..d6bca59900 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_pt_BR.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_pt_BR.properties @@ -1,21 +1,7 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# C\u00e9lio CJr , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-08 19\:11+0000\nLast-Translator\: C\u00e9lio Faria Jr. \nLanguage-Team\: Portuguese (Brazil) (http\://www.transifex.com/projects/p/gephi/language/pt_BR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt_BR\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -GeneralNumberListStatisticsReportUI.configureBoxPlotButton.text=Configurar gr\u00e1fico de caixa - -GeneralNumberListStatisticsReportUI.configureScatterPlotButton.text_1=Configurar gr\u00e1fico de dispers\u00e3o - -GeneralNumberListStatisticsReportUI.showReportButton.text=Exibir relat\u00f3rio - -GeneralNumberListStatisticsReportUI.useLinesCheckBox.text=Exibir linhas - -GeneralNumberListStatisticsReportUI.useLinearRegression.text=Exibir regress\u00e3o linear - -GeneralNumberListStatisticsReportUI.configureHistogramButton.text=Configurar Histograma - -GeneralNumberListStatisticsReportUI.divisionsLabel.text=Divis\u00f5es\: +GeneralNumberListStatisticsReportUI.configureBoxPlotButton.text=Configurar grαfico de caixa +GeneralNumberListStatisticsReportUI.configureScatterPlotButton.text_1=Configurar grαfico de dispersγo +GeneralNumberListStatisticsReportUI.showReportButton.text=Exibir relatσrio +GeneralNumberListStatisticsReportUI.useLinesCheckBox.text=Exibir linhas +GeneralNumberListStatisticsReportUI.useLinearRegression.text=Exibir regressγo linear +GeneralNumberListStatisticsReportUI.configureHistogramButton.text=Configurar Histograma +GeneralNumberListStatisticsReportUI.divisionsLabel.text=Divisυes: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_ro.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_ro.properties new file mode 100644 index 0000000000..e21ca5ef33 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_ro.properties @@ -0,0 +1,9 @@ + + +GeneralNumberListStatisticsReportUI.configureBoxPlotButton.text=Configureaz\u0103 diagrama boxplot +GeneralNumberListStatisticsReportUI.configureScatterPlotButton.text_1=Configureaz\u0103 diagrama de dispersie +GeneralNumberListStatisticsReportUI.showReportButton.text=Afi\u0219eaz\u0103 raportul +GeneralNumberListStatisticsReportUI.useLinesCheckBox.text=Afi\u0219eaz\u0103 liniile +GeneralNumberListStatisticsReportUI.configureHistogramButton.text=Configureaz\u0103 histograma +GeneralNumberListStatisticsReportUI.divisionsLabel.text=Diviziuni: +GeneralNumberListStatisticsReportUI.useLinearRegression.text=Afi\u0219eaz\u0103 regresia liniar\u0103 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_ru.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_ru.properties index 4f20c8d2c0..be0b6a2bc1 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_ru.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_ru.properties @@ -1,22 +1,7 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# , 2011. -# FIRST AUTHOR , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-10-11 07\:56+0000\nLast-Translator\: Altsoph \nLanguage-Team\: Russian (http\://www.transifex.com/projects/p/gephi/language/ru/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ru\nPlural-Forms\: nplurals\=3; plural\=(n%10\=\=1 && n%100\!\=11 ? 0 \: n%10>\=2 && n%10<\=4 && (n%100<10 || n%100>\=20) ? 1 \: 2);\n - -GeneralNumberListStatisticsReportUI.configureBoxPlotButton.text=\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043a\u043e\u0440\u043e\u0431\u0447\u0430\u0442\u0443\u044e \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0443 - -GeneralNumberListStatisticsReportUI.configureScatterPlotButton.text_1=\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0442\u043e\u0447\u0435\u0447\u043d\u0443\u044e \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0443 - -GeneralNumberListStatisticsReportUI.showReportButton.text=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0442\u0447\u0451\u0442 - -GeneralNumberListStatisticsReportUI.useLinesCheckBox.text=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043b\u0438\u043d\u0438\u0438 - -GeneralNumberListStatisticsReportUI.useLinearRegression.text=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043b\u0438\u043d\u0435\u0439\u043d\u0443\u044e \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u044e - -GeneralNumberListStatisticsReportUI.configureHistogramButton.text=\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u0443 - -GeneralNumberListStatisticsReportUI.divisionsLabel.text=\u0420\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f\: +GeneralNumberListStatisticsReportUI.configureBoxPlotButton.text=\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043a\u043e\u0440\u043e\u0431\u0447\u0430\u0442\u0443\u044e \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0443 +GeneralNumberListStatisticsReportUI.configureScatterPlotButton.text_1=\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0442\u043e\u0447\u0435\u0447\u043d\u0443\u044e \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0443 +GeneralNumberListStatisticsReportUI.showReportButton.text=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0442\u0447\u0451\u0442 +GeneralNumberListStatisticsReportUI.useLinesCheckBox.text=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043b\u0438\u043d\u0438\u0438 +GeneralNumberListStatisticsReportUI.useLinearRegression.text=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043b\u0438\u043d\u0435\u0439\u043d\u0443\u044e \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u044e +GeneralNumberListStatisticsReportUI.configureHistogramButton.text=\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u0443 +GeneralNumberListStatisticsReportUI.divisionsLabel.text=\u0420\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_th.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_th.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_th.properties @@ -0,0 +1 @@ + diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_tr.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_tr.properties new file mode 100644 index 0000000000..0de84b8967 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_tr.properties @@ -0,0 +1,7 @@ +GeneralNumberListStatisticsReportUI.configureBoxPlotButton.text=Configure box plot +GeneralNumberListStatisticsReportUI.configureScatterPlotButton.text_1=Configure scatter plot +GeneralNumberListStatisticsReportUI.showReportButton.text=Show report +GeneralNumberListStatisticsReportUI.useLinesCheckBox.text=Show lines +GeneralNumberListStatisticsReportUI.useLinearRegression.text=Do\u011frusal ba\u011flan\u0131m\u0131 (do\u011frusal regresyon) gφster +GeneralNumberListStatisticsReportUI.configureHistogramButton.text=Configure Histogram +GeneralNumberListStatisticsReportUI.divisionsLabel.text=Divisions: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_uk.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_uk.properties new file mode 100644 index 0000000000..f4f88fce6f --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_uk.properties @@ -0,0 +1,7 @@ +GeneralNumberListStatisticsReportUI.configureBoxPlotButton.text=\u041D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u0442\u0438 \u0434\u0456\u0430\u0433\u0440\u0430\u043C\u0443 \u043A\u043E\u0440\u043E\u0431\u043A\u0438 +GeneralNumberListStatisticsReportUI.configureScatterPlotButton.text_1=\u041D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u0442\u0438 \u0434\u0456\u0430\u0433\u0440\u0430\u043C\u0443 \u0440\u043E\u0437\u0441\u0456\u044E\u0432\u0430\u043D\u043D\u044F +GeneralNumberListStatisticsReportUI.showReportButton.text=\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u0438 \u0437\u0432\u0456\u0442 +GeneralNumberListStatisticsReportUI.useLinesCheckBox.text=\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u0438 \u0440\u044F\u0434\u043A\u0438 +GeneralNumberListStatisticsReportUI.useLinearRegression.text=\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u0438 \u043B\u0456\u043D\u0456\u0439\u043D\u0443 \u0440\u0435\u0433\u0440\u0435\u0441\u0456\u044E +GeneralNumberListStatisticsReportUI.configureHistogramButton.text=\u041D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u0442\u0438 \u0433\u0456\u0441\u0442\u043E\u0433\u0440\u0430\u043C\u0443 +GeneralNumberListStatisticsReportUI.divisionsLabel.text=\u041F\u0456\u0434\u0440\u043E\u0437\u0434\u0456\u043B\u0438: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_zh_CN.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_zh_CN.properties index 0e04877599..ceb7d5170d 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_zh_CN.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_zh_CN.properties @@ -1,20 +1,7 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-08 00\:18+0000\nLast-Translator\: gephi \nLanguage-Team\: Chinese (China) (http\://www.transifex.com/projects/p/gephi/language/zh_CN/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: zh_CN\nPlural-Forms\: nplurals\=1; plural\=0;\n - -GeneralNumberListStatisticsReportUI.configureBoxPlotButton.text=\u914d\u7f6e\u76d2\u578b\u56fe - -GeneralNumberListStatisticsReportUI.configureScatterPlotButton.text_1=\u914d\u7f6e\u6563\u70b9\u56fe - -GeneralNumberListStatisticsReportUI.showReportButton.text=\u663e\u793a\u62a5\u544a - -GeneralNumberListStatisticsReportUI.useLinesCheckBox.text=\u663e\u793a\u7ebf - -GeneralNumberListStatisticsReportUI.useLinearRegression.text=\u663e\u793a\u7ebf\u6027\u56de\u5f52 - -GeneralNumberListStatisticsReportUI.configureHistogramButton.text=\u914d\u7f6e\u76f4\u65b9\u56fe - -GeneralNumberListStatisticsReportUI.divisionsLabel.text=\u5206\u7c7b\uff1a +GeneralNumberListStatisticsReportUI.configureBoxPlotButton.text=\u914d\u7f6e\u76d2\u578b\u56fe +GeneralNumberListStatisticsReportUI.configureScatterPlotButton.text_1=\u914d\u7f6e\u6563\u70b9\u56fe +GeneralNumberListStatisticsReportUI.showReportButton.text=\u663e\u793a\u62a5\u544a +GeneralNumberListStatisticsReportUI.useLinesCheckBox.text=\u663e\u793a\u7ebf +GeneralNumberListStatisticsReportUI.useLinearRegression.text=\u663e\u793a\u7ebf\u6027\u56de\u5f52 +GeneralNumberListStatisticsReportUI.configureHistogramButton.text=\u914d\u7f6e\u76f4\u65b9\u56fe +GeneralNumberListStatisticsReportUI.divisionsLabel.text=\u5206\u7c7b\uff1a diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_zh_TW.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_zh_TW.properties new file mode 100644 index 0000000000..683eb6d3fe --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/Bundle_zh_TW.properties @@ -0,0 +1,7 @@ +GeneralNumberListStatisticsReportUI.configureBoxPlotButton.text=Configure box plot +GeneralNumberListStatisticsReportUI.configureScatterPlotButton.text_1=Configure scatter plot +GeneralNumberListStatisticsReportUI.showReportButton.text=Show report +GeneralNumberListStatisticsReportUI.useLinesCheckBox.text=Show lines +GeneralNumberListStatisticsReportUI.useLinearRegression.text=Show linear regression +GeneralNumberListStatisticsReportUI.configureHistogramButton.text=Configure Histogram +GeneralNumberListStatisticsReportUI.divisionsLabel.text=Divisions: diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/cs.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/cs.po deleted file mode 100644 index 723de910fd..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/cs.po +++ /dev/null @@ -1,40 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# ZbynΔ›k Schwarz , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-02-27 16:06+0000\n" -"Last-Translator: ZbynΔ›k Schwarz \n" -"Language-Team: Czech (http://www.transifex.com/projects/p/gephi/language/cs/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: cs\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" - -msgid "GeneralNumberListStatisticsReportUI.configureBoxPlotButton.text" -msgstr "Nastavit burzovnΓ­ graf" - -msgid "GeneralNumberListStatisticsReportUI.configureScatterPlotButton.text_1" -msgstr "Nastavit bodovΓ½ graf" - -msgid "GeneralNumberListStatisticsReportUI.showReportButton.text" -msgstr "Zobrazit zΓ‘znam" - -msgid "GeneralNumberListStatisticsReportUI.useLinesCheckBox.text" -msgstr "Zobrazit čÑry" - -msgid "GeneralNumberListStatisticsReportUI.useLinearRegression.text" -msgstr "Zobrazit lineΓ‘rnΓ­ regresi" - -msgid "GeneralNumberListStatisticsReportUI.configureHistogramButton.text" -msgstr "Nastavit histogram" - -msgid "GeneralNumberListStatisticsReportUI.divisionsLabel.text" -msgstr "OddΓ­ly:" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/es.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/es.po deleted file mode 100644 index b8c72dd01b..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/es.po +++ /dev/null @@ -1,40 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-04 23:10+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/gephi/language/es/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -msgid "GeneralNumberListStatisticsReportUI.configureBoxPlotButton.text" -msgstr "Configurar diagrama de cajas" - -msgid "GeneralNumberListStatisticsReportUI.configureScatterPlotButton.text_1" -msgstr "Configurar diagrama de dispersiΓ³n" - -msgid "GeneralNumberListStatisticsReportUI.showReportButton.text" -msgstr "Mostrar informe" - -msgid "GeneralNumberListStatisticsReportUI.useLinesCheckBox.text" -msgstr "Mostrar lΓ­neas" - -msgid "GeneralNumberListStatisticsReportUI.useLinearRegression.text" -msgstr "Mostrar regresiΓ³n lineal" - -msgid "GeneralNumberListStatisticsReportUI.configureHistogramButton.text" -msgstr "Configurar histograma:" - -msgid "GeneralNumberListStatisticsReportUI.divisionsLabel.text" -msgstr "Divisiones:" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/fr.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/fr.po deleted file mode 100644 index 45a28c2a6d..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/fr.po +++ /dev/null @@ -1,40 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-04 23:10+0000\n" -"Last-Translator: gephi \n" -"Language-Team: French (http://www.transifex.com/projects/p/gephi/language/fr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "GeneralNumberListStatisticsReportUI.configureBoxPlotButton.text" -msgstr "Configurer la boΓte Γ  moustaches" - -msgid "GeneralNumberListStatisticsReportUI.configureScatterPlotButton.text_1" -msgstr "Configurer le nuage de points" - -msgid "GeneralNumberListStatisticsReportUI.showReportButton.text" -msgstr "Afficher le rapport" - -msgid "GeneralNumberListStatisticsReportUI.useLinesCheckBox.text" -msgstr "Afficher les lignes" - -msgid "GeneralNumberListStatisticsReportUI.useLinearRegression.text" -msgstr "Afficher la rΓ©gression linΓ©aire" - -msgid "GeneralNumberListStatisticsReportUI.configureHistogramButton.text" -msgstr "Configurer l'histogramme" - -msgid "GeneralNumberListStatisticsReportUI.divisionsLabel.text" -msgstr "Divisions :" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/ja.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/ja.po deleted file mode 100644 index e70808cc39..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/ja.po +++ /dev/null @@ -1,40 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-09-02 10:57+0000\n" -"Last-Translator: Siro Kida \n" -"Language-Team: Japanese (http://www.transifex.com/projects/p/gephi/language/ja/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ja\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "GeneralNumberListStatisticsReportUI.configureBoxPlotButton.text" -msgstr "η±ι«­ε›³γζ§‹ζˆ" - -msgid "GeneralNumberListStatisticsReportUI.configureScatterPlotButton.text_1" -msgstr "ζ•£εΈƒε›³γζ§‹ζˆ" - -msgid "GeneralNumberListStatisticsReportUI.showReportButton.text" -msgstr "ε ±ε‘Šγ‚’θ‘¨η€Ί" - -msgid "GeneralNumberListStatisticsReportUI.useLinesCheckBox.text" -msgstr "η·šγ‚’θ‘¨η€Ί" - -msgid "GeneralNumberListStatisticsReportUI.useLinearRegression.text" -msgstr "ε›žεΈ°η›΄η·šγ‚’θ‘¨η€Ί" - -msgid "GeneralNumberListStatisticsReportUI.configureHistogramButton.text" -msgstr "γƒ’γ‚Ήγƒˆγ‚°γƒ©γƒ γ‚’ζ§‹ζˆ" - -msgid "GeneralNumberListStatisticsReportUI.divisionsLabel.text" -msgstr "部門:" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/org-gephi-datalab-plugin-manipulators-ui.pot b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/org-gephi-datalab-plugin-manipulators-ui.pot deleted file mode 100644 index c061965877..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/org-gephi-datalab-plugin-manipulators-ui.pot +++ /dev/null @@ -1,37 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# Gephi Team , 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: Gephi 0.8\n" -"Report-Msgid-Bugs-To: gephi.team@lists.launchpad.net\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-05 14:52+0200\n" -"Last-Translator: Mathieu Bastian \n" -"Language-Team: English \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "GeneralNumberListStatisticsReportUI.configureBoxPlotButton.text" -msgstr "Configure box plot" - -msgid "GeneralNumberListStatisticsReportUI.configureScatterPlotButton.text_1" -msgstr "Configure scatter plot" - -msgid "GeneralNumberListStatisticsReportUI.showReportButton.text" -msgstr "Show report" - -msgid "GeneralNumberListStatisticsReportUI.useLinesCheckBox.text" -msgstr "Show lines" - -msgid "GeneralNumberListStatisticsReportUI.useLinearRegression.text" -msgstr "Show linear regression" - -msgid "GeneralNumberListStatisticsReportUI.configureHistogramButton.text" -msgstr "Configure Histogram" - -msgid "GeneralNumberListStatisticsReportUI.divisionsLabel.text" -msgstr "Divisions:" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/pt_BR.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/pt_BR.po deleted file mode 100644 index 3051d66cb0..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/pt_BR.po +++ /dev/null @@ -1,40 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# CΓ©lio CJr , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-08 19:11+0000\n" -"Last-Translator: CΓ©lio Faria Jr. \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/gephi/language/pt_BR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "GeneralNumberListStatisticsReportUI.configureBoxPlotButton.text" -msgstr "Configurar grΓ‘fico de caixa" - -msgid "GeneralNumberListStatisticsReportUI.configureScatterPlotButton.text_1" -msgstr "Configurar grΓ‘fico de dispersΓ£o" - -msgid "GeneralNumberListStatisticsReportUI.showReportButton.text" -msgstr "Exibir relatΓ³rio" - -msgid "GeneralNumberListStatisticsReportUI.useLinesCheckBox.text" -msgstr "Exibir linhas" - -msgid "GeneralNumberListStatisticsReportUI.useLinearRegression.text" -msgstr "Exibir regressΓ£o linear" - -msgid "GeneralNumberListStatisticsReportUI.configureHistogramButton.text" -msgstr "Configurar Histograma" - -msgid "GeneralNumberListStatisticsReportUI.divisionsLabel.text" -msgstr "DivisΓ΅es:" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/ru.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/ru.po deleted file mode 100644 index 37dd593bee..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/ru.po +++ /dev/null @@ -1,41 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# , 2011. -# FIRST AUTHOR , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-10-11 07:56+0000\n" -"Last-Translator: Altsoph \n" -"Language-Team: Russian (http://www.transifex.com/projects/p/gephi/language/ru/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -msgid "GeneralNumberListStatisticsReportUI.configureBoxPlotButton.text" -msgstr "ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΠΎΡ€ΠΎΠ±Ρ‡Π°Ρ‚ΡƒΡŽ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡƒ" - -msgid "GeneralNumberListStatisticsReportUI.configureScatterPlotButton.text_1" -msgstr "ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡Π΅Ρ‡Π½ΡƒΡŽ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡƒ" - -msgid "GeneralNumberListStatisticsReportUI.showReportButton.text" -msgstr "ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΡ‚Ρ‡Ρ‘Ρ‚" - -msgid "GeneralNumberListStatisticsReportUI.useLinesCheckBox.text" -msgstr "ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π»ΠΈΠ½ΠΈΠΈ" - -msgid "GeneralNumberListStatisticsReportUI.useLinearRegression.text" -msgstr "ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π»ΠΈΠ½Π΅ΠΉΠ½ΡƒΡŽ Ρ€Π΅Π³Ρ€Π΅ΡΡΠΈΡŽ" - -msgid "GeneralNumberListStatisticsReportUI.configureHistogramButton.text" -msgstr "ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ гистограмму" - -msgid "GeneralNumberListStatisticsReportUI.divisionsLabel.text" -msgstr "РазбиСния:" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/zh_CN.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/zh_CN.po deleted file mode 100644 index 58e20fa4d2..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/ui/zh_CN.po +++ /dev/null @@ -1,39 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-08 00:18+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/gephi/language/zh_CN/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "GeneralNumberListStatisticsReportUI.configureBoxPlotButton.text" -msgstr "配η½η›’εž‹ε›Ύ" - -msgid "GeneralNumberListStatisticsReportUI.configureScatterPlotButton.text_1" -msgstr "配η½ζ•£η‚Ήε›Ύ" - -msgid "GeneralNumberListStatisticsReportUI.showReportButton.text" -msgstr "显瀺ζŠ₯ε‘Š" - -msgid "GeneralNumberListStatisticsReportUI.useLinesCheckBox.text" -msgstr "显瀺线" - -msgid "GeneralNumberListStatisticsReportUI.useLinearRegression.text" -msgstr "ζ˜Ύη€ΊηΊΏζ€§ε›žε½’" - -msgid "GeneralNumberListStatisticsReportUI.configureHistogramButton.text" -msgstr "配η½η›΄ζ–Ήε›Ύ" - -msgid "GeneralNumberListStatisticsReportUI.divisionsLabel.text" -msgstr "εˆ†η±»οΌš" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_ar.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_ar.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_ar.properties @@ -0,0 +1 @@ + diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_ca.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_ca.properties new file mode 100644 index 0000000000..68e51502a7 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_ca.properties @@ -0,0 +1,3 @@ +ClearAttributeValue.name=Neteja els valors +NumberListStatisticsReport.name=Mostra les estadνstiques +NumberListStatisticsReport.description=Calculates statistics of a dynamic number or number list cell. diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_cs.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_cs.properties index 427a728019..a64fc17f47 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_cs.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_cs.properties @@ -1,13 +1,3 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Zbyn\u011bk Schwarz , 2012. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-02-26 18\:24+0000\nLast-Translator\: Zbyn\u011bk Schwarz \nLanguage-Team\: Czech (http\://www.transifex.com/projects/p/gephi/language/cs/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: cs\nPlural-Forms\: nplurals\=3; plural\=(n\=\=1) ? 0 \: (n>\=2 && n<\=4) ? 1 \: 2;\n - -ClearAttributeValue.name=Vy\u010distit hodnotu - -NumberListStatisticsReport.name=Zobrazit statistiky - -NumberListStatisticsReport.description=Vypo\u010d\u00edt\u00e1 statistiky dynamick\u00e9ho \u010d\u00edsla nebo bu\u0148ku \u010d\u00edslovan\u00e9ho seznamu. +ClearAttributeValue.name=Vy\u010distit hodnotu +NumberListStatisticsReport.name=Zobrazit statistiky +NumberListStatisticsReport.description=Vypo\u010dνtα statistiky dynamickιho \u010dνsla nebo bu\u0148ku \u010dνslovanιho seznamu. diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_de.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_de.properties new file mode 100644 index 0000000000..4a50d52340 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_de.properties @@ -0,0 +1,3 @@ +ClearAttributeValue.name=Wert leeren +NumberListStatisticsReport.name=Statistik anzeigen +NumberListStatisticsReport.description=Berechnet Statistiken einer dynamischen Zahlen oder Zahlenlisten-Zelle diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_es.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_es.properties index be1f65d92a..7ead319c26 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_es.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_es.properties @@ -1,13 +1,3 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-04 23\:10+0000\nLast-Translator\: gephi \nLanguage-Team\: Spanish (http\://www.transifex.com/projects/p/gephi/language/es/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: es\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n - -ClearAttributeValue.name=Borrar valor - -NumberListStatisticsReport.name=Mostrar informe estad\u00edstico - -NumberListStatisticsReport.description=Calcula estad\u00edsticas de celdas con n\u00fameros din\u00e1micos o listas de n\u00fameros +ClearAttributeValue.name=Borrar valor +NumberListStatisticsReport.name=Mostrar informe estadνstico +NumberListStatisticsReport.description=Calcula estadνsticas de celdas con nϊmeros dinαmicos o listas de nϊmeros diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_fr.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_fr.properties index 5be698ac84..84bcd81b05 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_fr.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_fr.properties @@ -1,13 +1,3 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-04 23\:10+0000\nLast-Translator\: gephi \nLanguage-Team\: French (http\://www.transifex.com/projects/p/gephi/language/fr/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fr\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -ClearAttributeValue.name=Vider - -NumberListStatisticsReport.name=Afficher le rapport de statistiques - -NumberListStatisticsReport.description=Calcul les statistiques d'un nombre dynamique ou d'une cellule de liste num\u00e9rique, et affiche le rapport. +ClearAttributeValue.name=Vider +NumberListStatisticsReport.name=Afficher le rapport de statistiques +NumberListStatisticsReport.description=Calcul les statistiques d'un nombre dynamique ou d'une cellule de liste numιrique, et affiche le rapport. diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_he.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_he.properties new file mode 100644 index 0000000000..52ae1f1d7d --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_he.properties @@ -0,0 +1,3 @@ +ClearAttributeValue.name=Clear value +NumberListStatisticsReport.name=Show statistics +NumberListStatisticsReport.description=Calculates statistics of a dynamic number or number list cell. diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_hu.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_hu.properties new file mode 100644 index 0000000000..0f45a0ae02 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_hu.properties @@ -0,0 +1,5 @@ + + +NumberListStatisticsReport.description=Kisz\u00E1m\u00EDtja egy dinamikus sz\u00E1m vagy sz\u00E1mlista cella statisztik\u00E1it. +ClearAttributeValue.name=\u00C9rt\u00E9k t\u00F6rl\u00E9se +NumberListStatisticsReport.name=Statisztik\u00E1k megjelen\u00EDt\u00E9se diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_it.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_it.properties new file mode 100644 index 0000000000..52ae1f1d7d --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_it.properties @@ -0,0 +1,3 @@ +ClearAttributeValue.name=Clear value +NumberListStatisticsReport.name=Show statistics +NumberListStatisticsReport.description=Calculates statistics of a dynamic number or number list cell. diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_ja.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_ja.properties index b750056015..9517f27534 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_ja.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_ja.properties @@ -1,13 +1,3 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-27 08\:28+0000\nLast-Translator\: Siro Kida \nLanguage-Team\: Japanese (http\://www.transifex.com/projects/p/gephi/language/ja/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ja\nPlural-Forms\: nplurals\=1; plural\=0;\n - -ClearAttributeValue.name=\u5024\u306e\u30af\u30ea\u30a2 - -NumberListStatisticsReport.name=\u7d71\u8a08\u5024\u306e\u8868\u793a - -NumberListStatisticsReport.description=\u52d5\u7684\u306a\u6570\u5024\u307e\u305f\u306f\u6570\u5024\u306e\u30ea\u30b9\u30c8\u306e\u30bb\u30eb\u306e\u7d71\u8a08\u5024\u3092\u8a08\u7b97\u3002 +ClearAttributeValue.name=\u5024\u306e\u30af\u30ea\u30a2 +NumberListStatisticsReport.name=\u7d71\u8a08\u5024\u306e\u8868\u793a +NumberListStatisticsReport.description=\u52d5\u7684\u306a\u6570\u5024\u307e\u305f\u306f\u6570\u5024\u306e\u30ea\u30b9\u30c8\u306e\u30bb\u30eb\u306e\u7d71\u8a08\u5024\u3092\u8a08\u7b97\u3002 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_ko.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_ko.properties new file mode 100644 index 0000000000..134252c023 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_ko.properties @@ -0,0 +1,5 @@ + + +NumberListStatisticsReport.name=\uD1B5\uACC4\uCE58 \uBCF4\uC5EC \uC8FC\uAE30 +NumberListStatisticsReport.description=\uB3D9\uC801 \uC22B\uC790\uB098 \uC22B\uC790 \uB9AC\uC2A4\uD2B8 \uC140\uC758 \uD1B5\uACC4\uCE58\uB97C \uACC4\uC0B0\uD55C\uB2E4. +ClearAttributeValue.name=\uAC12 \uC9C0\uC6B0\uAE30 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_nl.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_nl.properties new file mode 100644 index 0000000000..52ae1f1d7d --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_nl.properties @@ -0,0 +1,3 @@ +ClearAttributeValue.name=Clear value +NumberListStatisticsReport.name=Show statistics +NumberListStatisticsReport.description=Calculates statistics of a dynamic number or number list cell. diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_pt_BR.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_pt_BR.properties index ccf99a5cd5..031b7f2a9d 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_pt_BR.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_pt_BR.properties @@ -1,13 +1,3 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# C\u00e9lio CJr , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-05 18\:11+0000\nLast-Translator\: C\u00e9lio Faria Jr. \nLanguage-Team\: Portuguese (Brazil) (http\://www.transifex.com/projects/p/gephi/language/pt_BR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt_BR\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n - -ClearAttributeValue.name=Limpar valor - -NumberListStatisticsReport.name=Exibir estat\u00edsticas - -NumberListStatisticsReport.description=Calcula estat\u00edsticas de c\u00e9lulas com n\u00fameros din\u00e2micos ou listas de n\u00fameros +ClearAttributeValue.name=Limpar valor +NumberListStatisticsReport.name=Exibir estatνsticas +NumberListStatisticsReport.description=Calcula estatνsticas de cιlulas com nϊmeros dinβmicos ou listas de nϊmeros diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_ro.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_ro.properties new file mode 100644 index 0000000000..495345d5f1 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_ro.properties @@ -0,0 +1,5 @@ + + +ClearAttributeValue.name=Gole\u0219te valoarea +NumberListStatisticsReport.name=Afi\u0219eaz\u0103 statistici +NumberListStatisticsReport.description=Calculeaz\u0103 statisticile unui num\u0103r dinamic sau ale unei celule de liste de numere. diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_ru.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_ru.properties index f382ca8c3a..3768be22e9 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_ru.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_ru.properties @@ -1,13 +1,3 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2011. -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2011-08-08 13\:16+0000\nLast-Translator\: gephi \nLanguage-Team\: Russian (http\://www.transifex.com/projects/p/gephi/language/ru/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ru\nPlural-Forms\: nplurals\=3; plural\=(n%10\=\=1 && n%100\!\=11 ? 0 \: n%10>\=2 && n%10<\=4 && (n%100<10 || n%100>\=20) ? 1 \: 2);\n - -ClearAttributeValue.name=\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f - -NumberListStatisticsReport.name=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 - -NumberListStatisticsReport.description=\u041f\u043e\u0434\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u0438\u043b\u0438 \u0441\u043f\u0438\u0441\u043a\u0430. +ClearAttributeValue.name=\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f +NumberListStatisticsReport.name=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 +NumberListStatisticsReport.description=\u041f\u043e\u0434\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u0438\u043b\u0438 \u0441\u043f\u0438\u0441\u043a\u0430. diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_th.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_th.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_th.properties @@ -0,0 +1 @@ + diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_tr.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_tr.properties new file mode 100644 index 0000000000..52ae1f1d7d --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_tr.properties @@ -0,0 +1,3 @@ +ClearAttributeValue.name=Clear value +NumberListStatisticsReport.name=Show statistics +NumberListStatisticsReport.description=Calculates statistics of a dynamic number or number list cell. diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_uk.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_uk.properties new file mode 100644 index 0000000000..f0a8480c49 --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_uk.properties @@ -0,0 +1,3 @@ +NumberListStatisticsReport.description=\u041E\u0431\u0447\u0438\u0441\u043B\u044E\u0454 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0443 \u0434\u0438\u043D\u0430\u043C\u0456\u0447\u043D\u043E\u0433\u043E \u0447\u0438\u0441\u043B\u0430 \u0430\u0431\u043E \u043A\u043E\u043C\u0456\u0440\u043A\u0438 \u0441\u043F\u0438\u0441\u043A\u0443 \u043D\u043E\u043C\u0435\u0440\u0456\u0432. +ClearAttributeValue.name=\u0427\u0456\u0442\u043A\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F +NumberListStatisticsReport.name=\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u0438 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0443 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_zh_CN.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_zh_CN.properties index dea5711ab2..22f3d2909c 100644 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_zh_CN.properties +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_zh_CN.properties @@ -1,12 +1,3 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -!=Project-Id-Version\: Gephi\nReport-Msgid-Bugs-To\: https\://github.com/gephi/gephi/issues\nPOT-Creation-Date\: 2011-08-05 14\:52+0200\nPO-Revision-Date\: 2012-01-08 00\:18+0000\nLast-Translator\: gephi \nLanguage-Team\: Chinese (China) (http\://www.transifex.com/projects/p/gephi/language/zh_CN/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: zh_CN\nPlural-Forms\: nplurals\=1; plural\=0;\n - ClearAttributeValue.name=\u5220\u9664\u6570\u503c - NumberListStatisticsReport.name=\u663e\u793a\u7edf\u8ba1\u5c5e\u6027 - -NumberListStatisticsReport.description=\u8ba1\u7b97\u52a8\u6001\u6570\u503c\u6216\u8005\u6570\u636e\u5217\u8868\u5355\u5143\u7684\u7edf\u8ba1\u5c5e\u6027 +NumberListStatisticsReport.description=\u8BA1\u7B97\u52A8\u6001\u6570\u503C\u6216\u8005\u6570\u5B57\u5217\u8868\u5355\u5143\u7684\u7EDF\u8BA1\u6570\u636E\u3002 diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_zh_TW.properties b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_zh_TW.properties new file mode 100644 index 0000000000..52ae1f1d7d --- /dev/null +++ b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/Bundle_zh_TW.properties @@ -0,0 +1,3 @@ +ClearAttributeValue.name=Clear value +NumberListStatisticsReport.name=Show statistics +NumberListStatisticsReport.description=Calculates statistics of a dynamic number or number list cell. diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/cs.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/cs.po deleted file mode 100644 index cc81900e73..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/cs.po +++ /dev/null @@ -1,28 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# ZbynΔ›k Schwarz , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-02-26 18:24+0000\n" -"Last-Translator: ZbynΔ›k Schwarz \n" -"Language-Team: Czech (http://www.transifex.com/projects/p/gephi/language/cs/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: cs\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" - -msgid "ClearAttributeValue.name" -msgstr "Vyčistit hodnotu" - -msgid "NumberListStatisticsReport.name" -msgstr "Zobrazit statistiky" - -msgid "NumberListStatisticsReport.description" -msgstr "VypočítΓ‘ statistiky dynamickΓ©ho čísla nebo buňku číslovanΓ©ho seznamu." diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/es.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/es.po deleted file mode 100644 index 0e7c6df58b..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/es.po +++ /dev/null @@ -1,28 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-04 23:10+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/gephi/language/es/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -msgid "ClearAttributeValue.name" -msgstr "Borrar valor" - -msgid "NumberListStatisticsReport.name" -msgstr "Mostrar informe estadΓ­stico" - -msgid "NumberListStatisticsReport.description" -msgstr "Calcula estadΓ­sticas de celdas con nΓΊmeros dinΓ‘micos o listas de nΓΊmeros" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/fr.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/fr.po deleted file mode 100644 index f4722845b9..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/fr.po +++ /dev/null @@ -1,28 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-04 23:10+0000\n" -"Last-Translator: gephi \n" -"Language-Team: French (http://www.transifex.com/projects/p/gephi/language/fr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "ClearAttributeValue.name" -msgstr "Vider" - -msgid "NumberListStatisticsReport.name" -msgstr "Afficher le rapport de statistiques" - -msgid "NumberListStatisticsReport.description" -msgstr "Calcul les statistiques d'un nombre dynamique ou d'une cellule de liste numΓ©rique, et affiche le rapport." diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/ja.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/ja.po deleted file mode 100644 index 4704ce40a6..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/ja.po +++ /dev/null @@ -1,28 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# Siro Kida , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-27 08:28+0000\n" -"Last-Translator: Siro Kida \n" -"Language-Team: Japanese (http://www.transifex.com/projects/p/gephi/language/ja/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ja\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "ClearAttributeValue.name" -msgstr "ε€€γγ‚―γƒͺγ‚’" - -msgid "NumberListStatisticsReport.name" -msgstr "η΅±θ¨ˆε€€γθ‘¨η€Ί" - -msgid "NumberListStatisticsReport.description" -msgstr "ε‹•ηš„γͺζ•°ε€€γΎγŸγ―ζ•°ε€€γγƒͺγ‚Ήγƒˆγγ‚»γƒ«γη΅±θ¨ˆε€€γ‚’θ¨ˆη—。" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/org-gephi-datalab-plugin-manipulators-values.pot b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/org-gephi-datalab-plugin-manipulators-values.pot deleted file mode 100644 index 24d5fbddc8..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/org-gephi-datalab-plugin-manipulators-values.pot +++ /dev/null @@ -1,25 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# Gephi Team , 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: Gephi 0.8\n" -"Report-Msgid-Bugs-To: gephi.team@lists.launchpad.net\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-05 14:52+0200\n" -"Last-Translator: Mathieu Bastian \n" -"Language-Team: English \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "ClearAttributeValue.name" -msgstr "Clear value" - -msgid "NumberListStatisticsReport.name" -msgstr "Show statistics" - -msgid "NumberListStatisticsReport.description" -msgstr "Calculates statistics of a dynamic number or number list cell." diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/pt_BR.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/pt_BR.po deleted file mode 100644 index fa2f4668fe..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/pt_BR.po +++ /dev/null @@ -1,28 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# CΓ©lio CJr , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-05 18:11+0000\n" -"Last-Translator: CΓ©lio Faria Jr. \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/gephi/language/pt_BR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "ClearAttributeValue.name" -msgstr "Limpar valor" - -msgid "NumberListStatisticsReport.name" -msgstr "Exibir estatΓ­sticas" - -msgid "NumberListStatisticsReport.description" -msgstr "Calcula estatΓ­sticas de cΓ©lulas com nΓΊmeros dinΓ’micos ou listas de nΓΊmeros" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/ru.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/ru.po deleted file mode 100644 index d2c6a69d7e..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/ru.po +++ /dev/null @@ -1,28 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-08 13:16+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Russian (http://www.transifex.com/projects/p/gephi/language/ru/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -msgid "ClearAttributeValue.name" -msgstr "ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ значСния" - -msgid "NumberListStatisticsReport.name" -msgstr "ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ статистику" - -msgid "NumberListStatisticsReport.description" -msgstr "ΠŸΠΎΠ΄ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ статистику динамичСского числа ΠΈΠ»ΠΈ списка." diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/zh_CN.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/zh_CN.po deleted file mode 100644 index 15cebe53d6..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/manipulators/values/zh_CN.po +++ /dev/null @@ -1,27 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-08 00:18+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/gephi/language/zh_CN/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "ClearAttributeValue.name" -msgstr "εˆ ι™€ζ•°ε€Ό" - -msgid "NumberListStatisticsReport.name" -msgstr "显瀺统θ‘ε±žζ€§" - -msgid "NumberListStatisticsReport.description" -msgstr "θ‘η—εŠ¨ζ€ζ•°ε€Όζˆ–θ€…ζ•°ζεˆ—θ‘¨ε•ε…ƒηš„η»Ÿθ‘ε±žζ€§" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/org-gephi-datalab-plugin.pot b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/org-gephi-datalab-plugin.pot deleted file mode 100644 index 1391892630..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/org-gephi-datalab-plugin.pot +++ /dev/null @@ -1,19 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# Gephi Team , 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: Gephi 0.8\n" -"Report-Msgid-Bugs-To: gephi.team@lists.launchpad.net\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-05 14:52+0200\n" -"Last-Translator: Mathieu Bastian \n" -"Language-Team: English \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "OpenIDE-Module-Short-Description" -msgstr "Implementation of some Data Laboratory manipulators" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/pt_BR.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/pt_BR.po deleted file mode 100644 index 74609dbd84..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/pt_BR.po +++ /dev/null @@ -1,22 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# CΓ©lio CJr , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-05 18:10+0000\n" -"Last-Translator: CΓ©lio Faria Jr. \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/gephi/language/pt_BR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -msgid "OpenIDE-Module-Short-Description" -msgstr "ImplementaΓ§Γ£o de alguns manipuladores para o LaboratΓ³rio de Dados" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/ru.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/ru.po deleted file mode 100644 index 46132224f6..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/ru.po +++ /dev/null @@ -1,22 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -# FIRST AUTHOR , 2010. -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2011-08-08 13:16+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Russian (http://www.transifex.com/projects/p/gephi/language/ru/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -msgid "OpenIDE-Module-Short-Description" -msgstr "РСализация Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π›Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΈΠΈ Π”Π°Π½Π½Ρ‹Ρ…" diff --git a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/zh_CN.po b/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/zh_CN.po deleted file mode 100644 index d3d3fd33ac..0000000000 --- a/modules/DataLaboratoryPlugin/src/main/resources/org/gephi/datalab/plugin/zh_CN.po +++ /dev/null @@ -1,21 +0,0 @@ -# Translation file for Gephi. -# Copyright (C) 2011 Gephi contributors. -# This file is distributed under the same license as the Gephi package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Gephi\n" -"Report-Msgid-Bugs-To: https://github.com/gephi/gephi/issues\n" -"POT-Creation-Date: 2011-08-05 14:52+0200\n" -"PO-Revision-Date: 2012-01-08 00:18+0000\n" -"Last-Translator: gephi \n" -"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/gephi/language/zh_CN/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "OpenIDE-Module-Short-Description" -msgstr "δΈ€δΊ›ζ•°ζεžιͺŒε€ζ“δ½œηš„ε‰θ£…启用" diff --git a/modules/DesktopAppearance/pom.xml b/modules/DesktopAppearance/pom.xml new file mode 100644 index 0000000000..da28214b4d --- /dev/null +++ b/modules/DesktopAppearance/pom.xml @@ -0,0 +1,128 @@ + + + 4.0.0 + + gephi-parent + org.gephi + 0.11.3-SNAPSHOT + ../.. + + + org.gephi + desktop-appearance + 0.11.3-SNAPSHOT + nbm + + DesktopAppearance + + + + ${project.groupId} + project-api + + + ${project.groupId} + graph-api + + + ${project.groupId} + appearance-api + + + ${project.groupId} + appearance-plugin + + + ${project.groupId} + appearance-plugin-ui + + + org.netbeans.api + org-netbeans-modules-options-api + + + ${project.groupId} + ui-components + + + ${project.groupId} + ui-library-wrapper + + + ${project.groupId} + ui-utils + + + ${project.groupId} + utils + + + ${project.groupId} + core-library-wrapper + + + ${project.groupId} + desktop-icons + + + org.netbeans.api + org-openide-awt + + + org.netbeans.api + org-openide-util-lookup + + + org.netbeans.api + org-openide-util + + + org.netbeans.api + org-openide-windows + + + org.netbeans.api + org-netbeans-modules-settings + + + org.netbeans.api + org-openide-filesystems + + + org.netbeans.api + org-openide-nodes + + + org.netbeans.api + org-openide-util-ui + + + + + ${project.groupId} + graph-api + test + test-jar + + + ${project.groupId} + project-api + test-jar + test + + + + + + + org.apache.netbeans.utilities + nbm-maven-plugin + + + org.gephi.desktop.appearance + + + + + + diff --git a/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/AppearanceToolbar.java b/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/AppearanceToolbar.java new file mode 100644 index 0000000000..b5a2f7194c --- /dev/null +++ b/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/AppearanceToolbar.java @@ -0,0 +1,560 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.desktop.appearance; + +import java.awt.Component; +import java.awt.Font; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; +import java.awt.font.TextAttribute; +import java.beans.PropertyChangeEvent; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Enumeration; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.MissingResourceException; +import java.util.Set; +import javax.swing.AbstractButton; +import javax.swing.ButtonGroup; +import javax.swing.ButtonModel; +import javax.swing.Icon; +import javax.swing.JLabel; +import javax.swing.JToggleButton; +import javax.swing.JToolBar; +import javax.swing.SwingUtilities; +import javax.swing.UIManager; +import javax.swing.border.Border; +import org.gephi.appearance.api.Function; +import org.gephi.appearance.spi.TransformerCategory; +import org.gephi.appearance.spi.TransformerUI; +import org.gephi.ui.utils.UIUtils; +import org.openide.util.NbBundle; + +/** + * @author mbastian + */ +public class AppearanceToolbar implements AppearanceUIModelListener { + + protected final AppearanceUIController controller; + //Toolbars + private final CategoryToolbar categoryToolbar; + private final TransformerToolbar transformerToolbar; + private final ControlToolbar controlToolbar; + protected AppearanceUIModel model; + + public AppearanceToolbar(AppearanceUIController controller) { + this.controller = controller; + categoryToolbar = new CategoryToolbar(); + transformerToolbar = new TransformerToolbar(); + controlToolbar = new ControlToolbar(); + + controller.addPropertyChangeListener(this); + + AppearanceUIModel uimodel = controller.getModel(); + if (uimodel != null) { + setup(uimodel); + } + } + + public JToolBar getCategoryToolbar() { + return categoryToolbar; + } + + public JToolBar getTransformerToolbar() { + return transformerToolbar; + } + + public JToolBar getControlToolbar() { + return controlToolbar; + } + + public void addRankingControl(AbstractButton btn) { + controlToolbar.addRankingButton(btn); + } + + public void addPartitionControl(AbstractButton btn) { + controlToolbar.addPartitionButton(btn); + } + + @Override + public void propertyChange(PropertyChangeEvent pce) { + if (pce.getPropertyName().equals(AppearanceUIModelEvent.MODEL)) { + setup((AppearanceUIModel) pce.getNewValue()); + } else if (pce.getPropertyName().equals(AppearanceUIModelEvent.SELECTED_ELEMENT_CLASS)) { + refreshSelectedElementClass((String) pce.getNewValue()); + } else if (pce.getPropertyName().equals(AppearanceUIModelEvent.SELECTED_CATEGORY)) { + refreshSelectedCategory((TransformerCategory) pce.getNewValue()); + } else if (pce.getPropertyName().equals(AppearanceUIModelEvent.SELECTED_FUNCTION)) { + refreshSelectedFunction((Function) pce.getNewValue()); + } else if (pce.getPropertyName().equals(AppearanceUIModelEvent.SELECTED_TRANSFORMER_UI)) { + refreshSelectedTransformerUI(); + } + } + + private void setup(final AppearanceUIModel model) { + this.model = model; + + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + categoryToolbar.setEnabled(model != null); + categoryToolbar.setup(); + categoryToolbar.refreshSelectedElmntGroup(); + categoryToolbar.refreshTransformers(); + + transformerToolbar.setEnabled(model != null); + transformerToolbar.setup(); + transformerToolbar.refreshTransformers(); + + controlToolbar.setEnabled(model != null); + controlToolbar.setup(); + controlToolbar.refreshControls(); + } + }); + } + + private void refreshSelectedElementClass(final String elementClass) { + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + categoryToolbar.refreshSelectedElmntGroup(); + categoryToolbar.refreshTransformers(); + + transformerToolbar.refreshTransformers(); + controlToolbar.refreshControls(); + } + }); + } + + private void refreshSelectedCategory(final TransformerCategory category) { + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + categoryToolbar.refreshTransformers(); + + transformerToolbar.refreshTransformers(); + + controlToolbar.refreshControls(); + } + }); + } + + private void refreshSelectedFunction(final Function ui) { + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + + transformerToolbar.refreshTransformers(); + controlToolbar.refreshControls(); + } + }); + } + + private void refreshSelectedTransformerUI() { + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + + controlToolbar.refreshControls(); + } + }); + } + + // Workaround for JDK bug - JDK-8250953 + private void fixAquaSelectedState(JToggleButton btn) { + if (UIUtils.isAquaLookAndFeel()) { + btn.addItemListener(new ItemListener() { + @Override + public void itemStateChanged(ItemEvent e) { + if (e.getStateChange() == ItemEvent.SELECTED) { + Font font = btn.getFont().deriveFont( + Collections.singletonMap( + TextAttribute.WEIGHT, TextAttribute.WEIGHT_BOLD)); + btn.setFont(font); + } else { + Font font = btn.getFont().deriveFont( + Collections.singletonMap( + TextAttribute.WEIGHT, TextAttribute.WEIGHT_REGULAR)); + btn.setFont(font); + } + } + }); + } + } + + private class AbstractToolbar extends JToolBar { + + public AbstractToolbar() { + setFloatable(false); + setRollover(true); + Border b = (Border) UIManager.get("Nb.Editor.Toolbar.border"); //NOI18N + setBorder(b); + setOpaque(true); + } + + @Override + public void setEnabled(final boolean enabled) { + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + for (Component c : getComponents()) { + c.setEnabled(enabled); + } + } + }); + } + } + + private class CategoryToolbar extends AbstractToolbar { + + private final List buttonGroups = new ArrayList<>(); + private final javax.swing.JLabel box; + private final javax.swing.ButtonGroup elementGroup; + + public CategoryToolbar() { + super(); + + //Init components + elementGroup = new javax.swing.ButtonGroup(); + for (final String elmtType : AppearanceUIController.ELEMENT_CLASSES) { + + JToggleButton btn = new JToggleButton(); + btn.setFocusPainted(false); + String btnLabel = elmtType; + try { + btnLabel = NbBundle.getMessage(AppearanceToolbar.class, "AppearanceToolbar." + elmtType + ".label"); + } catch (MissingResourceException e) { + } + btn.setText(btnLabel); + btn.setEnabled(false); + + btn.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + controller.setSelectedElementClass(elmtType); + } + }); + fixAquaSelectedState(btn); + elementGroup.add(btn); + add(btn); + } + box = new javax.swing.JLabel(); + + addSeparator(); + + box.setMaximumSize(new java.awt.Dimension(32767, 32767)); + add(box); + } + + private void clear() { + //Clear precent buttons + for (ButtonGroup bg : buttonGroups) { + for (Enumeration btns = bg.getElements(); btns.hasMoreElements(); ) { + AbstractButton btn = btns.nextElement(); + remove(btn); + } + } + buttonGroups.clear(); + } + + protected void setup() { + clear(); + if (model != null) { + //Add transformers buttons, separate them by element group + for (String elmtType : AppearanceUIController.ELEMENT_CLASSES) { + ButtonGroup buttonGroup = new ButtonGroup(); + for (final TransformerCategory c : controller.getCategories(elmtType)) { + //Build button + Icon icon = c.getIcon(); +// DecoratedIcon decoratedIcon = getDecoratedIcon(icon, t); +// JToggleButton btn = new JToggleButton(decoratedIcon); + JToggleButton btn = new JToggleButton(icon); + + btn.setToolTipText(c.getDisplayName()); + btn.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + controller.setSelectedCategory(c); + } + }); + btn.setName(c.getDisplayName()); + btn.setFocusPainted(false); + buttonGroup.add(btn); + add(btn); + } + + buttonGroups.add(buttonGroup); + } + } else { + elementGroup.clearSelection(); + } + } + + protected void refreshTransformers() { + if (model != null) { + //Select the right transformer + int index = 0; + for (String elmtType : AppearanceUIController.ELEMENT_CLASSES) { + ButtonGroup g = buttonGroups.get(index); + boolean active = model.getSelectedElementClass().equals(elmtType); + g.clearSelection(); + TransformerCategory c = model.getSelectedCategory(); + String selected = c.getDisplayName(); + for (Enumeration btns = g.getElements(); btns.hasMoreElements(); ) { + AbstractButton btn = btns.nextElement(); + btn.setVisible(active); + if (active && btn.getName().equals(selected)) { + g.setSelected(btn.getModel(), true); + } + } + index++; + } + } + } + + protected void refreshSelectedElmntGroup() { + String selected = model == null ? null : model.getSelectedElementClass(); + ButtonModel buttonModel = null; + Enumeration en = elementGroup.getElements(); + for (String elmtType : AppearanceUIController.ELEMENT_CLASSES) { + if (selected == null || elmtType.equals(selected)) { + buttonModel = en.nextElement().getModel(); + break; + } + en.nextElement(); + } + elementGroup.setSelected(buttonModel, true); + } + } + + private class TransformerToolbar extends AbstractToolbar { + + private final List buttonGroups = new ArrayList<>(); + + public TransformerToolbar() { + super(); + } + + private void clear() { + //Clear precent buttons + for (ButtonGroup bg : buttonGroups) { + for (Enumeration btns = bg.getElements(); btns.hasMoreElements(); ) { + AbstractButton btn = btns.nextElement(); + remove(btn); + } + } + buttonGroups.clear(); + } + + protected void setup() { + clear(); + if (model != null) { + + for (String elmtType : AppearanceUIController.ELEMENT_CLASSES) { + for (TransformerCategory c : controller.getCategories(elmtType)) { + + ButtonGroup buttonGroup = new ButtonGroup(); + Map titles = new LinkedHashMap<>(); + for (TransformerUI t : controller.getTransformerUIs(elmtType, c)) { + titles.put(t.getDisplayName(), t); + } + + for (Map.Entry entry : titles.entrySet()) { + //Build button + final TransformerUI value = entry.getValue(); + Icon icon = entry.getValue().getIcon(); +// DecoratedIcon decoratedIcon = getDecoratedIcon(icon, t); +// JToggleButton btn = new JToggleButton(decoratedIcon); + JToggleButton btn = new JToggleButton(icon); + btn.setToolTipText(entry.getValue().getDescription()); + btn.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + controller.setSelectedTransformerUI(value); + } + }); + fixAquaSelectedState(btn); + btn.setName(entry.getKey()); + btn.setText(entry.getKey()); + btn.setFocusPainted(false); + buttonGroup.add(btn); + add(btn); + } + buttonGroups.add(buttonGroup); + } + } + } + } + + protected void refreshTransformers() { + if (model != null) { + //Select the right transformer + int index = 0; + for (String elmtType : AppearanceUIController.ELEMENT_CLASSES) { + for (TransformerCategory c : controller.getCategories(elmtType)) { + ButtonGroup g = buttonGroups.get(index); + + boolean active = + model.getSelectedElementClass().equals(elmtType) && model.getSelectedCategory().equals(c); + g.clearSelection(); + TransformerUI t = model.getSelectedTransformerUI(); + + for (Enumeration btns = g.getElements(); btns.hasMoreElements(); ) { + AbstractButton btn = btns.nextElement(); + btn.setVisible(active); + if (t != null && active && btn.getName().equals(t.getDisplayName())) { + g.setSelected(btn.getModel(), true); + } + } + index++; + } + } + } + } + } + + private class ControlToolbar extends AbstractToolbar { + + private transient final Set rankingSouthControls; + private transient final Set partitionSouthControls; + private transient final Set controlButtons; + + public ControlToolbar() { + rankingSouthControls = new LinkedHashSet<>(); + partitionSouthControls = new LinkedHashSet<>(); + controlButtons = new LinkedHashSet<>(); + } + + public void addRankingButton(AbstractButton btn) { + removeAll(); + rankingSouthControls.add(btn); + } + + public void addPartitionButton(AbstractButton btn) { + removeAll(); + partitionSouthControls.add(btn); + } + + private void clear() { + //Clear precent buttons + for (AbstractButton btn : rankingSouthControls) { + remove(btn); + } + for (AbstractButton btn : partitionSouthControls) { + remove(btn); + } + } + + private void clearControlButtons() { + for (AbstractButton btn : controlButtons) { + remove(btn); + } + controlButtons.clear(); + } + + protected void setup() { + clear(); + if (model != null) { + removeAll(); + for (AbstractButton btn : rankingSouthControls) { + add(btn); + } + for (AbstractButton btn : partitionSouthControls) { + if (!rankingSouthControls.contains(btn)) { + add(btn); + } + } + JLabel box = new javax.swing.JLabel(); + box.setMaximumSize(new java.awt.Dimension(32767, 32767)); + addSeparator(); + add(box); + } + } + + protected void refreshControls() { + if (model != null) { + for (AbstractButton btn : partitionSouthControls) { + btn.setVisible(false); + } + for (AbstractButton btn : rankingSouthControls) { + btn.setVisible(false); + } + TransformerUI u = model.getSelectedTransformerUI(); + if (u != null && model.isAttributeTransformerUI(u)) { + //Ranking + Function selectedColumn = model.getSelectedFunction(); + if (selectedColumn != null) { + if (selectedColumn.isRanking()) { + for (AbstractButton btn : rankingSouthControls) { + btn.setVisible(true); + } + } else if (selectedColumn.isPartition()) { + for (AbstractButton btn : partitionSouthControls) { + btn.setVisible(true); + } + } + } + } + clearControlButtons(); + if (u != null) { + Function selectedColumn = model.getSelectedFunction(); + if (selectedColumn != null) { + AbstractButton[] bb = selectedColumn.getUI().getControlButton(); + if (bb != null) { + for (AbstractButton b : bb) { + add(b); + b.setEnabled(true); + controlButtons.add(b); + } + } + } + } + } + } + } +} diff --git a/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/AppearanceTopComponent.form b/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/AppearanceTopComponent.form new file mode 100644 index 0000000000..4499237fd3 --- /dev/null +++ b/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/AppearanceTopComponent.form @@ -0,0 +1,269 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/AppearanceTopComponent.java b/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/AppearanceTopComponent.java new file mode 100644 index 0000000000..6be71a7240 --- /dev/null +++ b/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/AppearanceTopComponent.java @@ -0,0 +1,727 @@ +/* + Copyright 2008-2010 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2011 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2011 Gephi Consortium. + */ + +package org.gephi.desktop.appearance; + +import java.awt.BorderLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; +import java.awt.geom.Point2D; +import java.beans.PropertyChangeEvent; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import javax.swing.Box; +import javax.swing.DefaultComboBoxModel; +import javax.swing.JPanel; +import javax.swing.JToggleButton; +import javax.swing.SwingUtilities; +import javax.swing.UIManager; +import org.gephi.appearance.api.Function; +import org.gephi.appearance.api.Interpolator; +import org.gephi.appearance.api.RankingFunction; +import org.gephi.appearance.spi.TransformerUI; +import org.gephi.ui.components.splineeditor.SplineEditor; +import org.gephi.ui.utils.UIUtils; +import org.netbeans.api.settings.ConvertAsProperties; +import org.openide.awt.ActionID; +import org.openide.awt.ActionReference; +import org.openide.util.ImageUtilities; +import org.openide.util.Lookup; +import org.openide.util.NbBundle; +import org.openide.windows.TopComponent; + +@ConvertAsProperties(dtd = "-//org.gephi.desktop.appearance//Appearance//EN", + autostore = false) +@TopComponent.Description(preferredID = "AppearanceTopComponent", + iconBase = "DesktopAppearance/small.svg", + persistenceType = TopComponent.PERSISTENCE_ALWAYS) +@TopComponent.Registration(mode = "rankingmode", openAtStartup = true, roles = {"overview"}, position = 10) +@ActionID(category = "Window", id = "org.gephi.desktop.appearance.AppearanceTopComponent") +@ActionReference(path = "Menu/Window", position = 1100) +@TopComponent.OpenActionRegistration(displayName = "#CTL_AppearanceAction", + preferredID = "AppearanceTopComponent") +public class AppearanceTopComponent extends TopComponent implements Lookup.Provider, AppearanceUIModelListener { + + //Const + private final String NO_SELECTION = + NbBundle.getMessage(AppearanceTopComponent.class, "AppearanceTopComponent.choose.text"); + private transient final AppearanceToolbar toolbar; + //Model + private transient final AppearanceUIController controller; + //UI + private transient JPanel transformerPanel; + private transient JToggleButton listButton; + private transient ItemListener attributeListener; + private transient SplineEditor splineEditor; + private transient AppearanceUIModel model; + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JButton applyButton; + private javax.swing.JComboBox attibuteBox; + private javax.swing.JPanel attributePanel; + private javax.swing.JToggleButton autoApplyButton; + private javax.swing.JToolBar autoApplyToolbar; + private javax.swing.JToolBar categoryToolbar; + private javax.swing.JPanel centerPanel; + private javax.swing.JPanel controlPanel; + private javax.swing.JToolBar controlToolbar; + private javax.swing.JToggleButton enableAutoButton; + private javax.swing.JToggleButton rankingLocalScaleButton; + private javax.swing.JToggleButton partitionLocalScaleButton; + private javax.swing.JToggleButton transformNullValuesButton; + private javax.swing.JPanel mainPanel; + private org.jdesktop.swingx.JXHyperlink splineButton; + private javax.swing.JToggleButton stopAutoApplyButton; + private javax.swing.JToolBar tranformerToolbar; + // End of variables declaration//GEN-END:variables + + public AppearanceTopComponent() { + setName(NbBundle.getMessage(AppearanceTopComponent.class, "CTL_AppearanceTopComponent")); + + controller = Lookup.getDefault().lookup(AppearanceUIController.class); + model = controller.getModel(); + controller.addPropertyChangeListener(this); + toolbar = new AppearanceToolbar(controller); + + initComponents(); + initControls(); + if (UIUtils.isAquaLookAndFeel()) { + mainPanel.setBackground(UIManager.getColor("NbExplorerView.background")); + centerPanel.setBackground(UIManager.getColor("NbExplorerView.background")); + } + + refreshModel(model); + } + + @Override + public void propertyChange(PropertyChangeEvent pce) { + if (pce.getPropertyName().equals(AppearanceUIModelEvent.MODEL)) { + refreshModel((AppearanceUIModel) pce.getNewValue()); + } else if (pce.getPropertyName().equals(AppearanceUIModelEvent.SELECTED_CATEGORY) + || pce.getPropertyName().equals(AppearanceUIModelEvent.SELECTED_ELEMENT_CLASS) + || pce.getPropertyName().equals(AppearanceUIModelEvent.SELECTED_TRANSFORMER_UI)) { + refreshCenterPanel(); + refreshCombo(); + refreshControls(); + } else if (pce.getPropertyName().equals(AppearanceUIModelEvent.SELECTED_FUNCTION)) { + refreshCenterPanel(); + refreshCombo(); + refreshControls(); + } else if (pce.getPropertyName().equals(AppearanceUIModelEvent.SET_AUTO_APPLY)) { + refreshControls(); + } else if (pce.getPropertyName().equals(AppearanceUIModelEvent.START_STOP_AUTO_APPLY)) { + refreshControls(); + } else if (pce.getPropertyName().equals(AppearanceUIModelEvent.SET_LOCAL_SCALE)) { + refreshControls(); + } else if (pce.getPropertyName().equals(AppearanceUIModelEvent.ATTRIBUTE_LIST)) { + refreshCombo(); + } else if (pce.getPropertyName().equals(AppearanceUIModelEvent.REFRESH_FUNCTION)) { + refreshCenterPanel(); + } else if (pce.getPropertyName().equals(AppearanceUIModelEvent.SET_TRANSFORM_NULL_VALUES)) { + refreshControls(); + refreshCenterPanel(); + } + // if (pce.getPropertyName().equals(RankingUIModel.LIST_VISIBLE)) { + // listButton.setSelected((Boolean) pce.getNewValue()); + // if (listResultPanel.isVisible() != model.isListVisible()) { + // listResultPanel.setVisible(model.isListVisible()); + // revalidate(); + // repaint(); + // } + // } else if (pce.getPropertyName().equals(RankingUIModel.BARCHART_VISIBLE)) { + // //barChartButton.setSelected((Boolean)pce.getNewValue()); + // } else if (pce.getPropertyName().equals(RankingUIModel.LOCAL_SCALE)) { + // localScaleButton.setSelected((Boolean) pce.getNewValue()); + // } else if (pce.getPropertyName().equals(RankingUIModel.LOCAL_SCALE_ENABLED)) { + // localScaleButton.setEnabled((Boolean) pce.getNewValue()); + // } + } + + public void refreshModel(AppearanceUIModel model) { + this.model = model; + refreshEnable(); + refreshCenterPanel(); + refreshCombo(); + refreshControls(); + + //South visible + /* + * if (barChartPanel.isVisible() != model.isBarChartVisible()) { + * barChartPanel.setVisible(model.isBarChartVisible()); revalidate(); + * repaint(); } + */ +// ((ResultListPanel) listResultPanel).unselect(); +// if (model != null) { +// ((ResultListPanel) listResultPanel).select(model); +// if (listResultPanel.isVisible() != model.isListVisible()) { +// listResultPanel.setVisible(model.isListVisible()); +// revalidate(); +// repaint(); +// } +// +// //barChartButton.setSelected(model.isBarChartVisible()); +// listButton.setSelected(model.isListVisible()); +// localScaleButton.setSelected(model.isLocalScale()); +// } else { +// listResultPanel.setVisible(false); +// listButton.setSelected(false); +// localScaleButton.setSelected(false); +// } + //Chooser +// ((RankingChooser) centerPanel).refreshModel(model); + //Toolbar +// ((RankingToolbar) categoryToolbar).refreshModel(model); + } + + private void refreshCenterPanel() { + + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + if (transformerPanel != null) { + centerPanel.remove(transformerPanel); + transformerPanel = null; + } + if (model != null) { + TransformerUI ui = model.getSelectedTransformerUI(); + if (ui != null) { + boolean attribute = model.isAttributeTransformerUI(ui); + + attributePanel.setVisible(attribute); + if (attribute) { + Function function = model.getSelectedFunction(); + if (function != null) { + ui = function.getUI(); + transformerPanel = ui.getPanel(function); + } + } else { + Function function = model.getSelectedFunction(); + transformerPanel = ui.getPanel(function); + } + + if (transformerPanel != null) { + transformerPanel.setOpaque(true); + centerPanel.add(transformerPanel, BorderLayout.CENTER); + } + + centerPanel.revalidate(); + centerPanel.repaint(); + + //setCenterPanel + return; + } + } + attributePanel.setVisible(false); + } + }); + } + + private void refreshCombo() { + final AppearanceUIModel currentModel = model; + if (currentModel != null && currentModel.getSelectedTransformerUI() != null && + currentModel.isAttributeTransformerUI(currentModel.getSelectedTransformerUI())) { + + + final List rows = new ArrayList<>(currentModel.getFunctions()); + + Collections.sort(rows, (o1, o2) -> { + if (o1.isAttribute() && !o2.isAttribute()) { + return 1; + } else if (!o1.isAttribute() && o2.isAttribute()) { + return -1; + } + return o1.toString().compareTo(o2.toString()); + }); + + SwingUtilities.invokeLater(() -> { + final DefaultComboBoxModel comboBoxModel = new DefaultComboBoxModel(); + + //Ranking + Function selectedColumn = currentModel.getSelectedFunction(); + attibuteBox.removeItemListener(attributeListener); + + comboBoxModel.addElement(NO_SELECTION); + comboBoxModel.setSelectedItem(NO_SELECTION); + + for (Function r : rows) { + comboBoxModel.addElement(r); + if (selectedColumn != null && selectedColumn.equals(r)) { + comboBoxModel.setSelectedItem(r); + } + } + attributeListener = new ItemListener() { + @Override + public void itemStateChanged(ItemEvent e) { + if (model != null) { + if (!attibuteBox.getSelectedItem().equals(NO_SELECTION)) { + Function selectedItem = (Function) attibuteBox.getSelectedItem(); + Function selectedFunction = model.getSelectedFunction(); + if (selectedFunction != selectedItem) { + controller.setSelectedFunction(selectedItem); + } + } else { + controller.setSelectedFunction(null); + } + } + } + }; + attibuteBox.addItemListener(attributeListener); + + attibuteBox.setModel(comboBoxModel); + }); + } else { + SwingUtilities.invokeLater(() -> { + attibuteBox.setModel(new DefaultComboBoxModel()); + }); + } + } + + private void refreshControls() { + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + if (model != null && model.getSelectedFunction() != null) { + enableAutoButton.setEnabled(true); + if (model.getAutoApplyTransformer() != null) { + applyButton.setVisible(false); + enableAutoButton.setSelected(true); + AutoAppyTransformer aat = model.getAutoApplyTransformer(); + if (aat.isRunning()) { + autoApplyButton.setVisible(false); + stopAutoApplyButton.setVisible(true); + stopAutoApplyButton.setSelected(true); + } else { + autoApplyButton.setVisible(true); + autoApplyButton.setSelected(false); + stopAutoApplyButton.setVisible(false); + } + } else { + autoApplyButton.setVisible(false); + stopAutoApplyButton.setVisible(false); + enableAutoButton.setSelected(false); + applyButton.setVisible(true); + applyButton.setEnabled(true); + } + rankingLocalScaleButton.setSelected(model.isRankingLocalScale()); + partitionLocalScaleButton.setSelected(model.isPartitionLocalScale()); + transformNullValuesButton.setSelected(model.isTransformNullValues()); + return; + } + //Disable + stopAutoApplyButton.setVisible(false); + autoApplyButton.setVisible(false); + applyButton.setVisible(true); + applyButton.setEnabled(false); + enableAutoButton.setEnabled(false); + } + }); + } + + private void initControls() { + //Add ranking controls + toolbar.addRankingControl(splineButton); + toolbar.addRankingControl(rankingLocalScaleButton); + toolbar.addRankingControl(transformNullValuesButton); + + //Add partition controls + toolbar.addPartitionControl(partitionLocalScaleButton); + toolbar.addPartitionControl(transformNullValuesButton); + + //Actions + rankingLocalScaleButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + controller.getAppearanceController().setUseRankingLocalScale(rankingLocalScaleButton.isSelected()); + } + }); + partitionLocalScaleButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + controller.getAppearanceController().setUsePartitionLocalScale(partitionLocalScaleButton.isSelected()); + } + }); + transformNullValuesButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + controller.getAppearanceController().setTransformNullValues(transformNullValuesButton.isSelected()); + } + }); + splineButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + RankingFunction function = (RankingFunction) model.getSelectedFunction(); + if (splineEditor == null) { + splineEditor = new SplineEditor( + NbBundle.getMessage(AppearanceTopComponent.class, "AppearanceTopComponent.splineEditor.title")); + } + Interpolator interpolator = function.getInterpolator(); + if (interpolator instanceof Interpolator.BezierInterpolator) { + Interpolator.BezierInterpolator bezierInterpolator = (Interpolator.BezierInterpolator) interpolator; + splineEditor.setControl1(bezierInterpolator.getControl1()); + splineEditor.setControl2(bezierInterpolator.getControl2()); + } else { + splineEditor.setControl1(new Point2D.Float(0, 0)); + splineEditor.setControl2(new Point2D.Float(1, 1)); + } + splineEditor.setVisible(true); + function.setInterpolator( + new Interpolator.BezierInterpolator( + (float) splineEditor.getControl1().getX(), (float) splineEditor.getControl1().getY(), + (float) splineEditor.getControl2().getX(), (float) splineEditor.getControl2().getY())); + } + }); + applyButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + controller.transform(model.getSelectedFunction()); + } + }); + autoApplyButton.addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + controller.startAutoApply(); + } + }); + stopAutoApplyButton.addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + controller.stopAutoApply(); + } + + }); + enableAutoButton.addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + controller.setAutoApply(model.getAutoApplyTransformer() == null); + } + }); + stopAutoApplyButton.setVisible(false); + autoApplyButton.setVisible(false); + +// listButton = new JToggleButton(); +// listButton.setIcon(ImageUtilities.loadImageIcon("DesktopAppearance/list.png", false)); // NOI18N +// listButton.setToolTipText(NbBundle.getMessage(RankingTopComponent.class, "RankingTopComponent.listButton.text")); +// listButton.setEnabled(false); +// listButton.setFocusable(false); +// southToolbar.add(listButton); + /* + * barChartButton = new JToggleButton(); barChartButton.setIcon(new + * javax.swing.ImageIcon(getClass().getResource("/org/gephi/desktop/ranking/resources/barchart.png", false)); + * // NOI18N NbBundle.getMessage(RankingTopComponent.class, + * "RankingTopComponent.barchartButton.text"); + * barChartButton.setEnabled(false); barChartButton.setFocusable(false); + * southToolbar.add(barChartButton); + */ +// localScaleButton = new JToggleButton(); +// localScaleButton.setIcon(ImageUtilities.loadImageIcon("DesktopAppearance/funnel.svg", false)); // NOI18N +// localScaleButton.setToolTipText(NbBundle.getMessage(RankingTopComponent.class, "RankingTopComponent.localScaleButton.text")); +// localScaleButton.setEnabled(false); +// localScaleButton.setFocusable(false); +// southToolbar.add(localScaleButton); +// +// //Local scale enabled +// localScaleButton.setEnabled(model != null ? model.isLocalScaleEnabled() : false); +// +// //BarChartPanel & ListPanel +// listResultPanel.setVisible(false); +// +// listButton.addActionListener(new ActionListener() { +// @Override +// public void actionPerformed(ActionEvent e) { +// model.setListVisible(listButton.isSelected()); +// } +// }); +// +// localScaleButton.addActionListener(new ActionListener() { +// @Override +// public void actionPerformed(ActionEvent e) { +// model.setLocalScale(localScaleButton.isSelected()); +// } +// }); + + /* + * barChartButton.addActionListener(new ActionListener() { + * + * public void actionPerformed(ActionEvent e) { + * model.setBarChartVisible(barChartButton.isSelected()); } }); + */ + } + + private void refreshEnable() { + boolean modelEnabled = isModelEnabled(); + + //barChartButton.setEnabled(modelEnabled); +// listButton.setEnabled(modelEnabled); +// localScaleButton.setEnabled(modelEnabled && model.isLocalScaleEnabled()); +// rankingChooser.setEnabled(modelEnabled); +// rankingToolbar.setEnabled(modelEnabled); +// listResultPanel.setEnabled(modelEnabled); + } + + private boolean isModelEnabled() { + return model != null; + } + + /** + * This method is called from within the constructor to initialize the form. + * WARNING: Do NOT modify this code. The content of this method is always + * regenerated by the Form Editor. + */ + // //GEN-BEGIN:initComponents + private void initComponents() { + java.awt.GridBagConstraints gridBagConstraints; + + mainPanel = new javax.swing.JPanel(); + categoryToolbar = toolbar.getCategoryToolbar(); + tranformerToolbar = toolbar.getTransformerToolbar(); + attributePanel = new javax.swing.JPanel(); + attibuteBox = new javax.swing.JComboBox(); + centerPanel = new javax.swing.JPanel(); + controlToolbar = toolbar.getControlToolbar(); + rankingLocalScaleButton = new javax.swing.JToggleButton(); + partitionLocalScaleButton = new javax.swing.JToggleButton(); + transformNullValuesButton = new javax.swing.JToggleButton(); + splineButton = new org.jdesktop.swingx.JXHyperlink(); + controlPanel = new javax.swing.JPanel(); + applyButton = new javax.swing.JButton(); + stopAutoApplyButton = new javax.swing.JToggleButton(); + autoApplyToolbar = new javax.swing.JToolBar(); + enableAutoButton = new javax.swing.JToggleButton(); + autoApplyButton = new javax.swing.JToggleButton(); + + setOpaque(true); + setLayout(new java.awt.BorderLayout()); + + mainPanel.setLayout(new java.awt.GridBagLayout()); + mainPanel.setOpaque(true); + + categoryToolbar.setFloatable(false); + categoryToolbar.setRollover(true); + categoryToolbar.setOpaque(true); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridx = 0; + gridBagConstraints.gridy = 0; + gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; + gridBagConstraints.weightx = 1.0; + mainPanel.add(categoryToolbar, gridBagConstraints); + + tranformerToolbar.setFloatable(false); + tranformerToolbar.setRollover(true); + tranformerToolbar.setOpaque(true); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridx = 0; + gridBagConstraints.gridy = 1; + gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; + gridBagConstraints.weightx = 1.0; + mainPanel.add(tranformerToolbar, gridBagConstraints); + + attributePanel.setOpaque(true); + attributePanel.setLayout(new java.awt.GridBagLayout()); + + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridx = 0; + gridBagConstraints.gridy = 0; + gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.weightx = 1.0; + gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); + attributePanel.add(attibuteBox, gridBagConstraints); + + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridx = 0; + gridBagConstraints.gridy = 2; + gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; + gridBagConstraints.weightx = 1.0; + mainPanel.add(attributePanel, gridBagConstraints); + + centerPanel.setOpaque(true); + centerPanel.setLayout(new java.awt.BorderLayout()); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridx = 0; + gridBagConstraints.gridy = 3; + gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; + gridBagConstraints.weightx = 1.0; + gridBagConstraints.weighty = 1.0; + mainPanel.add(centerPanel, gridBagConstraints); + + controlToolbar.setFloatable(false); + controlToolbar.setRollover(true); + controlToolbar.setMargin(new java.awt.Insets(0, 4, 0, 0)); + controlToolbar.setOpaque(true); + + rankingLocalScaleButton.setIcon(ImageUtilities.loadImageIcon("DesktopAppearance/funnel.svg", false)); // NOI18N + rankingLocalScaleButton.setToolTipText(org.openide.util.NbBundle + .getMessage(AppearanceTopComponent.class, "AppearanceTopComponent.localScaleButton.toolTipText")); // NOI18N + rankingLocalScaleButton.setFocusable(false); + controlToolbar.add(rankingLocalScaleButton); + + partitionLocalScaleButton.setIcon(ImageUtilities.loadImageIcon("DesktopAppearance/funnel.svg", false)); // NOI18N + partitionLocalScaleButton.setToolTipText(org.openide.util.NbBundle + .getMessage(AppearanceTopComponent.class, + "AppearanceTopComponent.partitionLocalScaleButton.toolTipText")); // NOI18N + partitionLocalScaleButton.setFocusable(false); + controlToolbar.add(partitionLocalScaleButton); + + transformNullValuesButton.setIcon(ImageUtilities.loadImageIcon("DesktopAppearance/transformNull.svg", false)); // NOI18N + transformNullValuesButton.setToolTipText(org.openide.util.NbBundle + .getMessage(AppearanceTopComponent.class, + "AppearanceTopComponent.transformNullValues.toolTipText")); // NOI18N + transformNullValuesButton.setFocusable(false); + controlToolbar.add(transformNullValuesButton); + + org.openide.awt.Mnemonics.setLocalizedText(splineButton, org.openide.util.NbBundle + .getMessage(AppearanceTopComponent.class, "AppearanceTopComponent.splineButton.text")); // NOI18N + splineButton.setToolTipText(org.openide.util.NbBundle + .getMessage(AppearanceTopComponent.class, "AppearanceTopComponent.splineButton.toolTipText")); // NOI18N + splineButton.setFocusPainted(false); + splineButton.setFocusable(false); + splineButton.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); + splineButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + controlToolbar.add(splineButton); + + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridx = 0; + gridBagConstraints.gridy = 4; + gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.anchor = java.awt.GridBagConstraints.LAST_LINE_END; + gridBagConstraints.weightx = 1.0; + gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 3); + mainPanel.add(controlToolbar, gridBagConstraints); + + controlPanel.setOpaque(true); + controlPanel.setLayout(new java.awt.GridBagLayout()); + + applyButton.setIcon(ImageUtilities.loadImageIcon("DesktopAppearance/apply.svg", false)); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(applyButton, org.openide.util.NbBundle + .getMessage(AppearanceTopComponent.class, "AppearanceTopComponent.applyButton.text")); // NOI18N + applyButton.setToolTipText(org.openide.util.NbBundle + .getMessage(AppearanceTopComponent.class, "AppearanceTopComponent.applyButton.toolTipText")); // NOI18N + applyButton.setMargin(new java.awt.Insets(0, 14, 0, 14)); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridx = 3; + gridBagConstraints.gridy = 0; + gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHEAST; + gridBagConstraints.insets = new java.awt.Insets(0, 18, 3, 5); + controlPanel.add(applyButton, gridBagConstraints); + + stopAutoApplyButton.setIcon(ImageUtilities.loadImageIcon("DesktopAppearance/stop.svg", false)); // NOI18N + stopAutoApplyButton.setSelected(true); + org.openide.awt.Mnemonics.setLocalizedText(stopAutoApplyButton, org.openide.util.NbBundle + .getMessage(AppearanceTopComponent.class, "AppearanceTopComponent.stopAutoApplyButton.text")); // NOI18N + stopAutoApplyButton.setToolTipText(org.openide.util.NbBundle.getMessage(AppearanceTopComponent.class, + "AppearanceTopComponent.stopAutoApplyButton.toolTipText")); // NOI18N + stopAutoApplyButton.setFocusable(false); + stopAutoApplyButton.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT); + stopAutoApplyButton.setMargin(new java.awt.Insets(0, 7, 0, 7)); + stopAutoApplyButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridx = 2; + gridBagConstraints.gridy = 0; + gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHEAST; + gridBagConstraints.insets = new java.awt.Insets(0, 3, 3, 5); + controlPanel.add(stopAutoApplyButton, gridBagConstraints); + + autoApplyToolbar.setFloatable(false); + autoApplyToolbar.setRollover(true); + autoApplyToolbar.setOpaque(true); + + enableAutoButton.setIcon(ImageUtilities.loadImageIcon("DesktopAppearance/chain.svg", false)); // NOI18N + enableAutoButton.setToolTipText(org.openide.util.NbBundle + .getMessage(AppearanceTopComponent.class, "AppearanceTopComponent.enableAutoButton.toolTipText")); // NOI18N + enableAutoButton.setFocusable(false); + enableAutoButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + enableAutoButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); + autoApplyToolbar.add(Box.createHorizontalGlue()); + autoApplyToolbar.add(enableAutoButton); + + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridx = 1; + gridBagConstraints.gridy = 0; + gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; + gridBagConstraints.weightx = 1.0; + controlPanel.add(autoApplyToolbar, gridBagConstraints); + + autoApplyButton.setIcon(ImageUtilities.loadImageIcon("DesktopAppearance/apply.svg", false)); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(autoApplyButton, org.openide.util.NbBundle + .getMessage(AppearanceTopComponent.class, "AppearanceTopComponent.autoApplyButton.text")); // NOI18N + autoApplyButton.setToolTipText(org.openide.util.NbBundle + .getMessage(AppearanceTopComponent.class, "AppearanceTopComponent.autoApplyButton.toolTipText")); // NOI18N + autoApplyButton.setFocusable(false); + autoApplyButton.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT); + autoApplyButton.setMargin(new java.awt.Insets(0, 7, 0, 7)); + autoApplyButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridx = 2; + gridBagConstraints.gridy = 0; + gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHEAST; + gridBagConstraints.insets = new java.awt.Insets(0, 3, 3, 5); + controlPanel.add(autoApplyButton, gridBagConstraints); + + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridx = 0; + gridBagConstraints.gridy = 5; + gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.weightx = 1.0; + mainPanel.add(controlPanel, gridBagConstraints); + + add(mainPanel, java.awt.BorderLayout.CENTER); + }// //GEN-END:initComponents + + void writeProperties(java.util.Properties p) { + // better to version settings since initial version as advocated at + // http://wiki.apidesign.org/wiki/PropertyFiles + p.setProperty("version", "1.0"); + // TODO store your settings + } + + void readProperties(java.util.Properties p) { + String version = p.getProperty("version"); + // TODO read your settings according to their version + } +} diff --git a/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/AppearanceUIController.java b/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/AppearanceUIController.java new file mode 100644 index 0000000000..277a74a4fb --- /dev/null +++ b/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/AppearanceUIController.java @@ -0,0 +1,315 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.desktop.appearance; + +import java.util.Collection; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.CopyOnWriteArraySet; +import org.gephi.appearance.api.AppearanceController; +import org.gephi.appearance.api.AppearanceModel; +import org.gephi.appearance.api.Function; +import org.gephi.appearance.spi.Transformer; +import org.gephi.appearance.spi.TransformerCategory; +import org.gephi.appearance.spi.TransformerUI; +import org.gephi.project.api.ProjectController; +import org.gephi.project.api.Workspace; +import org.gephi.project.api.WorkspaceListener; +import org.openide.util.Lookup; +import org.openide.util.lookup.ServiceProvider; + +/** + * @author mbastian + */ +@ServiceProvider(service = AppearanceUIController.class) +public class AppearanceUIController { + + //Classes + protected static final String NODE_ELEMENT = "nodes"; + protected static final String EDGE_ELEMENT = "edges"; + protected static final String[] ELEMENT_CLASSES = {NODE_ELEMENT, EDGE_ELEMENT}; + //Transformers + protected final Map>> transformers; + //Architecture + protected final AppearanceController appearanceController; + private final CopyOnWriteArraySet listeners; + //Model + private AppearanceUIModel model; + + public AppearanceUIController() { + final ProjectController pc = Lookup.getDefault().lookup(ProjectController.class); + appearanceController = Lookup.getDefault().lookup(AppearanceController.class); + pc.addWorkspaceListener(new WorkspaceListener() { + @Override + public void initialize(Workspace workspace) { + } + + @Override + public void select(Workspace workspace) { + AppearanceUIModel oldModel = model; + model = workspace.getLookup().lookup(AppearanceUIModel.class); + if (model == null) { + AppearanceModel appearanceModel = appearanceController.getModel(workspace); + model = new AppearanceUIModel(appearanceModel); + workspace.add(model); + } + model.select(); + + firePropertyChangeEvent(AppearanceUIModelEvent.MODEL, oldModel, model); + } + + @Override + public void unselect(Workspace workspace) { + if (model != null) { + model.unselect(); + } + } + + @Override + public void close(Workspace workspace) { + } + + @Override + public void disable() { + AppearanceUIModel oldModel = model; + model = null; + firePropertyChangeEvent(AppearanceUIModelEvent.MODEL, oldModel, model); + } + }); + + if (pc.getCurrentWorkspace() != null) { + model = pc.getCurrentWorkspace().getLookup().lookup(AppearanceUIModel.class); + if (model == null) { + AppearanceModel appearanceModel = appearanceController.getModel(pc.getCurrentWorkspace()); + model = new AppearanceUIModel(appearanceModel); + pc.getCurrentWorkspace().add(model); + model.select(); + } + } + + listeners = new CopyOnWriteArraySet<>(); + + transformers = new HashMap<>(); + for (String ec : ELEMENT_CLASSES) { + transformers.put(ec, new LinkedHashMap>()); + } + + //Register transformers + Map tMap = new HashMap<>(); + for (Transformer t : Lookup.getDefault().lookupAll(Transformer.class)) { + tMap.put(t.getClass(), t); + } + for (TransformerUI ui : Lookup.getDefault().lookupAll(TransformerUI.class)) { + Transformer t = tMap.get(ui.getTransformerClass()); + if (t != null) { + TransformerCategory c = ui.getCategory(); + if (t.isNode()) { + Set uis = + transformers.get(NODE_ELEMENT).computeIfAbsent(c, k -> new LinkedHashSet<>()); + uis.add(ui); + } + if (t.isEdge()) { + Set uis = + transformers.get(EDGE_ELEMENT).computeIfAbsent(c, k -> new LinkedHashSet<>()); + uis.add(ui); + } + } + } + } + + public void transform(Function function) { + if (model != null && function != null) { + model.saveTransformerProperties(); + appearanceController.transform(function); + TransformerUI selectedUI = model.getSelectedTransformerUI(); + if (selectedUI != null) { + selectedUI.onApply(function); + } + } + } + + public Collection getCategories(String elementClass) { + return transformers.get(elementClass).keySet(); + } + + public Collection getTransformerUIs(String elementClass, TransformerCategory category) { + return transformers.get(elementClass).get(category); + } + + public AppearanceUIModel getModel() { + return model; + } + + public AppearanceUIModel getModel(Workspace workspace) { + AppearanceUIModel m = workspace.getLookup().lookup(AppearanceUIModel.class); + if (m == null) { + AppearanceController ac = Lookup.getDefault().lookup(AppearanceController.class); + AppearanceModel appearanceModel = ac.getModel(workspace); + m = new AppearanceUIModel(appearanceModel); + workspace.add(m); + } + return m; + } + + public void setSelectedElementClass(String elementClass) { + if (!elementClass.equals(NODE_ELEMENT) && !elementClass.equals(EDGE_ELEMENT)) { + throw new RuntimeException("Element class has to be " + NODE_ELEMENT + " or " + EDGE_ELEMENT); + } + if (model != null) { + String oldValue = model.getSelectedElementClass(); + if (!oldValue.equals(elementClass)) { + model.setSelectedElementClass(elementClass); + + firePropertyChangeEvent(AppearanceUIModelEvent.SELECTED_ELEMENT_CLASS, oldValue, elementClass); + } + } + } + + public void setSelectedCategory(TransformerCategory category) { + if (model != null) { + TransformerCategory oldValue = model.getSelectedCategory(); + if (!oldValue.equals(category)) { + model.setSelectedCategory(category); + firePropertyChangeEvent(AppearanceUIModelEvent.SELECTED_CATEGORY, oldValue, category); + } + } + } + + public void setSelectedTransformerUI(TransformerUI ui) { + if (model != null) { + TransformerUI oldValue = model.getSelectedTransformerUI(); + if (!oldValue.equals(ui)) { + model.setAutoApply(false); + model.setSelectedTransformerUI(ui); + + firePropertyChangeEvent(AppearanceUIModelEvent.SELECTED_TRANSFORMER_UI, oldValue, ui); + } + } + } + + public void setSelectedFunction(Function function) { + if (model != null) { + Function oldValue = model.getSelectedFunction(); + if ((oldValue == null && function != null) || (oldValue != null && function == null) || + (function != null && oldValue != null && !oldValue.equals(function))) { + model.setAutoApply(false); + model.setSelectedFunction(function); + firePropertyChangeEvent(AppearanceUIModelEvent.SELECTED_FUNCTION, oldValue, function); + } + } + } + + public void setAutoApply(boolean autoApply) { + if (model != null) { + model.setAutoApply(autoApply); + firePropertyChangeEvent(AppearanceUIModelEvent.SET_AUTO_APPLY, !autoApply, autoApply); + } + } + + public void startAutoApply() { + if (model != null) { + AutoAppyTransformer aat = model.getAutoApplyTransformer(); + if (aat != null) { + aat.start(); + firePropertyChangeEvent(AppearanceUIModelEvent.START_STOP_AUTO_APPLY, false, true); + } + } + } + + public void stopAutoApply() { + if (model != null) { + AutoAppyTransformer aat = model.getAutoApplyTransformer(); + if (aat != null) { + aat.stop(); + firePropertyChangeEvent(AppearanceUIModelEvent.START_STOP_AUTO_APPLY, true, false); + } + } + } + + public void refreshColumnsList() { + if (model != null) { + Function function = model.getSelectedFunction(); + if (function != null && !function.isValid()) { + setSelectedFunction(null); + } + firePropertyChangeEvent(AppearanceUIModelEvent.ATTRIBUTE_LIST, null, null); + } + } + + public void refreshFunction() { + if (model != null) { + firePropertyChangeEvent(AppearanceUIModelEvent.REFRESH_FUNCTION, null, null); + } + } + + public AppearanceController getAppearanceController() { + return appearanceController; + } + + protected TransformerCategory getFirstCategory(String elementClass) { + return transformers.get(elementClass).keySet().toArray(new TransformerCategory[0])[0]; + } + + protected TransformerUI getFirstTransformerUI(String elementClass, TransformerCategory category) { + Map> e = transformers.get(elementClass); + return e.get(category).toArray(new TransformerUI[0])[0]; + } + + public void addPropertyChangeListener(AppearanceUIModelListener listener) { + listeners.add(listener); + } + + public void removePropertyChangeListener(AppearanceUIModelListener listener) { + listeners.remove(listener); + } + + protected void firePropertyChangeEvent(String propertyName, Object oldValue, Object newValue) { + AppearanceUIModelEvent event = new AppearanceUIModelEvent(this, propertyName, oldValue, newValue); + for (AppearanceUIModelListener listener : listeners) { + listener.propertyChange(event); + } + } +} diff --git a/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/AppearanceUIModel.java b/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/AppearanceUIModel.java new file mode 100644 index 0000000000..177bc33a49 --- /dev/null +++ b/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/AppearanceUIModel.java @@ -0,0 +1,419 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.desktop.appearance; + +import static org.gephi.desktop.appearance.AppearanceUIController.ELEMENT_CLASSES; + +import java.awt.Color; +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; +import org.gephi.appearance.api.AppearanceModel; +import org.gephi.appearance.api.Function; +import org.gephi.appearance.plugin.RankingElementColorTransformer; +import org.gephi.appearance.plugin.RankingLabelColorTransformer; +import org.gephi.appearance.plugin.RankingLabelSizeTransformer; +import org.gephi.appearance.plugin.RankingNodeSizeTransformer; +import org.gephi.appearance.spi.PartitionTransformer; +import org.gephi.appearance.spi.RankingTransformer; +import org.gephi.appearance.spi.Transformer; +import org.gephi.appearance.spi.TransformerCategory; +import org.gephi.appearance.spi.TransformerUI; +import org.gephi.desktop.appearance.options.AppearancePreferences; +import org.gephi.project.api.Workspace; +import org.gephi.ui.appearance.plugin.category.DefaultCategory; +import org.openide.util.Lookup; + +/** + * @author mbastian + */ +public class AppearanceUIModel { + + protected final AppearanceModel appearanceModel; + protected final Map> selectedTransformerUI; + protected final Map> selectedFunction; + protected final Map selectedCategory; + protected final Map> selectedAutoTransformer; + protected final Map> savedProperties; + protected final TableObserverExecutor tableObserverExecutor; + protected final FunctionObserverExecutor functionObserverExecutor; + protected String selectedElementClass = AppearanceUIController.NODE_ELEMENT; + + public AppearanceUIModel(AppearanceModel model) { + this.appearanceModel = model; + + //Init maps + selectedCategory = new HashMap<>(); + selectedTransformerUI = new HashMap<>(); + selectedFunction = new HashMap<>(); + selectedAutoTransformer = new HashMap<>(); + savedProperties = new HashMap<>(); + + //Init selected + for (String ec : ELEMENT_CLASSES) { + initSelectedTransformerUIs(ec); + } + + //Init observers + tableObserverExecutor = new TableObserverExecutor(this); + functionObserverExecutor = new FunctionObserverExecutor(this); + + //Apply preference defaults to transformers that have no saved properties yet + applyPreferenceDefaults(); + } + + private void applyPreferenceDefaults() { + float nodeMinSize = AppearancePreferences.getNodeRankingSizeMin(); + float nodeMaxSize = AppearancePreferences.getNodeRankingSizeMax(); + float labelMinSize = AppearancePreferences.getLabelRankingSizeMin(); + float labelMaxSize = AppearancePreferences.getLabelRankingSizeMax(); + Color[] elementColors = AppearancePreferences.getElementRankingColors(); + float[] elementColorPositions = AppearancePreferences.getElementRankingColorPositions(); + Color[] labelColors = AppearancePreferences.getLabelRankingColors(); + float[] labelColorPositions = AppearancePreferences.getLabelRankingColorPositions(); + + for (Function func : appearanceModel.getNodeFunctions()) { + Transformer transformer = func.getTransformer(); + if (transformer instanceof RankingNodeSizeTransformer) { + ((RankingNodeSizeTransformer) transformer).setMinSize(nodeMinSize); + ((RankingNodeSizeTransformer) transformer).setMaxSize(nodeMaxSize); + } else if (transformer instanceof RankingLabelSizeTransformer) { + ((RankingLabelSizeTransformer) transformer).setMinSize(labelMinSize); + ((RankingLabelSizeTransformer) transformer).setMaxSize(labelMaxSize); + } else if (transformer instanceof RankingLabelColorTransformer) { + ((RankingLabelColorTransformer) transformer).setColors(labelColors); + ((RankingLabelColorTransformer) transformer).setColorPositions(labelColorPositions); + } else if (transformer instanceof RankingElementColorTransformer) { + ((RankingElementColorTransformer) transformer).setColors(elementColors); + ((RankingElementColorTransformer) transformer).setColorPositions(elementColorPositions); + } + } + } + + private void initSelectedTransformerUIs(String elementClass) { + selectedFunction.put(elementClass, new HashMap<>()); + selectedAutoTransformer.put(elementClass, new HashMap<>()); + selectedTransformerUI.put(elementClass, new HashMap<>()); + + for (Function func : elementClass.equals(AppearanceUIController.NODE_ELEMENT) ? + appearanceModel.getNodeFunctions() : appearanceModel.getEdgeFunctions()) { + TransformerUI ui = func.getUI(); + if (ui != null) { + TransformerCategory cat = ui.getCategory(); + selectedCategory.put(elementClass, cat); + + if (func.isSimple()) { + selectedTransformerUI.get(elementClass).put(cat, ui); + selectedFunction.get(elementClass).put(ui, func); + } + } + } + + //Prefer color to start + if (selectedTransformerUI.get(elementClass).containsKey(DefaultCategory.COLOR)) { + selectedCategory.put(elementClass, DefaultCategory.COLOR); + } + } + + public void select() { + tableObserverExecutor.start(); + functionObserverExecutor.start(); + } + + public void unselect() { + tableObserverExecutor.stop(); + functionObserverExecutor.stop(); + } + + public boolean isRankingLocalScale() { + return appearanceModel.isRankingLocalScale(); + } + + public boolean isPartitionLocalScale() { + return appearanceModel.isPartitionLocalScale(); + } + + public boolean isTransformNullValues() { + return appearanceModel.isTransformNullValues(); + } + + public void saveTransformerProperties() { + Function func = getSelectedFunction(); + if (func != null) { + Transformer transformer = func.getTransformer(); + Map props = savedProperties.computeIfAbsent(func, k -> new HashMap<>()); + + for (Map.Entry entry : getProperties(transformer).entrySet()) { + String name = entry.getKey(); + Method getMethod = entry.getValue()[0]; + try { + Object o = getMethod.invoke(transformer); + props.put(name, o); + } catch (Exception ex) { + } + } + } + } + + public void loadTransformerProperties() { + Function func = getSelectedFunction(); + if (func != null) { + Transformer transformer = func.getTransformer(); + Map props = savedProperties.get(func); + if (props != null) { + for (Map.Entry entry : getProperties(transformer).entrySet()) { + String name = entry.getKey(); + Object o = props.get(name); + if (o != null) { + Method setMethod = entry.getValue()[1]; + try { + setMethod.invoke(transformer, o); + } catch (Exception ex) { + } + } + } + } + } + } + + public String getSelectedElementClass() { + return selectedElementClass; + } + + protected void setSelectedElementClass(String selectedElementClass) { + saveTransformerProperties(); + this.selectedElementClass = selectedElementClass; + loadTransformerProperties(); + } + + public TransformerCategory getSelectedCategory() { + return selectedCategory.get(selectedElementClass); + } + + public String[] getElementClasses() { + return ELEMENT_CLASSES; + } + + // Used by serialization only + protected TransformerCategory getSelectedCategory(String elementClass) { + return selectedCategory.get(elementClass); + } + + // Used by serialization only + protected Set getTransformerCategories(String elementClass) { + return selectedTransformerUI.get(elementClass).keySet(); + } + + protected TransformerUI getTransformerUI(String elementClass, TransformerCategory category) { + return selectedTransformerUI.get(elementClass).get(category); + } + + protected Function getFunction(String elementClass, TransformerUI transformerUI) { + return selectedFunction.get(elementClass).get(transformerUI); + } + + // Only by serialization only + protected void setSelected(String elementClass, String categoryId, String ui, String function) { + if (ui != null) { + Optional transformerUIOptional = Lookup.getDefault().lookupAll(TransformerUI.class) + .stream().filter(ui1 -> ui1.getClass().getName().equals(ui)).findFirst(); + + if (transformerUIOptional.isPresent()) { + TransformerUI transformerUI = transformerUIOptional.get(); + selectedTransformerUI.get(elementClass).put(transformerUI.getCategory(), transformerUI); + + if (function != null) { + Arrays.stream(elementClass.equalsIgnoreCase(AppearanceUIController.NODE_ELEMENT) ? + appearanceModel.getNodeFunctions() : + appearanceModel.getEdgeFunctions()).filter(func -> func.getId().equals(function)).findFirst() + .ifPresent(func -> selectedFunction.get(elementClass).put(transformerUI, func)); + } + } + } else if (categoryId != null) { + Lookup.getDefault().lookupAll(TransformerUI.class) + .stream().map(TransformerUI::getCategory).filter(cat -> cat.getId().equals(categoryId)).findFirst() + .ifPresent(transformerCategory -> selectedCategory.put(elementClass, transformerCategory)); + } else { + this.selectedElementClass = elementClass; + } + } + + protected void setSelectedCategory(TransformerCategory category) { + saveTransformerProperties(); + selectedCategory.put(selectedElementClass, category); + loadTransformerProperties(); + } + + public TransformerUI getSelectedTransformerUI() { + return selectedTransformerUI.get(selectedElementClass).get(getSelectedCategory()); + } + + protected void setSelectedTransformerUI(TransformerUI transformerUI) { + saveTransformerProperties(); + selectedTransformerUI.get(selectedElementClass).put(getSelectedCategory(), transformerUI); + loadTransformerProperties(); + } + + public Function getSelectedFunction() { + return selectedFunction.get(selectedElementClass).get(getSelectedTransformerUI()); + } + + protected void setSelectedFunction(Function function) { + saveTransformerProperties(); + selectedFunction.get(selectedElementClass).put(getSelectedTransformerUI(), function); + loadTransformerProperties(); + } + + public AutoAppyTransformer getAutoApplyTransformer() { + String elm = getSelectedElementClass(); + TransformerCategory ct = getSelectedCategory(); + if (ct != null) { + return selectedAutoTransformer.get(elm).get(ct); + } + return null; + } + + public Workspace getWorkspace() { + return appearanceModel.getWorkspace(); + } + + public AppearanceModel getAppearanceModel() { + return appearanceModel; + } + + public Collection getFunctions() { + List functions = new ArrayList<>(); + for (Function func : selectedElementClass.equalsIgnoreCase(AppearanceUIController.NODE_ELEMENT) ? + appearanceModel.getNodeFunctions() : appearanceModel.getEdgeFunctions()) { + TransformerUI ui = func.getUI(); + if (ui != null && ui.getDisplayName().equals(getSelectedTransformerUI().getDisplayName())) { + if (ui.getCategory().equals(selectedCategory.get(selectedElementClass))) { + functions.add(func); + } + } + } + return functions; + } + + protected void setAutoApply(boolean autoApply) { + if (!autoApply) { + AutoAppyTransformer aat = getAutoApplyTransformer(); + if (aat != null) { + aat.stop(); + } + } + String elmt = getSelectedElementClass(); + TransformerCategory cat = getSelectedCategory(); + if (autoApply) { + selectedAutoTransformer.get(elmt).put(cat, new AutoAppyTransformer(getSelectedFunction())); + } else { + selectedAutoTransformer.get(elmt).put(cat, null); + } + } + + protected boolean isAttributeTransformerUI(TransformerUI ui) { + Class transformerClass = ui.getTransformerClass(); + return RankingTransformer.class.isAssignableFrom(transformerClass) || + PartitionTransformer.class.isAssignableFrom(transformerClass); + } + + private Map getProperties(Transformer transformer) { + Map propertyMethods = new HashMap<>(); + + for (Method m : transformer.getClass().getMethods()) { + String name = m.getName(); + if (Modifier.isPublic(m.getModifiers())) { + String propertyName = null; + if (name.startsWith("get")) { + propertyName = name.substring(3); + } else if (name.startsWith("set")) { + propertyName = name.substring(3); + } else if (name.startsWith("is")) { + propertyName = name.substring(2); + } + Method[] ms = propertyMethods.get(propertyName); + if (ms == null) { + ms = new Method[2]; + propertyMethods.put(propertyName, ms); + } + if (name.startsWith("set")) { + ms[1] = m; + } else { + ms[0] = m; + } + } + } + + for (Iterator> itr = propertyMethods.entrySet().iterator(); itr.hasNext(); ) { + Map.Entry entry = itr.next(); + Method get = entry.getValue()[0]; + Method set = entry.getValue()[1]; + if (!(get != null && set != null + && set.getParameterTypes().length == 1 && get.getParameterTypes().length == 0 + && set.getParameterTypes()[0].equals(get.getReturnType()) + && isSupportedPropertyType(get.getReturnType()))) { + itr.remove(); + } + } + return propertyMethods; + } + + private boolean isSupportedPropertyType(Class type) { + if (type.isPrimitive()) { + return true; + } else if (type.isArray()) { + Class cmp = type.getComponentType(); + return cmp.isPrimitive(); + } else { + return type.equals(Color.class); + } + } +} diff --git a/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/AppearanceUIModelEvent.java b/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/AppearanceUIModelEvent.java new file mode 100644 index 0000000000..1e29e6bd19 --- /dev/null +++ b/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/AppearanceUIModelEvent.java @@ -0,0 +1,68 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.desktop.appearance; + +import java.beans.PropertyChangeEvent; + +/** + * @author mbastian + */ +public class AppearanceUIModelEvent extends PropertyChangeEvent { + + public static String MODEL = "model"; + public static String SELECTED_ELEMENT_CLASS = "selectedElementClass"; + public static String SELECTED_CATEGORY = "selectedCategory"; + public static String SELECTED_TRANSFORMER_UI = "selectedTransformerUI"; + public static String SELECTED_FUNCTION = "selectedFunction"; + public static String ATTRIBUTE_LIST = "attributeList"; + public static String REFRESH_FUNCTION = "refreshFunction"; + public static String START_STOP_AUTO_APPLY = "startStopAutoApply"; + public static String SET_AUTO_APPLY = "setStopAutoApply"; + public static String SET_LOCAL_SCALE = "setLocalScale"; + public static String SET_TRANSFORM_NULL_VALUES = "transformNullValues"; + + public AppearanceUIModelEvent(Object source, String propertyName, + Object oldValue, Object newValue) { + super(source, propertyName, oldValue, newValue); + } +} diff --git a/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/AppearanceUIModelListener.java b/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/AppearanceUIModelListener.java new file mode 100644 index 0000000000..43510f1e0e --- /dev/null +++ b/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/AppearanceUIModelListener.java @@ -0,0 +1,51 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.desktop.appearance; + +import java.beans.PropertyChangeListener; + +/** + * @author mbastian + */ +public interface AppearanceUIModelListener extends PropertyChangeListener { +} diff --git a/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/AppearanceUIModelPersistenceProvider.java b/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/AppearanceUIModelPersistenceProvider.java new file mode 100644 index 0000000000..114a469881 --- /dev/null +++ b/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/AppearanceUIModelPersistenceProvider.java @@ -0,0 +1,179 @@ +package org.gephi.desktop.appearance; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import java.util.stream.Stream; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; +import javax.xml.stream.XMLStreamWriter; +import javax.xml.stream.events.XMLEvent; +import org.gephi.appearance.api.AppearanceController; +import org.gephi.appearance.api.AppearanceModel; +import org.gephi.appearance.api.Function; +import org.gephi.appearance.spi.TransformerCategory; +import org.gephi.appearance.spi.TransformerUI; +import org.gephi.project.api.Workspace; +import org.gephi.project.spi.WorkspacePersistenceProvider; +import org.gephi.project.spi.WorkspaceXMLPersistenceProvider; +import org.gephi.utils.Serialization; +import org.openide.util.Lookup; +import org.openide.util.lookup.ServiceProvider; + +@ServiceProvider(service = WorkspacePersistenceProvider.class, position = 450) +public class AppearanceUIModelPersistenceProvider implements WorkspaceXMLPersistenceProvider { + + @Override + public void writeXML(XMLStreamWriter writer, Workspace workspace) { + AppearanceUIModel model = workspace.getLookup().lookup(AppearanceUIModel.class); + if (model != null) { + try { + writeXML(writer, model); + } catch (XMLStreamException ex) { + throw new RuntimeException(ex); + } + } + } + + @Override + public void readXML(XMLStreamReader reader, Workspace workspace) { + AppearanceUIModel model = workspace.getLookup().lookup(AppearanceUIModel.class); + AppearanceModel appearanceModel = workspace.getLookup().lookup(AppearanceModel.class); + if (appearanceModel == null) { + AppearanceController appearanceController = Lookup.getDefault().lookup(AppearanceController.class); + appearanceModel = appearanceController.getModel(workspace); + } + if (model == null) { + model = new AppearanceUIModel(appearanceModel); + workspace.add(model); + } + try { + readXML(reader, model); + } catch (XMLStreamException ex) { + throw new RuntimeException(ex); + } + } + + @Override + public String getIdentifier() { + return "appearanceuimodel"; + } + + protected void writeXML(XMLStreamWriter writer, AppearanceUIModel model) + throws XMLStreamException { + + writeSelected(writer, model); + + for (Map.Entry> savedProperty : model.savedProperties.entrySet()) { + writer.writeStartElement("savedproperty"); + writer.writeAttribute("function", savedProperty.getKey().getId()); + writeSavedProperty(writer, savedProperty.getValue()); + writer.writeEndElement(); + } + } + + private void writeSelected(XMLStreamWriter writer, AppearanceUIModel model) throws XMLStreamException { + // Element class + writer.writeStartElement("selected"); + writer.writeAttribute("elementClass", model.getSelectedElementClass()); + writer.writeEndElement(); + + // Category + for (String elementClass : model.getElementClasses()) { + writer.writeStartElement("selected"); + writer.writeAttribute("elementClass", elementClass); + writer.writeAttribute("category", model.getSelectedCategory(elementClass).getId()); + writer.writeEndElement(); + } + + // Transformer UI and functions + for (String elementClass : model.getElementClasses()) { + for (TransformerCategory transformerCategory : model.getTransformerCategories(elementClass)) { + TransformerUI transformerUI = model.getTransformerUI(elementClass, transformerCategory); + + writer.writeStartElement("selected"); + writer.writeAttribute("elementClass", elementClass); + writer.writeAttribute("ui", transformerUI.getClass().getName()); + + Function function = model.getFunction(elementClass, transformerUI); + if (function != null) { + writer.writeAttribute("function", function.getId()); + } + + writer.writeEndElement(); + } + } + } + + private void writeSavedProperty(XMLStreamWriter writer, Map savedProperty) + throws XMLStreamException { + for (Map.Entry entry : savedProperty.entrySet()) { + String valueTxt = Serialization.getValueAsText(entry.getValue()); + if (valueTxt != null) { + writer.writeStartElement("property"); + writer.writeAttribute("key", entry.getKey()); + writer.writeAttribute("value", Serialization.getValueAsText(entry.getValue())); + writer.writeAttribute("type", entry.getValue().getClass().getName()); + writer.writeEndElement(); + } + } + } + + public void readXML(XMLStreamReader reader, AppearanceUIModel model) throws XMLStreamException { + AppearanceModel appearanceModel = model.appearanceModel; + Function[] functions = Stream.concat(Arrays.stream(appearanceModel.getNodeFunctions()), + Arrays.stream(appearanceModel.getEdgeFunctions())) + .toArray(Function[]::new); + + Function function = null; + Map properties = null; + boolean end = false; + while (reader.hasNext() && !end) { + Integer eventType = reader.next(); + if (eventType.equals(XMLEvent.START_ELEMENT)) { + String name = reader.getLocalName(); + if ("savedproperty".equalsIgnoreCase(name)) { + String functionName = reader.getAttributeValue(null, "function"); + function = Arrays.stream(functions).filter(f -> f.getId().equals(functionName)).findFirst() + .orElse(null); + properties = new HashMap<>(); + } else if ("property".equalsIgnoreCase(name) && function != null) { + readSavedProperty(reader, properties); + } else if ("selected".equalsIgnoreCase(name)) { + readSelected(reader, model); + } + } else if (eventType.equals(XMLStreamReader.END_ELEMENT)) { + if ("savedproperty".equalsIgnoreCase(reader.getLocalName()) && function != null) { + model.savedProperties.put(function, properties); + function = null; + properties = null; + } else if (getIdentifier().equalsIgnoreCase(reader.getLocalName())) { + end = true; + } + } + } + + // Load saved properties + model.loadTransformerProperties(); + } + + private void readSelected(XMLStreamReader reader, AppearanceUIModel model) { + String elementClass = reader.getAttributeValue(null, "elementClass"); + String category = reader.getAttributeValue(null, "category"); + String ui = reader.getAttributeValue(null, "ui"); + String function = reader.getAttributeValue(null, "function"); + + model.setSelected(elementClass, category, ui, function); + } + + private void readSavedProperty(XMLStreamReader reader, Map map) throws XMLStreamException { + String key = reader.getAttributeValue(null, "key"); + String value = reader.getAttributeValue(null, "value"); + String type = reader.getAttributeValue(null, "type"); + Object val = Serialization.readValueFromText(value, type); + if (val != null) { + map.put(key, val); + } + } +} + diff --git a/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/AutoAppyTransformer.java b/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/AutoAppyTransformer.java new file mode 100644 index 0000000000..0673b5729a --- /dev/null +++ b/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/AutoAppyTransformer.java @@ -0,0 +1,91 @@ +/* + Copyright 2008-2013 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2013 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2013 Gephi Consortium. + */ + +package org.gephi.desktop.appearance; + +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ThreadFactory; +import java.util.concurrent.TimeUnit; +import org.gephi.appearance.api.Function; +import org.openide.util.Lookup; + +/** + * @author mbastian + */ +public class AutoAppyTransformer implements Runnable { + + private static final long DEFAULT_DELAY = 500; //ms + private final Function function; + private final AppearanceUIController controller; + private ScheduledExecutorService executor; + + public AutoAppyTransformer(Function function) { + this.controller = Lookup.getDefault().lookup(AppearanceUIController.class); + this.function = function; + } + + public void start() { + executor = Executors.newSingleThreadScheduledExecutor(r -> new Thread(r, "Appearance Auto Transformer")); + executor.scheduleWithFixedDelay(this, 0, getDelayInMs(), TimeUnit.MILLISECONDS); + } + + public void stop() { + if (executor != null && !executor.isShutdown()) { + executor.shutdown(); + } + executor = null; + } + + @Override + public void run() { + controller.transform(function); + } + + public boolean isRunning() { + return executor != null; + } + + private long getDelayInMs() { + return DEFAULT_DELAY; + } +} diff --git a/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/FunctionObserverExecutor.java b/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/FunctionObserverExecutor.java new file mode 100644 index 0000000000..cdd75de490 --- /dev/null +++ b/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/FunctionObserverExecutor.java @@ -0,0 +1,53 @@ +package org.gephi.desktop.appearance; + +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.gephi.appearance.api.Function; +import org.openide.util.Lookup; + +public class FunctionObserverExecutor implements Runnable { + + private static final long DEFAULT_DELAY = 1250; //ms + private final AppearanceUIModel model; + private ScheduledExecutorService executor; + + public FunctionObserverExecutor(AppearanceUIModel model) { + this.model = model; + } + + public void start() { + executor = Executors.newSingleThreadScheduledExecutor(r -> new Thread(r, "Appearance Function Observer")); + executor.scheduleWithFixedDelay(this, getDelayInMs(), getDelayInMs(), TimeUnit.MILLISECONDS); + } + + public void stop() { + if (executor != null && !executor.isShutdown()) { + executor.shutdown(); + } + executor = null; + } + + @Override + public void run() { + try { + Function selectedFunction = model.getSelectedFunction(); + if (selectedFunction != null && selectedFunction.hasChanged()) { + Lookup.getDefault().lookup(AppearanceUIController.class).refreshFunction(); + } + } catch (Exception e) { + Logger.getLogger(TableObserverExecutor.class.getName()) + .log(Level.SEVERE, "Error while refreshing appearance's function", e); + } + } + + public boolean isRunning() { + return executor != null; + } + + private long getDelayInMs() { + return DEFAULT_DELAY; + } +} diff --git a/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/TableObserverExecutor.java b/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/TableObserverExecutor.java new file mode 100644 index 0000000000..deb9d09325 --- /dev/null +++ b/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/TableObserverExecutor.java @@ -0,0 +1,79 @@ +package org.gephi.desktop.appearance; + +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.gephi.graph.api.GraphModel; +import org.gephi.graph.api.TableObserver; +import org.openide.util.Lookup; + +public class TableObserverExecutor implements Runnable { + + private static final long DEFAULT_DELAY = 1000; //ms + private final AppearanceUIModel model; + private ScheduledExecutorService executor; + private TableObserver nodeTableObserver; + private TableObserver edgeTableObserver; + + public TableObserverExecutor(AppearanceUIModel model) { + this.model = model; + } + + public void start() { + GraphModel graphModel = model.appearanceModel.getGraphModel(); + nodeTableObserver = graphModel.getNodeTable().createTableObserver(false); + edgeTableObserver = graphModel.getEdgeTable().createTableObserver(false); + + executor = Executors.newSingleThreadScheduledExecutor(r -> new Thread(r, "Appearance Table Observer")); + executor.scheduleWithFixedDelay(this, 0, getDelayInMs(), TimeUnit.MILLISECONDS); + } + + public void stop() { + if (executor != null && !executor.isShutdown()) { + executor.shutdown(); + } + synchronized (this) { + if (nodeTableObserver != null) { + nodeTableObserver.destroy(); + nodeTableObserver = null; + } + if (edgeTableObserver != null) { + edgeTableObserver.destroy(); + edgeTableObserver = null; + } + } + executor = null; + } + + @Override + public void run() { + synchronized (this) { + try { + String selectedElementClass = model.selectedElementClass; + if (nodeTableObserver != null && selectedElementClass.equals(AppearanceUIController.NODE_ELEMENT)) { + if (nodeTableObserver.hasTableChanged()) { + Lookup.getDefault().lookup(AppearanceUIController.class).refreshColumnsList(); + } + } else if (edgeTableObserver != null && + selectedElementClass.equals(AppearanceUIController.EDGE_ELEMENT)) { + if (edgeTableObserver.hasTableChanged()) { + Lookup.getDefault().lookup(AppearanceUIController.class).refreshColumnsList(); + } + } + } catch (Exception e) { + Logger.getLogger(TableObserverExecutor.class.getName()) + .log(Level.SEVERE, "Error while refreshing appearance's column list", e); + } + } + } + + public boolean isRunning() { + return executor != null; + } + + private long getDelayInMs() { + return DEFAULT_DELAY; + } +} \ No newline at end of file diff --git a/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/options/AppearanceOptionsPanelController.java b/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/options/AppearanceOptionsPanelController.java new file mode 100644 index 0000000000..d6bea5d562 --- /dev/null +++ b/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/options/AppearanceOptionsPanelController.java @@ -0,0 +1,123 @@ +/* + Copyright 2008-2025 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2025 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2025 Gephi Consortium. + */ + +package org.gephi.desktop.appearance.options; + +import java.beans.PropertyChangeListener; +import java.beans.PropertyChangeSupport; +import javax.swing.JComponent; +import org.netbeans.spi.options.OptionsPanelController; +import org.openide.util.HelpCtx; +import org.openide.util.Lookup; + +@OptionsPanelController.SubRegistration(location = "Gephi", + displayName = "#AdvancedOption_DisplayName_Appearance", + keywords = "#AdvancedOption_Keywords_Appearance", + keywordsCategory = "Gephi/Appearance", + position = 800) +public final class AppearanceOptionsPanelController extends OptionsPanelController { + + private final PropertyChangeSupport pcs = new PropertyChangeSupport(this); + private AppearancePanel panel; + private boolean changed; + + @Override + public void update() { + getPanel().load(); + changed = false; + } + + @Override + public void applyChanges() { + getPanel().store(); + changed = false; + } + + @Override + public void cancel() { + } + + @Override + public boolean isValid() { + return getPanel().valid(); + } + + @Override + public boolean isChanged() { + return changed; + } + + @Override + public HelpCtx getHelpCtx() { + return null; + } + + @Override + public JComponent getComponent(Lookup masterLookup) { + return getPanel(); + } + + @Override + public void addPropertyChangeListener(PropertyChangeListener l) { + pcs.addPropertyChangeListener(l); + } + + @Override + public void removePropertyChangeListener(PropertyChangeListener l) { + pcs.removePropertyChangeListener(l); + } + + private AppearancePanel getPanel() { + if (panel == null) { + panel = new AppearancePanel(this); + } + return panel; + } + + void changed() { + if (!changed) { + changed = true; + pcs.firePropertyChange(OptionsPanelController.PROP_CHANGED, false, true); + } + pcs.firePropertyChange(OptionsPanelController.PROP_VALID, null, null); + } +} diff --git a/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/options/AppearancePanel.java b/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/options/AppearancePanel.java new file mode 100644 index 0000000000..d0396adb6c --- /dev/null +++ b/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/options/AppearancePanel.java @@ -0,0 +1,462 @@ +/* + Copyright 2008-2025 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2025 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2025 Gephi Consortium. + */ + +package org.gephi.desktop.appearance.options; + +import java.awt.BorderLayout; +import java.awt.geom.Point2D; +import java.beans.PropertyChangeListener; +import javax.swing.GroupLayout; +import javax.swing.JButton; +import javax.swing.JCheckBox; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JSpinner; +import javax.swing.LayoutStyle; +import javax.swing.SpinnerNumberModel; +import javax.swing.event.ChangeListener; +import org.gephi.appearance.api.AppearanceModel; +import org.gephi.appearance.api.Interpolator; +import org.gephi.ui.components.gradientslider.GradientSlider; +import org.gephi.ui.components.gradientslider.MultiThumbSlider; +import org.gephi.ui.components.splineeditor.SplineEditor; +import org.jdesktop.swingx.JXTitledSeparator; +import org.openide.util.NbBundle; +import org.openide.util.NbPreferences; + +final class AppearancePanel extends JPanel { + + private final AppearanceOptionsPanelController controller; + + // Default appearance settings + private JXTitledSeparator defaultSettingsSeparator; + private JCheckBox rankingLocalScaleCheckBox; + private JCheckBox partitionLocalScaleCheckBox; + private JCheckBox transformNullValuesCheckBox; + // Node size + private JXTitledSeparator nodeSizeSeparator; + private JLabel nodeMinSizeLabel; + private JSpinner nodeMinSizeSpinner; + private JLabel nodeMaxSizeLabel; + private JSpinner nodeMaxSizeSpinner; + // Label size + private JXTitledSeparator labelSizeSeparator; + private JLabel labelMinSizeLabel; + private JSpinner labelMinSizeSpinner; + private JLabel labelMaxSizeLabel; + private JSpinner labelMaxSizeSpinner; + // Element (node/edge) color + private JXTitledSeparator elementColorSeparator; + private JPanel elementColorGradientPanel; + private GradientSlider elementColorGradientSlider; + // Label color + private JXTitledSeparator labelColorSeparator; + private JPanel labelColorGradientPanel; + private GradientSlider labelColorGradientSlider; + // Interpolation + private JXTitledSeparator interpolationSeparator; + private JLabel interpolationStateLabel; + private JButton configureSplineButton; + private JButton useLinearButton; + private SplineEditor splineEditor; + private Interpolator currentInterpolator = Interpolator.LINEAR; + // Reset + private JButton resetButton; + + AppearancePanel(AppearanceOptionsPanelController controller) { + this.controller = controller; + initComponents(); + addChangeListeners(); + } + + private void initComponents() { + // --- Default appearance settings --- + defaultSettingsSeparator = new JXTitledSeparator(); + defaultSettingsSeparator.setTitle( + NbBundle.getMessage(AppearancePanel.class, "AppearancePanel.defaultSettingsTitle.title")); + defaultSettingsSeparator.setFont(defaultSettingsSeparator.getFont().deriveFont(java.awt.Font.BOLD)); + + rankingLocalScaleCheckBox = new JCheckBox( + NbBundle.getMessage(AppearancePanel.class, "AppearancePanel.rankingLocalScale.text")); + partitionLocalScaleCheckBox = new JCheckBox( + NbBundle.getMessage(AppearancePanel.class, "AppearancePanel.partitionLocalScale.text")); + transformNullValuesCheckBox = new JCheckBox( + NbBundle.getMessage(AppearancePanel.class, "AppearancePanel.transformNullValues.text")); + + // --- Node size --- + nodeSizeSeparator = new JXTitledSeparator(); + nodeSizeSeparator.setTitle( + NbBundle.getMessage(AppearancePanel.class, "AppearancePanel.nodeSizeTitle.title")); + nodeSizeSeparator.setFont(nodeSizeSeparator.getFont().deriveFont(java.awt.Font.BOLD)); + + nodeMinSizeLabel = new JLabel( + NbBundle.getMessage(AppearancePanel.class, "AppearancePanel.minSize.text")); + nodeMaxSizeLabel = new JLabel( + NbBundle.getMessage(AppearancePanel.class, "AppearancePanel.maxSize.text")); + nodeMinSizeSpinner = new JSpinner(new SpinnerNumberModel( + AppearancePreferences.DEFAULT_NODE_RANKING_SIZE_MIN, 0.01f, null, 0.5f)); + nodeMaxSizeSpinner = new JSpinner(new SpinnerNumberModel( + AppearancePreferences.DEFAULT_NODE_RANKING_SIZE_MAX, 0.5f, null, 0.5f)); + + // --- Label size --- + labelSizeSeparator = new JXTitledSeparator(); + labelSizeSeparator.setTitle( + NbBundle.getMessage(AppearancePanel.class, "AppearancePanel.labelSizeTitle.title")); + labelSizeSeparator.setFont(labelSizeSeparator.getFont().deriveFont(java.awt.Font.BOLD)); + + labelMinSizeLabel = new JLabel( + NbBundle.getMessage(AppearancePanel.class, "AppearancePanel.minSize.text")); + labelMaxSizeLabel = new JLabel( + NbBundle.getMessage(AppearancePanel.class, "AppearancePanel.maxSize.text")); + labelMinSizeSpinner = new JSpinner(new SpinnerNumberModel( + AppearancePreferences.DEFAULT_LABEL_RANKING_SIZE_MIN, 0.01f, null, 0.5f)); + labelMaxSizeSpinner = new JSpinner(new SpinnerNumberModel( + AppearancePreferences.DEFAULT_LABEL_RANKING_SIZE_MAX, 0.5f, null, 0.5f)); + + // --- Element (node/edge) color --- + elementColorSeparator = new JXTitledSeparator(); + elementColorSeparator.setTitle( + NbBundle.getMessage(AppearancePanel.class, "AppearancePanel.elementColorTitle.title")); + elementColorSeparator.setFont(elementColorSeparator.getFont().deriveFont(java.awt.Font.BOLD)); + + elementColorGradientPanel = new JPanel(new BorderLayout()); + elementColorGradientPanel.setOpaque(false); + elementColorGradientSlider = new GradientSlider(GradientSlider.HORIZONTAL); + elementColorGradientPanel.add(elementColorGradientSlider, BorderLayout.CENTER); + + // --- Label color --- + labelColorSeparator = new JXTitledSeparator(); + labelColorSeparator.setTitle( + NbBundle.getMessage(AppearancePanel.class, "AppearancePanel.labelColorTitle.title")); + labelColorSeparator.setFont(labelColorSeparator.getFont().deriveFont(java.awt.Font.BOLD)); + + labelColorGradientPanel = new JPanel(new BorderLayout()); + labelColorGradientPanel.setOpaque(false); + labelColorGradientSlider = new GradientSlider(GradientSlider.HORIZONTAL); + labelColorGradientPanel.add(labelColorGradientSlider, BorderLayout.CENTER); + + // --- Interpolation --- + interpolationSeparator = new JXTitledSeparator(); + interpolationSeparator.setTitle( + NbBundle.getMessage(AppearancePanel.class, "AppearancePanel.interpolationTitle.title")); + interpolationSeparator.setFont(interpolationSeparator.getFont().deriveFont(java.awt.Font.BOLD)); + + interpolationStateLabel = new JLabel(); + + configureSplineButton = new JButton( + NbBundle.getMessage(AppearancePanel.class, "AppearancePanel.configureSplineButton.text")); + configureSplineButton.addActionListener(e -> openSplineEditor()); + + useLinearButton = new JButton( + NbBundle.getMessage(AppearancePanel.class, "AppearancePanel.useLinearButton.text")); + useLinearButton.addActionListener(e -> { + currentInterpolator = Interpolator.LINEAR; + updateInterpolationUI(); + controller.changed(); + }); + + // --- Reset button --- + resetButton = new JButton( + NbBundle.getMessage(AppearancePanel.class, "AppearancePanel.resetButton.text")); + resetButton.addActionListener(e -> resetDefaults()); + + GroupLayout layout = new GroupLayout(this); + setLayout(layout); + layout.setAutoCreateGaps(true); + layout.setAutoCreateContainerGaps(true); + + layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + // Default appearance settings + .addComponent(defaultSettingsSeparator) + .addGroup(layout.createSequentialGroup() + .addGap(10) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(rankingLocalScaleCheckBox) + .addComponent(partitionLocalScaleCheckBox) + .addComponent(transformNullValuesCheckBox))) + // Node size + .addComponent(nodeSizeSeparator) + .addGroup(layout.createSequentialGroup() + .addGap(10) + .addComponent(nodeMinSizeLabel) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) + .addComponent(nodeMinSizeSpinner, GroupLayout.PREFERRED_SIZE, 70, + GroupLayout.PREFERRED_SIZE) + .addGap(18) + .addComponent(nodeMaxSizeLabel) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) + .addComponent(nodeMaxSizeSpinner, GroupLayout.PREFERRED_SIZE, 70, + GroupLayout.PREFERRED_SIZE)) + // Label size + .addComponent(labelSizeSeparator) + .addGroup(layout.createSequentialGroup() + .addGap(10) + .addComponent(labelMinSizeLabel) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) + .addComponent(labelMinSizeSpinner, GroupLayout.PREFERRED_SIZE, 70, + GroupLayout.PREFERRED_SIZE) + .addGap(18) + .addComponent(labelMaxSizeLabel) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) + .addComponent(labelMaxSizeSpinner, GroupLayout.PREFERRED_SIZE, 70, + GroupLayout.PREFERRED_SIZE)) + // Element color + .addComponent(elementColorSeparator) + .addGroup(layout.createSequentialGroup() + .addGap(10) + .addComponent(elementColorGradientPanel, 0, GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addGap(10)) + // Label color + .addComponent(labelColorSeparator) + .addGroup(layout.createSequentialGroup() + .addGap(10) + .addComponent(labelColorGradientPanel, 0, GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addGap(10)) + // Interpolation + .addComponent(interpolationSeparator) + .addGroup(layout.createSequentialGroup() + .addGap(10) + .addComponent(interpolationStateLabel, 0, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(configureSplineButton) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) + .addComponent(useLinearButton)) + // Reset + .addComponent(resetButton) + ); + + layout.setVerticalGroup(layout.createSequentialGroup() + // Default appearance settings + .addComponent(defaultSettingsSeparator, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, + GroupLayout.PREFERRED_SIZE) + .addComponent(rankingLocalScaleCheckBox) + .addComponent(partitionLocalScaleCheckBox) + .addComponent(transformNullValuesCheckBox) + // Node size + .addGap(10) + .addComponent(nodeSizeSeparator, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, + GroupLayout.PREFERRED_SIZE) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(nodeMinSizeLabel) + .addComponent(nodeMinSizeSpinner, GroupLayout.PREFERRED_SIZE, + GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(nodeMaxSizeLabel) + .addComponent(nodeMaxSizeSpinner, GroupLayout.PREFERRED_SIZE, + GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + // Label size + .addGap(10) + .addComponent(labelSizeSeparator, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, + GroupLayout.PREFERRED_SIZE) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(labelMinSizeLabel) + .addComponent(labelMinSizeSpinner, GroupLayout.PREFERRED_SIZE, + GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(labelMaxSizeLabel) + .addComponent(labelMaxSizeSpinner, GroupLayout.PREFERRED_SIZE, + GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + // Element color + .addGap(10) + .addComponent(elementColorSeparator, GroupLayout.PREFERRED_SIZE, + GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(elementColorGradientPanel, 22, 22, 22) + // Label color + .addGap(10) + .addComponent(labelColorSeparator, GroupLayout.PREFERRED_SIZE, + GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(labelColorGradientPanel, 22, 22, 22) + // Interpolation + .addGap(10) + .addComponent(interpolationSeparator, GroupLayout.PREFERRED_SIZE, + GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(interpolationStateLabel) + .addComponent(configureSplineButton) + .addComponent(useLinearButton)) + // Reset + .addGap(18) + .addComponent(resetButton) + ); + } + + private void addChangeListeners() { + rankingLocalScaleCheckBox.addActionListener(e -> controller.changed()); + partitionLocalScaleCheckBox.addActionListener(e -> controller.changed()); + transformNullValuesCheckBox.addActionListener(e -> controller.changed()); + + ChangeListener sizeChangeListener = e -> controller.changed(); + nodeMinSizeSpinner.addChangeListener(sizeChangeListener); + nodeMaxSizeSpinner.addChangeListener(sizeChangeListener); + labelMinSizeSpinner.addChangeListener(sizeChangeListener); + labelMaxSizeSpinner.addChangeListener(sizeChangeListener); + + PropertyChangeListener gradientChangeListener = evt -> { + String prop = evt.getPropertyName(); + if (MultiThumbSlider.VALUES_PROPERTY.equals(prop) || + MultiThumbSlider.ADJUST_PROPERTY.equals(prop)) { + controller.changed(); + } + }; + elementColorGradientSlider.addPropertyChangeListener(gradientChangeListener); + labelColorGradientSlider.addPropertyChangeListener(gradientChangeListener); + } + + private void openSplineEditor() { + if (splineEditor == null) { + splineEditor = new SplineEditor( + NbBundle.getMessage(AppearancePanel.class, "AppearancePanel.splineEditor.title")); + } + if (currentInterpolator instanceof Interpolator.BezierInterpolator) { + Interpolator.BezierInterpolator bi = (Interpolator.BezierInterpolator) currentInterpolator; + splineEditor.setControl1(bi.getControl1()); + splineEditor.setControl2(bi.getControl2()); + } else { + splineEditor.setControl1(new Point2D.Float(0, 0)); + splineEditor.setControl2(new Point2D.Float(1, 1)); + } + splineEditor.setVisible(true); + currentInterpolator = new Interpolator.BezierInterpolator( + (float) splineEditor.getControl1().getX(), (float) splineEditor.getControl1().getY(), + (float) splineEditor.getControl2().getX(), (float) splineEditor.getControl2().getY()); + updateInterpolationUI(); + controller.changed(); + } + + private void updateInterpolationUI() { + boolean isLinear = !(currentInterpolator instanceof Interpolator.BezierInterpolator); + if (isLinear) { + interpolationStateLabel.setText( + NbBundle.getMessage(AppearancePanel.class, "AppearancePanel.interpolation.linear")); + } else { + Interpolator.BezierInterpolator bi = (Interpolator.BezierInterpolator) currentInterpolator; + Point2D c1 = bi.getControl1(); + Point2D c2 = bi.getControl2(); + interpolationStateLabel.setText( + NbBundle.getMessage(AppearancePanel.class, "AppearancePanel.interpolation.spline", + String.format("(%.2f,%.2f)", c1.getX(), c1.getY()), + String.format("(%.2f,%.2f)", c2.getX(), c2.getY()))); + } + useLinearButton.setEnabled(!isLinear); + } + + private void resetDefaults() { + NbPreferences.forModule(AppearanceModel.class).remove(AppearancePreferences.RANKING_LOCAL_SCALE); + NbPreferences.forModule(AppearanceModel.class).remove(AppearancePreferences.PARTITION_LOCAL_SCALE); + NbPreferences.forModule(AppearanceModel.class).remove(AppearancePreferences.TRANSFORM_NULL_VALUES); + NbPreferences.forModule(AppearancePreferences.class).remove(AppearancePreferences.NODE_RANKING_SIZE_MIN); + NbPreferences.forModule(AppearancePreferences.class).remove(AppearancePreferences.NODE_RANKING_SIZE_MAX); + NbPreferences.forModule(AppearancePreferences.class).remove(AppearancePreferences.LABEL_RANKING_SIZE_MIN); + NbPreferences.forModule(AppearancePreferences.class).remove(AppearancePreferences.LABEL_RANKING_SIZE_MAX); + NbPreferences.forModule(AppearancePreferences.class).remove(AppearancePreferences.ELEMENT_RANKING_COLORS); + NbPreferences.forModule(AppearancePreferences.class) + .remove(AppearancePreferences.ELEMENT_RANKING_COLOR_POSITIONS); + NbPreferences.forModule(AppearancePreferences.class).remove(AppearancePreferences.LABEL_RANKING_COLORS); + NbPreferences.forModule(AppearancePreferences.class) + .remove(AppearancePreferences.LABEL_RANKING_COLOR_POSITIONS); + NbPreferences.forModule(Interpolator.class).remove(AppearancePreferences.DEFAULT_INTERPOLATOR); + load(); + } + + void load() { + rankingLocalScaleCheckBox.setSelected(AppearancePreferences.isRankingLocalScale()); + partitionLocalScaleCheckBox.setSelected(AppearancePreferences.isPartitionLocalScale()); + transformNullValuesCheckBox.setSelected(AppearancePreferences.isTransformNullValues()); + + nodeMinSizeSpinner.setValue(AppearancePreferences.getNodeRankingSizeMin()); + nodeMaxSizeSpinner.setValue(AppearancePreferences.getNodeRankingSizeMax()); + labelMinSizeSpinner.setValue(AppearancePreferences.getLabelRankingSizeMin()); + labelMaxSizeSpinner.setValue(AppearancePreferences.getLabelRankingSizeMax()); + + elementColorGradientSlider.setValues( + AppearancePreferences.getElementRankingColorPositions(), + AppearancePreferences.getElementRankingColors()); + labelColorGradientSlider.setValues( + AppearancePreferences.getLabelRankingColorPositions(), + AppearancePreferences.getLabelRankingColors()); + + currentInterpolator = AppearancePreferences.getDefaultInterpolator(); + updateInterpolationUI(); + } + + void store() { + NbPreferences.forModule(AppearanceModel.class) + .putBoolean(AppearancePreferences.RANKING_LOCAL_SCALE, rankingLocalScaleCheckBox.isSelected()); + NbPreferences.forModule(AppearanceModel.class) + .putBoolean(AppearancePreferences.PARTITION_LOCAL_SCALE, partitionLocalScaleCheckBox.isSelected()); + NbPreferences.forModule(AppearanceModel.class) + .putBoolean(AppearancePreferences.TRANSFORM_NULL_VALUES, transformNullValuesCheckBox.isSelected()); + + NbPreferences.forModule(AppearancePreferences.class) + .putFloat(AppearancePreferences.NODE_RANKING_SIZE_MIN, + (Float) nodeMinSizeSpinner.getValue()); + NbPreferences.forModule(AppearancePreferences.class) + .putFloat(AppearancePreferences.NODE_RANKING_SIZE_MAX, + (Float) nodeMaxSizeSpinner.getValue()); + NbPreferences.forModule(AppearancePreferences.class) + .putFloat(AppearancePreferences.LABEL_RANKING_SIZE_MIN, + (Float) labelMinSizeSpinner.getValue()); + NbPreferences.forModule(AppearancePreferences.class) + .putFloat(AppearancePreferences.LABEL_RANKING_SIZE_MAX, + (Float) labelMaxSizeSpinner.getValue()); + + NbPreferences.forModule(AppearancePreferences.class) + .put(AppearancePreferences.ELEMENT_RANKING_COLORS, + AppearancePreferences.encodeColors(elementColorGradientSlider.getColors())); + NbPreferences.forModule(AppearancePreferences.class) + .put(AppearancePreferences.ELEMENT_RANKING_COLOR_POSITIONS, + AppearancePreferences.encodePositions(elementColorGradientSlider.getThumbPositions())); + NbPreferences.forModule(AppearancePreferences.class) + .put(AppearancePreferences.LABEL_RANKING_COLORS, + AppearancePreferences.encodeColors(labelColorGradientSlider.getColors())); + NbPreferences.forModule(AppearancePreferences.class) + .put(AppearancePreferences.LABEL_RANKING_COLOR_POSITIONS, + AppearancePreferences.encodePositions(labelColorGradientSlider.getThumbPositions())); + + NbPreferences.forModule(Interpolator.class) + .put(AppearancePreferences.DEFAULT_INTERPOLATOR, currentInterpolator.toString()); + } + + boolean valid() { + return true; + } +} diff --git a/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/options/AppearancePreferences.java b/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/options/AppearancePreferences.java new file mode 100644 index 0000000000..521ff6e6df --- /dev/null +++ b/modules/DesktopAppearance/src/main/java/org/gephi/desktop/appearance/options/AppearancePreferences.java @@ -0,0 +1,216 @@ +/* + Copyright 2008-2025 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2025 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2025 Gephi Consortium. + */ + +package org.gephi.desktop.appearance.options; + +import java.awt.Color; +import java.util.Arrays; +import java.util.stream.Collectors; +import org.gephi.appearance.api.AppearanceModel; +import org.gephi.appearance.api.Interpolator; +import org.openide.util.NbPreferences; + +/** + * Appearance module preferences, storing default values for transformers. + */ +public final class AppearancePreferences { + + // Size keys + public static final String NODE_RANKING_SIZE_MIN = "Appearance.nodeRankingSizeMin"; + public static final String NODE_RANKING_SIZE_MAX = "Appearance.nodeRankingSizeMax"; + public static final String LABEL_RANKING_SIZE_MIN = "Appearance.labelRankingSizeMin"; + public static final String LABEL_RANKING_SIZE_MAX = "Appearance.labelRankingSizeMax"; + + // Color keys β€” values encoded as comma-separated hex RGB / float strings + public static final String ELEMENT_RANKING_COLORS = "Appearance.elementRankingColors"; + public static final String ELEMENT_RANKING_COLOR_POSITIONS = "Appearance.elementRankingColorPositions"; + public static final String LABEL_RANKING_COLORS = "Appearance.labelRankingColors"; + public static final String LABEL_RANKING_COLOR_POSITIONS = "Appearance.labelRankingColorPositions"; + + // Size defaults + public static final float DEFAULT_NODE_RANKING_SIZE_MIN = 1f; + public static final float DEFAULT_NODE_RANKING_SIZE_MAX = 4f; + public static final float DEFAULT_LABEL_RANKING_SIZE_MIN = 1f; + public static final float DEFAULT_LABEL_RANKING_SIZE_MAX = 4f; + + // Default appearance settings keys + public static final String RANKING_LOCAL_SCALE = "Appearance.rankingLocalScale"; + public static final String PARTITION_LOCAL_SCALE = "Appearance.partitionLocalScale"; + public static final String TRANSFORM_NULL_VALUES = "Appearance.transformNullValues"; + + // Default appearance settings defaults + public static final boolean DEFAULT_RANKING_LOCAL_SCALE = false; + public static final boolean DEFAULT_PARTITION_LOCAL_SCALE = false; + public static final boolean DEFAULT_TRANSFORM_NULL_VALUES = false; + + // Interpolator key + public static final String DEFAULT_INTERPOLATOR = "Appearance.defaultInterpolator"; + + // Color defaults β€” match RankingElementColorTransformer's hardcoded initial gradient + public static final Color[] DEFAULT_ELEMENT_RANKING_COLORS = + {new Color(0xEDF8FB), new Color(0x66C2A4), new Color(0x006D2C)}; + public static final float[] DEFAULT_COLOR_POSITIONS = {0f, 0.5f, 1f}; + + private AppearancePreferences() { + } + + // ---- Default appearance settings accessors ---- + + public static boolean isRankingLocalScale() { + return NbPreferences.forModule(AppearanceModel.class) + .getBoolean(RANKING_LOCAL_SCALE, DEFAULT_RANKING_LOCAL_SCALE); + } + + public static boolean isPartitionLocalScale() { + return NbPreferences.forModule(AppearanceModel.class) + .getBoolean(PARTITION_LOCAL_SCALE, DEFAULT_PARTITION_LOCAL_SCALE); + } + + public static boolean isTransformNullValues() { + return NbPreferences.forModule(AppearanceModel.class) + .getBoolean(TRANSFORM_NULL_VALUES, DEFAULT_TRANSFORM_NULL_VALUES); + } + + // ---- Size accessors ---- + + public static float getNodeRankingSizeMin() { + return NbPreferences.forModule(AppearancePreferences.class) + .getFloat(NODE_RANKING_SIZE_MIN, DEFAULT_NODE_RANKING_SIZE_MIN); + } + + public static float getNodeRankingSizeMax() { + return NbPreferences.forModule(AppearancePreferences.class) + .getFloat(NODE_RANKING_SIZE_MAX, DEFAULT_NODE_RANKING_SIZE_MAX); + } + + public static float getLabelRankingSizeMin() { + return NbPreferences.forModule(AppearancePreferences.class) + .getFloat(LABEL_RANKING_SIZE_MIN, DEFAULT_LABEL_RANKING_SIZE_MIN); + } + + public static float getLabelRankingSizeMax() { + return NbPreferences.forModule(AppearancePreferences.class) + .getFloat(LABEL_RANKING_SIZE_MAX, DEFAULT_LABEL_RANKING_SIZE_MAX); + } + + // ---- Color accessors ---- + + public static Color[] getElementRankingColors() { + String s = NbPreferences.forModule(AppearancePreferences.class).get(ELEMENT_RANKING_COLORS, null); + return decodeColors(s, DEFAULT_ELEMENT_RANKING_COLORS); + } + + public static float[] getElementRankingColorPositions() { + String s = + NbPreferences.forModule(AppearancePreferences.class).get(ELEMENT_RANKING_COLOR_POSITIONS, null); + return decodePositions(s, DEFAULT_COLOR_POSITIONS); + } + + public static Color[] getLabelRankingColors() { + String s = NbPreferences.forModule(AppearancePreferences.class).get(LABEL_RANKING_COLORS, null); + return decodeColors(s, DEFAULT_ELEMENT_RANKING_COLORS); + } + + public static float[] getLabelRankingColorPositions() { + String s = + NbPreferences.forModule(AppearancePreferences.class).get(LABEL_RANKING_COLOR_POSITIONS, null); + return decodePositions(s, DEFAULT_COLOR_POSITIONS); + } + + // ---- Interpolator accessors ---- + + public static Interpolator getDefaultInterpolator() { + String s = NbPreferences.forModule(Interpolator.class).get(DEFAULT_INTERPOLATOR, null); + return Interpolator.fromString(s); + } + + // ---- Encoding helpers ---- + + public static String encodeColors(Color[] colors) { + return Arrays.stream(colors) + .map(c -> String.format("#%06X", c.getRGB() & 0xFFFFFF)) + .collect(Collectors.joining(",")); + } + + public static String encodePositions(float[] positions) { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < positions.length; i++) { + if (i > 0) { + sb.append(','); + } + sb.append(positions[i]); + } + return sb.toString(); + } + + private static Color[] decodeColors(String s, Color[] defaultValue) { + if (s == null || s.isEmpty()) { + return defaultValue; + } + try { + String[] parts = s.split(","); + Color[] colors = new Color[parts.length]; + for (int i = 0; i < parts.length; i++) { + colors[i] = Color.decode(parts[i].trim()); + } + return colors; + } catch (Exception e) { + return defaultValue; + } + } + + private static float[] decodePositions(String s, float[] defaultValue) { + if (s == null || s.isEmpty()) { + return defaultValue; + } + try { + String[] parts = s.split(","); + float[] positions = new float[parts.length]; + for (int i = 0; i < parts.length; i++) { + positions[i] = Float.parseFloat(parts[i].trim()); + } + return positions; + } catch (Exception e) { + return defaultValue; + } + } +} diff --git a/modules/DesktopAppearance/src/main/nbm/manifest.mf b/modules/DesktopAppearance/src/main/nbm/manifest.mf new file mode 100644 index 0000000000..22f9ed6265 --- /dev/null +++ b/modules/DesktopAppearance/src/main/nbm/manifest.mf @@ -0,0 +1,6 @@ +Manifest-Version: 1.0 +AutoUpdate-Essential-Module: true +OpenIDE-Module-Localizing-Bundle: org/gephi/desktop/appearance/Bundle.properties +OpenIDE-Module-Specification-Version: ${gephi.modules.specification.version} +OpenIDE-Module-Display-Category: Gephi UI +OpenIDE-Module-Name: Desktop Appearance diff --git a/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle.properties b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle.properties new file mode 100644 index 0000000000..6a19a17c5a --- /dev/null +++ b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle.properties @@ -0,0 +1,24 @@ +OpenIDE-Module-Short-Description=Integrated ranking UI +Actions/Window/org-gephi-desktop-appearance-AppearanceAction.instance=Appearance +CTL_AppearanceAction=Appearance +CTL_AppearanceTopComponent=Appearance +!HINT_AppearanceTopComponent= + +AppearanceTopComponent.choose.text=---Choose an attribute + +AppearanceToolbar.nodes.label = Nodes +AppearanceToolbar.edges.label = Edges + +AppearanceTopComponent.applyButton.text=Apply +AppearanceTopComponent.enableAutoButton.toolTipText=Enable auto transformation - applied continuously +AppearanceTopComponent.splineButton.toolTipText=Configure rank interpolation +AppearanceTopComponent.splineButton.text=Spline... +AppearanceTopComponent.splineEditor.title=Interpolate +AppearanceTopComponent.applyButton.toolTipText=Apply the current transformation to the graph +AppearanceTopComponent.localScaleButton.toolTipText=Use local scale. The bounds are calculated only on the visible graph instead of the complete graph. +AppearanceTopComponent.partitionLocalScaleButton.toolTipText=Use visible graph instead of complete graph for partition calculations +AppearanceTopComponent.stopAutoApplyButton.toolTipText=Stop auto apply +AppearanceTopComponent.stopAutoApplyButton.text=Stop +AppearanceTopComponent.autoApplyButton.toolTipText=Apply continuously even when the values changes +AppearanceTopComponent.autoApplyButton.text=Auto Apply +AppearanceTopComponent.transformNullValues.toolTipText= Also transform missing values diff --git a/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_ar.properties b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_ar.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_ar.properties @@ -0,0 +1 @@ + diff --git a/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_ca.properties b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_ca.properties new file mode 100644 index 0000000000..130a0ab8bf --- /dev/null +++ b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_ca.properties @@ -0,0 +1,20 @@ +OpenIDE-Module-Short-Description=Integrated ranking UI +Actions/Window/org-gephi-desktop-appearance-AppearanceAction.instance=Aparenηa +CTL_AppearanceAction=Aparenηa +CTL_AppearanceTopComponent=Aparenηa +!HINT_AppearanceTopComponent= + +AppearanceTopComponent.choose.text=---Tria un atribut +AppearanceToolbar.nodes.label=Nodes +AppearanceToolbar.edges.label=Arestes +AppearanceTopComponent.applyButton.text=Aplica +AppearanceTopComponent.enableAutoButton.toolTipText=Enable auto transformation - applied continuously +AppearanceTopComponent.splineButton.toolTipText=Configure rank interpolation +AppearanceTopComponent.splineButton.text=Spline... +AppearanceTopComponent.splineEditor.title=Interpolate +AppearanceTopComponent.applyButton.toolTipText=Apply the current transformation to the graph +AppearanceTopComponent.localScaleButton.toolTipText=Use local scale. The bounds are calculated only on the visible graph instead of the complete graph. +AppearanceTopComponent.stopAutoApplyButton.toolTipText=Stop auto apply +AppearanceTopComponent.stopAutoApplyButton.text=Atura +AppearanceTopComponent.autoApplyButton.toolTipText=Apply continuously even when the values changes +AppearanceTopComponent.autoApplyButton.text=Aplica automΰticament diff --git a/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_cs.properties b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_cs.properties new file mode 100644 index 0000000000..3c793dae04 --- /dev/null +++ b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_cs.properties @@ -0,0 +1,23 @@ +OpenIDE-Module-Short-Description=Integrovanι rozhranν hodnocenν +Actions/Window/org-gephi-desktop-appearance-AppearanceAction.instance=Vzhled +CTL_AppearanceAction=Vzhled +CTL_AppearanceTopComponent=Vzhled +!HINT_AppearanceTopComponent= + +AppearanceTopComponent.choose.text=---Zvolte vlastnost + + +AppearanceToolbar.nodes.label = Uzle +AppearanceToolbar.edges.label = Hrany + +AppearanceTopComponent.applyButton.text=Pou\u017eνt +AppearanceTopComponent.enableAutoButton.toolTipText=Povolit auto transformaci - pou\u017eivαna nep\u0159etr\u017eit\u011b +AppearanceTopComponent.splineButton.toolTipText=Nastavit interpolaci hodnocenν +AppearanceTopComponent.splineButton.text=K\u0159ivka... +AppearanceTopComponent.splineEditor.title=Interpolovat +AppearanceTopComponent.applyButton.toolTipText=Pou\u017eνt sou\u010dasnou transformaci na graf +AppearanceTopComponent.localScaleButton.toolTipText= Pou\u017eνt mνstnν m\u011b\u0159νtko. Hranice budou vypo\u010dνtαny pouze ve viditelnιm grafu mνsto ϊplnιho. +AppearanceTopComponent.stopAutoApplyButton.toolTipText=Pou\u017eνvat nep\u0159etr\u017eit\u011b, i kdy\u017e se hodnoty zm\u011bnν +AppearanceTopComponent.stopAutoApplyButton.text=Automaticky pou\u017eνt +AppearanceTopComponent.autoApplyButton.toolTipText=Pou\u017eνvat nep\u0159etr\u017eit\u011b, i kdy\u017e se hodnoty zm\u011bnν +AppearanceTopComponent.autoApplyButton.text=Automaticky pou\u017eνt diff --git a/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_de.properties b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_de.properties new file mode 100644 index 0000000000..0f2d11dc9a --- /dev/null +++ b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_de.properties @@ -0,0 +1,22 @@ +OpenIDE-Module-Short-Description=Ausgestaltung +Actions/Window/org-gephi-desktop-appearance-AppearanceAction.instance=Ausgestaltung +CTL_AppearanceAction=Ausgestaltung +CTL_AppearanceTopComponent=Ausgestaltung +!HINT_AppearanceTopComponent= + +AppearanceTopComponent.choose.text=---Wδhlen Sie ein Attribut +AppearanceToolbar.nodes.label=Knoten +AppearanceToolbar.edges.label=Kanten +AppearanceTopComponent.applyButton.text=Anwenden +AppearanceTopComponent.enableAutoButton.toolTipText=Aktiviere Auto-Transformation - kontinuierlich angewendet +AppearanceTopComponent.splineButton.toolTipText=Konfiguriere Rank Interpolation +AppearanceTopComponent.splineButton.text=Spline... +AppearanceTopComponent.splineEditor.title=Interpolieren +AppearanceTopComponent.applyButton.toolTipText=Aktuelle Transformation auf Graph anwenden +AppearanceTopComponent.localScaleButton.toolTipText=Lokale Skalierung verwenden. Die Grenzen werden nur auf dem sichtbaren Graph berechnet anstatt auf dem kompletten Graphen. +AppearanceTopComponent.stopAutoApplyButton.toolTipText=Auto-Anwenden stoppen +AppearanceTopComponent.stopAutoApplyButton.text=Stop +AppearanceTopComponent.autoApplyButton.toolTipText=Kontinuierlich anwenden, auch wenn sich die Werte δndern +AppearanceTopComponent.autoApplyButton.text=Auto-Anwenden +AppearanceTopComponent.partitionLocalScaleButton.toolTipText=Verwenden Sie den sichtbaren Graphen anstelle des vollst\u00E4ndigen Graphen f\u00FCr Partitionierungsberechnungen +AppearanceTopComponent.transformNullValues.toolTipText=Transformiere ebenso fehlende Werte diff --git a/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_es.properties b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_es.properties new file mode 100644 index 0000000000..52aeadfa29 --- /dev/null +++ b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_es.properties @@ -0,0 +1,22 @@ +OpenIDE-Module-Short-Description=UI Integrada de ranking +Actions/Window/org-gephi-desktop-appearance-AppearanceAction.instance=Apariencia +CTL_AppearanceAction=Apariencia +CTL_AppearanceTopComponent=Apariencia +!HINT_AppearanceTopComponent= + +AppearanceTopComponent.choose.text=---Escoge un atributo +AppearanceToolbar.nodes.label=Nodos +AppearanceToolbar.edges.label=Aristas +AppearanceTopComponent.applyButton.text=Aplicar +AppearanceTopComponent.enableAutoButton.toolTipText=Activar auto transformaciσn - aplicada continuamente +AppearanceTopComponent.splineButton.toolTipText=Configurar interpolaciσn de la clasificaciσn +AppearanceTopComponent.splineButton.text=Spline... +AppearanceTopComponent.splineEditor.title=Interpolaciσn +AppearanceTopComponent.applyButton.toolTipText=Aplicar la transformaciσn actual al grafo +AppearanceTopComponent.localScaleButton.toolTipText=Utilizar escala local. Los l\u00EDmites se calculan s\u00F3lo en el grafo visible en lugar del grafo completo. +AppearanceTopComponent.stopAutoApplyButton.toolTipText=Aplicar continuamente incluso cuando los valores cambian +AppearanceTopComponent.stopAutoApplyButton.text=Auto aplicar +AppearanceTopComponent.autoApplyButton.toolTipText=Aplicar continuamente incluso cuando los valores cambian +AppearanceTopComponent.autoApplyButton.text=Auto aplicar +AppearanceTopComponent.partitionLocalScaleButton.toolTipText=Utilizar el grafo visible en lugar del grafo completo para los c\u00E1lculos de partici\u00F3n +AppearanceTopComponent.transformNullValues.toolTipText=Transformar tambi\u00E9n los valores que faltan diff --git a/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_fr.properties b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_fr.properties new file mode 100644 index 0000000000..6909c230ed --- /dev/null +++ b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_fr.properties @@ -0,0 +1,22 @@ +OpenIDE-Module-Short-Description=Intθgre l'interface utilisateur du module Ranking +Actions/Window/org-gephi-desktop-appearance-AppearanceAction.instance=Aspect +CTL_AppearanceAction=Aspect +CTL_AppearanceTopComponent=Aspect +!HINT_AppearanceTopComponent= + +AppearanceTopComponent.choose.text=--Choisissez un attribut +AppearanceToolbar.nodes.label=Noeuds +AppearanceToolbar.edges.label=Liens +AppearanceTopComponent.applyButton.text=Appliquer +AppearanceTopComponent.enableAutoButton.toolTipText=Active la transformation automatique - en continu +AppearanceTopComponent.splineButton.toolTipText=Configurer l'interpolation des rangs +AppearanceTopComponent.splineButton.text=Spline... +AppearanceTopComponent.splineEditor.title=Interpoler +AppearanceTopComponent.applyButton.toolTipText=Appliquer la transformation actuelle au graphe. +AppearanceTopComponent.localScaleButton.toolTipText=Utiliser une ιchelle locale. Les limites min et max sont calculιes seulement sur le graphe visible au lieu du graphe entier. +AppearanceTopComponent.stopAutoApplyButton.toolTipText=Exιcute en continu mκme si les valeurs changent +AppearanceTopComponent.stopAutoApplyButton.text=Exιcution auto +AppearanceTopComponent.autoApplyButton.toolTipText=Exιcute en continu mκme si les valeurs changent +AppearanceTopComponent.autoApplyButton.text=Exιcution auto +AppearanceTopComponent.partitionLocalScaleButton.toolTipText=\ Utilise le graphe visible plut\u00F4t que le graphe complet pour les calculs de partitions +AppearanceTopComponent.transformNullValues.toolTipText=Transforme aussi les valeurs manquantes diff --git a/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_he.properties b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_he.properties new file mode 100644 index 0000000000..46f49909df --- /dev/null +++ b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_he.properties @@ -0,0 +1,20 @@ +OpenIDE-Module-Short-Description=Integrated ranking UI +Actions/Window/org-gephi-desktop-appearance-AppearanceAction.instance=Appearance +CTL_AppearanceAction=Appearance +CTL_AppearanceTopComponent=Appearance +!HINT_AppearanceTopComponent= + +AppearanceTopComponent.choose.text=---Choose an attribute +AppearanceToolbar.nodes.label=Nodes +AppearanceToolbar.edges.label=Edges +AppearanceTopComponent.applyButton.text=Apply +AppearanceTopComponent.enableAutoButton.toolTipText=Enable auto transformation - applied continuously +AppearanceTopComponent.splineButton.toolTipText=Configure rank interpolation +AppearanceTopComponent.splineButton.text=Spline... +AppearanceTopComponent.splineEditor.title=Interpolate +AppearanceTopComponent.applyButton.toolTipText=Apply the current transformation to the graph +AppearanceTopComponent.localScaleButton.toolTipText=Use local scale. The bounds are calculated only on the visible graph instead of the complete graph. +AppearanceTopComponent.stopAutoApplyButton.toolTipText=Stop auto apply +AppearanceTopComponent.stopAutoApplyButton.text=Stop +AppearanceTopComponent.autoApplyButton.toolTipText=Apply continuously even when the values changes +AppearanceTopComponent.autoApplyButton.text=Auto Apply diff --git a/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_hu.properties b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_hu.properties new file mode 100644 index 0000000000..96a72ceebb --- /dev/null +++ b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_hu.properties @@ -0,0 +1,21 @@ + + +AppearanceTopComponent.applyButton.text=Alkalmaz +CTL_AppearanceAction=Kin\u00E9zet +AppearanceTopComponent.transformNullValues.toolTipText=A hi\u00E1nyz\u00F3 \u00E9rt\u00E9keket is \u00E1talak\u00EDthatja +AppearanceTopComponent.localScaleButton.toolTipText=\ Haszn\u00E1ljon helyi l\u00E9pt\u00E9ket. A korl\u00E1tok a teljes grafikon helyett csak a l\u00E1that\u00F3 grafikonon sz\u00E1m\u00EDthat\u00F3k ki. +AppearanceToolbar.nodes.label=Csom\u00F3pontok +AppearanceTopComponent.enableAutoButton.toolTipText=Automatikus \u00E1talak\u00EDt\u00E1s enged\u00E9lyez\u00E9se \u2013 folyamatosan alkalmazva +AppearanceTopComponent.stopAutoApplyButton.toolTipText=Az automatikus alkalmaz\u00E1s le\u00E1ll\u00EDt\u00E1sa +AppearanceTopComponent.applyButton.toolTipText=Alkalmazza az aktu\u00E1lis transzform\u00E1ci\u00F3t a grafikonra +AppearanceTopComponent.autoApplyButton.text=Automatikus alkalmaz\u00E1s +AppearanceTopComponent.stopAutoApplyButton.text=\u00C1llj +CTL_AppearanceTopComponent=Kin\u00E9zet +OpenIDE-Module-Short-Description=Integr\u00E1lt rangsorol\u00F3 UI +AppearanceTopComponent.splineButton.toolTipText=Konfigur\u00E1lja a ranginterpol\u00E1ci\u00F3t +Actions/Window/org-gephi-desktop-appearance-AppearanceAction.instance=Kin\u00E9zet +AppearanceTopComponent.splineEditor.title=Interpol\u00E1l +AppearanceTopComponent.partitionLocalScaleButton.toolTipText=\ A part\u00EDci\u00F3sz\u00E1m\u00EDt\u00E1shoz haszn\u00E1ljon l\u00E1that\u00F3 grafikont a teljes grafikon helyett +AppearanceTopComponent.choose.text=--- V\u00E1lasszon egy attrib\u00FAtumot +AppearanceTopComponent.autoApplyButton.toolTipText=Folyamatosan alkalmazza, m\u00E9g akkor is, ha az \u00E9rt\u00E9kek megv\u00E1ltoznak +AppearanceToolbar.edges.label=\u00C9lek diff --git a/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_it.properties b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_it.properties new file mode 100644 index 0000000000..986fa3ca6d --- /dev/null +++ b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_it.properties @@ -0,0 +1,20 @@ +OpenIDE-Module-Short-Description=Integrated ranking UI +Actions/Window/org-gephi-desktop-appearance-AppearanceAction.instance=Appearance +CTL_AppearanceAction=Appearance +CTL_AppearanceTopComponent=Appearance +!HINT_AppearanceTopComponent= + +AppearanceTopComponent.choose.text=---Choose an attribute +AppearanceToolbar.nodes.label=Nodi +AppearanceToolbar.edges.label=Archi +AppearanceTopComponent.applyButton.text=Applica +AppearanceTopComponent.enableAutoButton.toolTipText=Enable auto transformation - applied continuously +AppearanceTopComponent.splineButton.toolTipText=Configure rank interpolation +AppearanceTopComponent.splineButton.text=Spline... +AppearanceTopComponent.splineEditor.title=Interpolate +AppearanceTopComponent.applyButton.toolTipText=Apply the current transformation to the graph +AppearanceTopComponent.localScaleButton.toolTipText=Use local scale. The bounds are calculated only on the visible graph instead of the complete graph. +AppearanceTopComponent.stopAutoApplyButton.toolTipText=Stop auto apply +AppearanceTopComponent.stopAutoApplyButton.text=Stop +AppearanceTopComponent.autoApplyButton.toolTipText=Apply continuously even when the values changes +AppearanceTopComponent.autoApplyButton.text=Auto Apply diff --git a/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_ja.properties b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_ja.properties new file mode 100644 index 0000000000..e20b5c4016 --- /dev/null +++ b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_ja.properties @@ -0,0 +1,28 @@ +# OpenIDE-Module-Short-Description=Integrated ranking UI +# Actions/Window/org-gephi-desktop-appearance-AppearanceAction.instance=Appearance +# CTL_AppearanceAction=Appearance +# CTL_AppearanceTopComponent=Appearance +!HINT_AppearanceTopComponent= + +# AppearanceTopComponent.choose.text=---Choose an attribute + + +# AppearanceToolbar.nodes.label = Nodes +# AppearanceToolbar.edges.label = Edges + +# PartitionChooser.groupLink.toolTipText=Group the partition, one group per part +# PartitionChooser.pieLink.text=Show Pie +# PartitionChooser.showpie.label=Show Pie +# PartitionChooser.hidepie.label=Hide Pie +# PartitionChooser.refreshButton.toolTipText=Refresh +AppearanceTopComponent.applyButton.text=\u9069\u7528 +AppearanceTopComponent.enableAutoButton.toolTipText=\u81ea\u52d5\u5909\u5f62\u53ef\u80fd - \u7d99\u7d9a\u3057\u3066\u9069\u7528 +AppearanceTopComponent.splineButton.toolTipText=\u30e9\u30f3\u30af\u306e\u5185\u633f\u306e\u8a2d\u5b9a +AppearanceTopComponent.splineButton.text=\u30b9\u30d7\u30e9\u30a4\u30f3... +# AppearanceTopComponent.splineEditor.title=Interpolate +AppearanceTopComponent.applyButton.toolTipText=\u73fe\u5728\u306e\u5909\u5f62\u3092\u30b0\u30e9\u30d5\u306b\u9069\u7528 +# AppearanceTopComponent.localScaleButton.toolTipText= Use local scale. The bounds are calculated only on the visible graph instead of the complete graph. +AppearanceTopComponent.stopAutoApplyButton.toolTipText=\u5024\u306e\u5909\u66f4\u304c\u3042\u3063\u305f\u3068\u304d\u306f\u7d99\u7d9a\u3057\u3066\u9069\u7528 +AppearanceTopComponent.stopAutoApplyButton.text=\u81ea\u52d5\u9069\u7528 +AppearanceTopComponent.autoApplyButton.toolTipText=\u5024\u306e\u5909\u66f4\u304c\u3042\u3063\u305f\u3068\u304d\u306f\u7d99\u7d9a\u3057\u3066\u9069\u7528 +AppearanceTopComponent.autoApplyButton.text=\u81ea\u52d5\u9069\u7528 diff --git a/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_nl.properties b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_nl.properties new file mode 100644 index 0000000000..2bdecadd16 --- /dev/null +++ b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_nl.properties @@ -0,0 +1,20 @@ +OpenIDE-Module-Short-Description=Integrated ranking UI +Actions/Window/org-gephi-desktop-appearance-AppearanceAction.instance=Appearance +CTL_AppearanceAction=Appearance +CTL_AppearanceTopComponent=Appearance +!HINT_AppearanceTopComponent= + +AppearanceTopComponent.choose.text=---Choose an attribute +AppearanceToolbar.nodes.label=Knopen +AppearanceToolbar.edges.label=Verbindingen +AppearanceTopComponent.applyButton.text=Toepassen +AppearanceTopComponent.enableAutoButton.toolTipText=Enable auto transformation - applied continuously +AppearanceTopComponent.splineButton.toolTipText=Ranginterpolatie configureren +AppearanceTopComponent.splineButton.text=Spline... +AppearanceTopComponent.splineEditor.title=Interpoleren +AppearanceTopComponent.applyButton.toolTipText=Huidige transformatie op de graaf toepassen +AppearanceTopComponent.localScaleButton.toolTipText=\ Use local scale. The bounds are calculated only on the visible graph instead of the complete graph. +AppearanceTopComponent.stopAutoApplyButton.toolTipText=Stoppen van automatisch toepassen +AppearanceTopComponent.stopAutoApplyButton.text=Stoppen +AppearanceTopComponent.autoApplyButton.toolTipText=Apply continuously even when the values changes +AppearanceTopComponent.autoApplyButton.text=Automatisch toepassen diff --git a/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_pt_BR.properties b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_pt_BR.properties new file mode 100644 index 0000000000..d7f4a1c429 --- /dev/null +++ b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_pt_BR.properties @@ -0,0 +1,23 @@ +OpenIDE-Module-Short-Description=UI de Ranking integrado +Actions/Window/org-gephi-desktop-appearance-AppearanceAction.instance=Aparκncia +CTL_AppearanceAction=Aparκncia +CTL_AppearanceTopComponent=Aparκncia +!HINT_AppearanceTopComponent= + +AppearanceTopComponent.choose.text=---Escolha um atributo + + +AppearanceToolbar.nodes.label = Nσs +AppearanceToolbar.edges.label = Arestas + +AppearanceTopComponent.applyButton.text=Aplicar +AppearanceTopComponent.enableAutoButton.toolTipText=Habilitar auto transformaηγo - aplicada continuamente +AppearanceTopComponent.splineButton.toolTipText=Configurar interpolaηγo de classificaηγo +AppearanceTopComponent.splineButton.text=Spline... +AppearanceTopComponent.splineEditor.title=Interpolar +AppearanceTopComponent.applyButton.toolTipText=Aplicar a transformaηγo atual ao grafo +AppearanceTopComponent.localScaleButton.toolTipText=Usar escalonamento local. Os limites nγo serγo calculados para o grafo completo, apenas para o grafo visνvel. +AppearanceTopComponent.stopAutoApplyButton.toolTipText=Aplicar continuamente mesmo quando os valores mudem +AppearanceTopComponent.stopAutoApplyButton.text=Auto aplicar +AppearanceTopComponent.autoApplyButton.toolTipText=Aplicar continuamente mesmo quando os valores mudem +AppearanceTopComponent.autoApplyButton.text=Auto aplicar diff --git a/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_ro.properties b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_ro.properties new file mode 100644 index 0000000000..fb167304f5 --- /dev/null +++ b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_ro.properties @@ -0,0 +1,22 @@ + + +OpenIDE-Module-Short-Description=Interfa\u021B\u0103 integrat\u0103 de clasificare +Actions/Window/org-gephi-desktop-appearance-AppearanceAction.instance=Aspect +AppearanceToolbar.nodes.label=Noduri +AppearanceToolbar.edges.label=Muchii +AppearanceTopComponent.applyButton.text=Aplic\u0103 +AppearanceTopComponent.enableAutoButton.toolTipText=Activeaz\u0103 transformarea automat\u0103 - aplicat\u0103 continuu +AppearanceTopComponent.splineButton.toolTipText=Configureaz\u0103 interpolarea rangurilor +AppearanceTopComponent.splineButton.text=Spline... +AppearanceTopComponent.splineEditor.title=Interpolare +AppearanceTopComponent.applyButton.toolTipText=Aplic\u0103 transformarea curent\u0103 pe graf +AppearanceTopComponent.localScaleButton.toolTipText=\ Folose\u0219te scara local\u0103. Limitele sunt calculate numai pe partea vizibil\u0103 a grafului \u00EEn locul \u00EEntregului graf. +AppearanceTopComponent.partitionLocalScaleButton.toolTipText=\ Folose\u0219te partea vizibil\u0103 a grafului \u00EEn locul \u00EEntregului graf pentru calculul parti\u021Biilor +AppearanceTopComponent.stopAutoApplyButton.toolTipText=Opre\u0219te aplicarea automat\u0103 +AppearanceTopComponent.autoApplyButton.toolTipText=Aplic\u0103 \u00EEn mod continuu, chiar \u0219i atunci c\u00E2nd valorile se modific\u0103 +AppearanceTopComponent.autoApplyButton.text=Aplicare automat\u0103 +AppearanceTopComponent.transformNullValues.toolTipText=Transform\u0103 \u0219i valorile lips\u0103 +AppearanceTopComponent.stopAutoApplyButton.text=Stop +CTL_AppearanceAction=Aspect +CTL_AppearanceTopComponent=Aspect +AppearanceTopComponent.choose.text=---Alege un atribut diff --git a/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_ru.properties b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_ru.properties new file mode 100644 index 0000000000..c3f6ce3115 --- /dev/null +++ b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_ru.properties @@ -0,0 +1,31 @@ +# OpenIDE-Module-Short-Description=Integrated ranking UI +# Actions/Window/org-gephi-desktop-appearance-AppearanceAction.instance=Appearance +# CTL_AppearanceAction=Appearance +# CTL_AppearanceTopComponent=Appearance +!HINT_AppearanceTopComponent= + +# AppearanceTopComponent.choose.text=---Choose an attribute + + +# AppearanceToolbar.nodes.label = Nodes +# AppearanceToolbar.edges.label = Edges + +# PartitionChooser.groupLink.toolTipText=Group the partition, one group per part +# PartitionChooser.pieLink.text=Show Pie +# PartitionChooser.showpie.label=Show Pie +# PartitionChooser.hidepie.label=Hide Pie +# PartitionChooser.refreshButton.toolTipText=Refresh +AppearanceTopComponent.applyButton.text=\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c +AppearanceTopComponent.enableAutoButton.toolTipText=\u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0430\u0432\u0442\u043e-\u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 +AppearanceTopComponent.splineButton.toolTipText=\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u043f\u043e\u043b\u044f\u0446\u0438\u044e \u0440\u0430\u043d\u0433\u0430 +AppearanceTopComponent.splineButton.text=\u0421\u043f\u043b\u0430\u0439\u043d\u044b... +# AppearanceTopComponent.splineEditor.title=Interpolate +AppearanceTopComponent.applyButton.toolTipText=\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043d\u0430\u0431\u043e\u0440 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0440\u0430\u043d\u0436\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u0433\u0440\u0430\u0444\u0443 +# AppearanceTopComponent.localScaleButton.toolTipText= Use local scale. The bounds are calculated only on the visible graph instead of the complete graph. +AppearanceTopComponent.stopAutoApplyButton.toolTipText=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 +AppearanceTopComponent.stopAutoApplyButton.text=\u0410\u0432\u0442\u043e-\u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 +AppearanceTopComponent.autoApplyButton.toolTipText=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 +AppearanceTopComponent.autoApplyButton.text=\u0410\u0432\u0442\u043e-\u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 +AppearanceToolbar.edges.label=\u0420\u0451\u0431\u0440\u0430 +AppearanceToolbar.nodes.label=\u0423\u0437\u043B\u044B +AppearanceTopComponent.splineEditor.title=\u0418\u043D\u0442\u0435\u0440\u043F\u043E\u043B\u0438\u0440\u043E\u0432\u0430\u0442\u044C diff --git a/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_th.properties b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_th.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_th.properties @@ -0,0 +1 @@ + diff --git a/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_tr.properties b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_tr.properties new file mode 100644 index 0000000000..46f49909df --- /dev/null +++ b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_tr.properties @@ -0,0 +1,20 @@ +OpenIDE-Module-Short-Description=Integrated ranking UI +Actions/Window/org-gephi-desktop-appearance-AppearanceAction.instance=Appearance +CTL_AppearanceAction=Appearance +CTL_AppearanceTopComponent=Appearance +!HINT_AppearanceTopComponent= + +AppearanceTopComponent.choose.text=---Choose an attribute +AppearanceToolbar.nodes.label=Nodes +AppearanceToolbar.edges.label=Edges +AppearanceTopComponent.applyButton.text=Apply +AppearanceTopComponent.enableAutoButton.toolTipText=Enable auto transformation - applied continuously +AppearanceTopComponent.splineButton.toolTipText=Configure rank interpolation +AppearanceTopComponent.splineButton.text=Spline... +AppearanceTopComponent.splineEditor.title=Interpolate +AppearanceTopComponent.applyButton.toolTipText=Apply the current transformation to the graph +AppearanceTopComponent.localScaleButton.toolTipText=Use local scale. The bounds are calculated only on the visible graph instead of the complete graph. +AppearanceTopComponent.stopAutoApplyButton.toolTipText=Stop auto apply +AppearanceTopComponent.stopAutoApplyButton.text=Stop +AppearanceTopComponent.autoApplyButton.toolTipText=Apply continuously even when the values changes +AppearanceTopComponent.autoApplyButton.text=Auto Apply diff --git a/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_zh_CN.properties b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_zh_CN.properties new file mode 100644 index 0000000000..525281dead --- /dev/null +++ b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_zh_CN.properties @@ -0,0 +1,23 @@ +OpenIDE-Module-Short-Description=\u7efc\u5408\u6392\u540d\u754c\u9762 +Actions/Window/org-gephi-desktop-appearance-AppearanceAction.instance=\u5916\u89c2 +CTL_AppearanceAction=\u5916\u89c2 +CTL_AppearanceTopComponent=\u5916\u89c2 +!HINT_AppearanceTopComponent= + +AppearanceTopComponent.choose.text=---\u9009\u62e9\u4e00\u79cd\u6e32\u67d3\u65b9\u5f0f +AppearanceToolbar.nodes.label=\u8282\u70b9 +AppearanceToolbar.edges.label=\u8fb9 +AppearanceTopComponent.applyButton.text=\u5e94\u7528 +AppearanceTopComponent.enableAutoButton.toolTipText=\u5f00\u542f\u81ea\u52a8\u8f6c\u6362-\u7ee7\u7eed\u5e94\u7528 +AppearanceTopComponent.splineButton.toolTipText=\u8bbe\u7f6e\u7b49\u7ea7\u63d2\u503c\u6cd5 +AppearanceTopComponent.splineButton.text=\u6837\u6761\u66F2\u7EBF\u2026 +AppearanceTopComponent.splineEditor.title=\u63d2\u5165 +AppearanceTopComponent.applyButton.toolTipText=\u5e94\u7528\u73b0\u6709\u7684\u8f6c\u6362\u5230\u56fe +# AppearanceTopComponent.localScaleButton.toolTipText= Use local scale. The bounds are calculated only on the visible graph instead of the complete graph. +AppearanceTopComponent.stopAutoApplyButton.toolTipText=\u6570\u636e\u6539\u53d8\u540e\u7ee7\u7eed\u5e94\u7528 +AppearanceTopComponent.stopAutoApplyButton.text=\u81ea\u52a8\u5e94\u7528 +AppearanceTopComponent.autoApplyButton.toolTipText=\u6570\u636e\u6539\u53d8\u540e\u7ee7\u7eed\u5e94\u7528 +AppearanceTopComponent.autoApplyButton.text=\u81ea\u52a8\u5e94\u7528 +AppearanceTopComponent.localScaleButton.toolTipText=\u4F7F\u7528\u672C\u5730\u6807\u5EA6\u3002\u8FB9\u754C\u53EA\u5728\u53EF\u89C1\u56FE\u4E0A\u8BA1\u7B97\uFF0C\u800C\u4E0D\u662F\u5728\u5B8C\u6574\u56FE\u4E0A\u8BA1\u7B97\u3002 +AppearanceTopComponent.transformNullValues.toolTipText=\u540C\u65F6\u8F6C\u6362\u7F3A\u5931\u503C +AppearanceTopComponent.partitionLocalScaleButton.toolTipText=\u4F7F\u7528\u53EF\u89C1\u56FE\u800C\u4E0D\u662F\u5B8C\u6574\u56FE\u8FDB\u884C\u5206\u533A\u8BA1\u7B97 diff --git a/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_zh_TW.properties b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_zh_TW.properties new file mode 100644 index 0000000000..48c02c787e --- /dev/null +++ b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/Bundle_zh_TW.properties @@ -0,0 +1,23 @@ +OpenIDE-Module-Short-Description=\u6574\u5408\u5f0f\u6392\u5e8f +Actions/Window/org-gephi-desktop-appearance-AppearanceAction.instance=\u5916\u89c0 +CTL_AppearanceAction=\u5916\u89c0 +CTL_AppearanceTopComponent=\u5916\u89c0 +!HINT_AppearanceTopComponent= + +AppearanceTopComponent.choose.text=---\u9078\u53d6\u5c6c\u6027 + + +AppearanceToolbar.nodes.label = \u7bc0\u9ede +AppearanceToolbar.edges.label = \u9023\u7d50 + +AppearanceTopComponent.applyButton.text=\u5957\u7528 +AppearanceTopComponent.enableAutoButton.toolTipText=\u958b\u555f\u81ea\u52d5\u5957\u7528\u8f49\u63db\u6a21\u5f0f +AppearanceTopComponent.splineButton.toolTipText=\u8a2d\u5b9a\u6392\u5e8f\u5167\u63d2\u6cd5 +AppearanceTopComponent.splineButton.text=\u7dda\u6027\u51fd\u6578... +AppearanceTopComponent.splineEditor.title=\u5167\u63d2\u6cd5 +AppearanceTopComponent.applyButton.toolTipText=\u5957\u7528\u76ee\u524d\u8f49\u63db\u6a21\u5f0f\u81f3\u5716\u5f62\u4e2d +AppearanceTopComponent.localScaleButton.toolTipText=\u4f7f\u7528\u5340\u57df\u6578\u64da\u6bd4\u4f8b\u5c3a\u3002\u908a\u754c\u7684\u8a08\u7b97\u5c07\u6703\u9650\u5236\u5728\u53ef\u898b\u7684\u7db2\u8def\u5716\u4e2d\uff0c\u800c\u975e\u6574\u9ad4\u7db2\u8def\u5716\u3002 +AppearanceTopComponent.stopAutoApplyButton.toolTipText=\u505c\u6b62\u81ea\u52d5\u5957\u7528 +AppearanceTopComponent.stopAutoApplyButton.text=\u505c\u6b62 +AppearanceTopComponent.autoApplyButton.toolTipText=\u7576\u6578\u503c\u8b8a\u5316\u6642\u81ea\u52d5\u5957\u7528 +AppearanceTopComponent.autoApplyButton.text=\u81ea\u52d5\u5957\u7528 diff --git a/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/options/Bundle.properties b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/options/Bundle.properties new file mode 100644 index 0000000000..a724bbd845 --- /dev/null +++ b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/options/Bundle.properties @@ -0,0 +1,25 @@ +AdvancedOption_DisplayName_Appearance=Appearance +AdvancedOption_Keywords_Appearance=appearance, size, ranking, node, edge, interpolation, spline, local scale, null values +# Section titles +AppearancePanel.defaultSettingsTitle.title=Default Appearance Settings +AppearancePanel.nodeSizeTitle.title=Default Node Size (Ranking) +AppearancePanel.labelSizeTitle.title=Default Label Size (Ranking) +AppearancePanel.elementColorTitle.title=Default Node/Edge Color (Ranking) +AppearancePanel.labelColorTitle.title=Default Label Color (Ranking) +AppearancePanel.interpolationTitle.title=Default Interpolation (Ranking) +# Default appearance settings checkboxes +AppearancePanel.rankingLocalScale.text=Ranking uses visible graph (local scale) +AppearancePanel.partitionLocalScale.text=Partition uses visible graph (local scale) +AppearancePanel.transformNullValues.text=Apply transformation to null values +# Spinner labels +AppearancePanel.minSize.text=Min: +AppearancePanel.maxSize.text=Max: +# Interpolation state labels +AppearancePanel.interpolation.linear=Linear +AppearancePanel.interpolation.spline=Spline {0} \u2192 {1} +# Buttons +AppearancePanel.resetButton.text=Reset Defaults +AppearancePanel.configureSplineButton.text=Configure Spline\u2026 +AppearancePanel.useLinearButton.text=Use Linear +# Spline editor dialog title +AppearancePanel.splineEditor.title=Default Interpolation diff --git a/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/options/Bundle_ar.properties b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/options/Bundle_ar.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/options/Bundle_ar.properties @@ -0,0 +1 @@ + diff --git a/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/options/Bundle_fr.properties b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/options/Bundle_fr.properties new file mode 100644 index 0000000000..4e66f0566d --- /dev/null +++ b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/options/Bundle_fr.properties @@ -0,0 +1 @@ +AdvancedOption_DisplayName_Appearance=Aspect diff --git a/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/options/Bundle_th.properties b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/options/Bundle_th.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DesktopAppearance/src/main/resources/org/gephi/desktop/appearance/options/Bundle_th.properties @@ -0,0 +1 @@ + diff --git a/modules/DesktopAppearance/src/test/java/org/gephi/desktop/appearance/AppearanceUIModelTest.java b/modules/DesktopAppearance/src/test/java/org/gephi/desktop/appearance/AppearanceUIModelTest.java new file mode 100644 index 0000000000..49325316ea --- /dev/null +++ b/modules/DesktopAppearance/src/test/java/org/gephi/desktop/appearance/AppearanceUIModelTest.java @@ -0,0 +1,41 @@ +package org.gephi.desktop.appearance; + +import javax.swing.AbstractButton; +import javax.swing.Icon; +import javax.swing.ImageIcon; +import javax.swing.JPanel; +import org.gephi.appearance.AppearanceModelImpl; +import org.gephi.appearance.api.Function; +import org.gephi.appearance.api.Partition; +import org.gephi.appearance.api.Ranking; +import org.gephi.appearance.plugin.UniqueElementColorTransformer; +import org.gephi.appearance.spi.PartitionTransformer; +import org.gephi.appearance.spi.RankingTransformer; +import org.gephi.appearance.spi.SimpleTransformer; +import org.gephi.appearance.spi.Transformer; +import org.gephi.appearance.spi.TransformerCategory; +import org.gephi.appearance.spi.TransformerUI; +import org.gephi.graph.GraphGenerator; +import org.gephi.graph.api.Element; +import org.gephi.ui.appearance.plugin.category.DefaultCategory; +import org.junit.Assert; +import org.junit.Test; +import org.netbeans.junit.MockServices; +import org.openide.util.NbBundle; + +public class AppearanceUIModelTest { + + @Test + public void testDefault() { + GraphGenerator generator = GraphGenerator.build().generateTinyGraph(); + AppearanceModelImpl model = new AppearanceModelImpl(generator.getWorkspace()); + AppearanceUIModel uiModel = new AppearanceUIModel(model); + + Assert.assertSame(DefaultCategory.COLOR, uiModel.getSelectedCategory()); + Assert.assertSame(AppearanceUIController.NODE_ELEMENT, uiModel.getSelectedElementClass()); + Function selectedFunction = uiModel.getSelectedFunction(); + Assert.assertNotNull(selectedFunction); + + Assert.assertEquals(UniqueElementColorTransformer.class, selectedFunction.getTransformer().getClass()); + } +} diff --git a/modules/DesktopAppearance/src/test/java/org/gephi/desktop/appearance/PersistenceProviderTest.java b/modules/DesktopAppearance/src/test/java/org/gephi/desktop/appearance/PersistenceProviderTest.java new file mode 100644 index 0000000000..b9d878a971 --- /dev/null +++ b/modules/DesktopAppearance/src/test/java/org/gephi/desktop/appearance/PersistenceProviderTest.java @@ -0,0 +1,87 @@ +package org.gephi.desktop.appearance; + +import org.gephi.appearance.api.Function; +import org.gephi.appearance.plugin.RankingElementColorTransformer; +import org.gephi.appearance.plugin.RankingNodeSizeTransformer; +import org.gephi.appearance.plugin.UniqueElementColorTransformer; +import org.gephi.appearance.plugin.UniqueNodeSizeTransformer; +import org.gephi.desktop.appearance.utils.Utils; +import org.gephi.project.api.Workspace; +import org.gephi.project.io.utils.GephiFormat; +import org.gephi.ui.appearance.plugin.RankingElementColorTransformerUI; +import org.gephi.ui.appearance.plugin.RankingElementSizeTransformerUI; +import org.gephi.ui.appearance.plugin.category.DefaultCategory; +import org.junit.Assert; +import org.junit.Test; +import org.openide.util.Lookup; + +public class PersistenceProviderTest { + + @Test + public void testEmpty() throws Exception { + AppearanceUIModel model = Utils.newAppearanceUIModel(); + + GephiFormat + .testXMLPersistenceProvider(new AppearanceUIModelPersistenceProvider(), model.getWorkspace()); + } + + @Test + public void testUniqueColor() throws Exception { + AppearanceUIModel model = Utils.newAppearanceUIModel(); + Function function = Utils.findNodeFunction(model, UniqueElementColorTransformer.class); + model.setSelectedFunction(function); + Assert.assertNotNull(function); + Assert.assertFalse(model.savedProperties.isEmpty()); + + Workspace workspace = GephiFormat + .testXMLPersistenceProvider(new AppearanceUIModelPersistenceProvider(), model.getWorkspace()); + AppearanceUIModel readModel = workspace.getLookup().lookup(AppearanceUIModel.class); + Assert.assertEquals(model.savedProperties, readModel.savedProperties); + } + + @Test + public void testUniqueSize() throws Exception { + AppearanceUIModel model = Utils.newAppearanceUIModel(); + Function function = Utils.findNodeFunction(model, UniqueNodeSizeTransformer.class); + Assert.assertNotNull(function); + model.setSelectedCategory(DefaultCategory.SIZE); + model.setSelectedFunction(function); + model.saveTransformerProperties(); + Assert.assertTrue(model.savedProperties.containsKey(function)); + + Workspace workspace = GephiFormat + .testXMLPersistenceProvider(new AppearanceUIModelPersistenceProvider(), model.getWorkspace()); + AppearanceUIModel readModel = workspace.getLookup().lookup(AppearanceUIModel.class); + Assert.assertEquals(model.savedProperties, readModel.savedProperties); + } + + @Test + public void testRankingColor() throws Exception { + AppearanceUIModel model = Utils.newAppearanceUIModel(); + Function function = Utils.findNodeFunction(model, RankingElementColorTransformer.class); + Assert.assertNotNull(function); + model.setSelectedTransformerUI(Lookup.getDefault().lookup(RankingElementColorTransformerUI.class)); + model.setSelectedFunction(function); + model.saveTransformerProperties(); + Assert.assertTrue(model.savedProperties.containsKey(function)); + + GephiFormat + .testXMLPersistenceProvider(new AppearanceUIModelPersistenceProvider(), model.getWorkspace()); + } + + @Test + public void testRankingSize() throws Exception { + AppearanceUIModel model = Utils.newAppearanceUIModel(); + Function function = Utils.findNodeFunction(model, RankingNodeSizeTransformer.class); + Assert.assertNotNull(function); + model.setSelectedCategory(DefaultCategory.SIZE); + model.setSelectedTransformerUI(Lookup.getDefault().lookup(RankingElementSizeTransformerUI.class)); + model.setSelectedFunction(function); + Assert.assertFalse(model.savedProperties.isEmpty()); + + Workspace workspace = GephiFormat + .testXMLPersistenceProvider(new AppearanceUIModelPersistenceProvider(), model.getWorkspace()); + AppearanceUIModel readModel = workspace.getLookup().lookup(AppearanceUIModel.class); + Assert.assertEquals(model.savedProperties, readModel.savedProperties); + } +} diff --git a/modules/DesktopAppearance/src/test/java/org/gephi/desktop/appearance/utils/Utils.java b/modules/DesktopAppearance/src/test/java/org/gephi/desktop/appearance/utils/Utils.java new file mode 100644 index 0000000000..dc844808b9 --- /dev/null +++ b/modules/DesktopAppearance/src/test/java/org/gephi/desktop/appearance/utils/Utils.java @@ -0,0 +1,33 @@ +package org.gephi.desktop.appearance.utils; + +import java.util.Arrays; +import java.util.stream.Stream; +import org.gephi.appearance.AppearanceModelImpl; +import org.gephi.appearance.api.Function; +import org.gephi.appearance.spi.Transformer; +import org.gephi.desktop.appearance.AppearanceUIModel; +import org.gephi.graph.GraphGenerator; +import org.gephi.graph.api.Node; + +public class Utils { + + public static AppearanceUIModel newAppearanceUIModel() { + GraphGenerator generator = + GraphGenerator.build().generateTinyGraph(); + AppearanceModelImpl model = new AppearanceModelImpl(generator.getWorkspace()); + model.getWorkspace().add(model); + AppearanceUIModel uiModel = new AppearanceUIModel(model); + model.getWorkspace().add(uiModel); + return uiModel; + } + + public static Function findNodeFunction(AppearanceUIModel model, Class transformer) { + Function[] functions = Stream.concat(Arrays.stream(model.getAppearanceModel().getNodeFunctions()), + Arrays.stream(model.getAppearanceModel().getEdgeFunctions())) + .toArray(Function[]::new); + + return Arrays.stream(functions).filter( + f -> f.getElementClass().isAssignableFrom(Node.class) && f.getTransformer().getClass().equals(transformer)) + .findFirst().orElse(null); + } +} diff --git a/modules/DesktopAttributes/pom.xml b/modules/DesktopAttributes/pom.xml new file mode 100644 index 0000000000..7a4abd6e65 --- /dev/null +++ b/modules/DesktopAttributes/pom.xml @@ -0,0 +1,98 @@ + + + 4.0.0 + + gephi-parent + org.gephi + 0.11.3-SNAPSHOT + ../.. + + + desktop-attributes + 0.11.3-SNAPSHOT + nbm + + DesktopAttributes + + + + ${project.groupId} + project-api + + + ${project.groupId} + graph-api + + + ${project.groupId} + datalab-api + + + ${project.groupId} + ui-utils + + + ${project.groupId} + ui-library-wrapper + + + ${project.groupId} + visualization-api + + + org.netbeans.api + org-openide-util + + + org.netbeans.api + org-openide-util-lookup + + + org.netbeans.api + org-openide-util-ui + + + org.netbeans.api + org-openide-awt + + + org.netbeans.api + org-openide-windows + + + org.netbeans.api + org-openide-explorer + + + org.netbeans.api + org-netbeans-modules-options-api + + + org.netbeans.api + org-netbeans-modules-settings + + + org.netbeans.api + org-openide-nodes + + + + + + + + + + + + org.apache.netbeans.utilities + nbm-maven-plugin + + + org.gephi.desktop.attributes.api + + + + + + diff --git a/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/AttributesTopComponent.java b/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/AttributesTopComponent.java new file mode 100644 index 0000000000..8ec86f161f --- /dev/null +++ b/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/AttributesTopComponent.java @@ -0,0 +1,260 @@ +package org.gephi.desktop.attributes; + +import java.awt.BorderLayout; +import java.awt.CardLayout; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.beans.PropertyChangeEvent; +import java.util.List; +import javax.swing.JButton; +import javax.swing.JCheckBoxMenuItem; +import javax.swing.JMenuItem; +import javax.swing.JPanel; +import javax.swing.JPopupMenu; +import javax.swing.JToolBar; +import org.gephi.desktop.attributes.edit.EditPanel; +import org.gephi.desktop.attributes.selection.SelectionPanel; +import org.gephi.graph.api.Column; +import org.netbeans.api.settings.ConvertAsProperties; +import org.openide.awt.ActionID; +import org.openide.awt.ActionReference; +import org.openide.util.ImageUtilities; +import org.openide.util.Lookup; +import org.openide.util.NbBundle; +import org.openide.windows.TopComponent; + +@ConvertAsProperties(dtd = "-//org.gephi.desktop.attributes//Attributes//EN", + autostore = false) +@TopComponent.Description(preferredID = "AttributesTopComponent", + iconBase = "DesktopAttributes/edit.svg", + persistenceType = TopComponent.PERSISTENCE_ALWAYS) +@TopComponent.Registration(mode = "rankingmode", openAtStartup = false, roles = {"overview", "datalab"}, position = 20) +@ActionID(category = "Window", id = "org.gephi.desktop.attributes.AttributesTopComponent") +@ActionReference(path = "Menu/Window", position = 1500) +@TopComponent.OpenActionRegistration(displayName = "#CTL_AttributesTopComponent", + preferredID = "AttributesTopComponent") +public final class AttributesTopComponent extends TopComponent implements AttributesUIModelListener { + + private static final String SELECTION_CARD = "selection"; + private static final String EDIT_CARD = "edit"; + + private final CardLayout cardLayout; + private final JPanel cardPanel; + private final EditPanel editPanel; + private final SelectionPanel selectionPanel; + private final JButton columnsButton; + + private final AttributesUIControllerImpl controller; + + // Model + private AttributesUIModelImpl model; + + public AttributesTopComponent() { + // Register + controller = Lookup.getDefault().lookup(AttributesUIControllerImpl.class); + controller.addPropertyChangeListener(this); + + setName(NbBundle.getMessage(AttributesTopComponent.class, "CTL_AttributesTopComponent")); + + putClientProperty(TopComponent.PROP_MAXIMIZATION_DISABLED, Boolean.TRUE); + + setLayout(new BorderLayout()); + + cardLayout = new CardLayout(); + cardPanel = new JPanel(cardLayout); + + selectionPanel = new SelectionPanel(); + editPanel = new EditPanel(); + + cardPanel.add(selectionPanel, SELECTION_CARD); + cardPanel.add(editPanel, EDIT_CARD); + + cardLayout.show(cardPanel, SELECTION_CARD); + + add(cardPanel, BorderLayout.CENTER); + + JToolBar toolbar = new JToolBar(); + toolbar.setFloatable(false); + toolbar.setRollover(true); + + columnsButton = new JButton( + ImageUtilities.loadImageIcon("DesktopAttributes/column.svg", false)); + columnsButton.setText( + NbBundle.getMessage(AttributesTopComponent.class, "AttributesTopComponent.columnsButton.text")); + columnsButton.setToolTipText( + NbBundle.getMessage(AttributesTopComponent.class, "AttributesTopComponent.columnsButton.tooltip")); + columnsButton.setFocusable(false); + columnsButton.addMouseListener(new MouseAdapter() { + @Override + public void mousePressed(MouseEvent e) { + showColumnsPopup(e); + } + }); + toolbar.add(columnsButton); + + add(toolbar, BorderLayout.SOUTH); + + // Init if needed + AttributesUIModelImpl model = controller.getModel(); + if (model != null) { + setup(model); + } else { + unsetup(); + } + } + + @Override + public void propertyChange(PropertyChangeEvent evt) { + if (evt.getPropertyName().equals(AttributesUIModelEvent.SELECTED_ELEMENTS) || + evt.getPropertyName().equals(AttributesUIModelEvent.HIDDEN_COLUMN_IDS) || + evt.getPropertyName().equals(AttributesUIModelEvent.SHOW_NULL_COLUMNS) || + evt.getPropertyName().equals(AttributesUIModelEvent.INCLUDE_PROPERTIES)) { + refreshSelection(); + } else if (evt.getPropertyName().equals(AttributesUIModelEvent.MODEL)) { + if (evt.getNewValue() == null) { + unsetup(); + } else { + setup((AttributesUIModelImpl) evt.getNewValue()); + } + } else if (evt.getPropertyName().equals(AttributesUIModelEvent.EDIT_MODE)) { + setup(this.model); + } + } + + private void refreshSelection() { + if (model == null) { + return; + } + if (model.isEditMode()) { + editPanel.refreshSelected(model); + } else { + selectionPanel.refreshSelectedNodes(model); + } + } + + private void setup(AttributesUIModelImpl model) { + this.model = model; + + if (model.isEditMode()) { + cardLayout.show(cardPanel, EDIT_CARD); + } else { + cardLayout.show(cardPanel, SELECTION_CARD); + } + columnsButton.setEnabled(true); + } + + private void unsetup() { + this.model = null; + + cardLayout.show(cardPanel, SELECTION_CARD); + columnsButton.setEnabled(false); + } + + private void showColumnsPopup(MouseEvent e) { + List columns = model.getEligibleColumns(); + + JPopupMenu popup = new JPopupMenu(); + + if (model.isEditMode()) { + JCheckBoxMenuItem includeProperties = new JCheckBoxMenuItem( + NbBundle.getMessage(AttributesTopComponent.class, + "AttributesTopComponent.includeProperties")); + includeProperties.setSelected(model.isIncludeProperties()); + includeProperties.addActionListener(evt -> { + model.setIncludeProperties(includeProperties.isSelected()); + controller.firePropertyChangeEvent( + AttributesUIModelEvent.INCLUDE_PROPERTIES, + !includeProperties.isSelected(), + includeProperties.isSelected()); + }); + popup.add(includeProperties); + } else { + JCheckBoxMenuItem showNullItem = new JCheckBoxMenuItem( + NbBundle.getMessage(AttributesTopComponent.class, + "AttributesTopComponent.showNullButton")); + showNullItem.setSelected(model.isShowNullColumns()); + showNullItem.addActionListener(evt -> { + model.setShowNullColumns(showNullItem.isSelected()); + controller.firePropertyChangeEvent( + AttributesUIModelEvent.SHOW_NULL_COLUMNS, + !showNullItem.isSelected(), + showNullItem.isSelected()); + }); + popup.add(showNullItem); + } + + popup.addSeparator(); + + if (columns.isEmpty()) { + JMenuItem emptyLabel = new JMenuItem( + NbBundle.getMessage(AttributesTopComponent.class, "AttributesTopComponent.noColumns")); + emptyLabel.setEnabled(false); + popup.add(emptyLabel); + } else { + boolean allVisible = columns.stream().allMatch(model::isColumnVisible); + boolean noneVisible = columns.stream().noneMatch(model::isColumnVisible); + + columns.stream() + .map(column -> { + JCheckBoxMenuItem item = new JCheckBoxMenuItem(column.getTitle()); + item.setSelected(model.isColumnVisible(column)); + item.addActionListener(evt -> { + model.setColumnHidden(column, !item.isSelected()); + controller.firePropertyChangeEvent( + AttributesUIModelEvent.HIDDEN_COLUMN_IDS, null, null); + }); + return item; + }) + .forEach(popup::add); + + popup.addSeparator(); + + JMenuItem selectAll = new JMenuItem( + NbBundle.getMessage(AttributesTopComponent.class, "AttributesTopComponent.selectAll")); + selectAll.setEnabled(!allVisible); + selectAll.addActionListener(evt -> { + columns.forEach(column -> model.setColumnHidden(column, false)); + controller.firePropertyChangeEvent( + AttributesUIModelEvent.HIDDEN_COLUMN_IDS, null, null); + }); + popup.add(selectAll); + + JMenuItem unselectAll = new JMenuItem( + NbBundle.getMessage(AttributesTopComponent.class, "AttributesTopComponent.unselectAll")); + unselectAll.setEnabled(!noneVisible); + unselectAll.addActionListener(evt -> { + columns.forEach(column -> model.setColumnHidden(column, true)); + controller.firePropertyChangeEvent( + AttributesUIModelEvent.HIDDEN_COLUMN_IDS, null, null); + }); + popup.add(unselectAll); + } + + popup.show(columnsButton, 0, -popup.getPreferredSize().height); + } + + public EditPanel getEditPanel() { + return editPanel; + } + + public SelectionPanel getSelectionPanel() { + return selectionPanel; + } + + @Override + public void componentOpened() { + } + + @Override + public void componentClosed() { + } + + void writeProperties(java.util.Properties p) { + p.setProperty("version", "1.0"); + } + + void readProperties(java.util.Properties p) { + String version = p.getProperty("version"); + } + +} diff --git a/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/AttributesUIControllerImpl.java b/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/AttributesUIControllerImpl.java new file mode 100644 index 0000000000..7b6639acad --- /dev/null +++ b/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/AttributesUIControllerImpl.java @@ -0,0 +1,306 @@ +/* + Copyright 2008-2010 Gephi + Authors : Eduardo Ramos + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2011 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2011 Gephi Consortium. + */ + +package org.gephi.desktop.attributes; + +import java.util.HashSet; +import java.util.Set; +import javax.swing.SwingUtilities; +import org.gephi.desktop.attributes.api.AttributesUIController; +import org.gephi.graph.api.Edge; +import org.gephi.graph.api.Node; +import org.gephi.project.api.ProjectController; +import org.gephi.project.api.Workspace; +import org.gephi.project.api.WorkspaceListener; +import org.gephi.project.spi.Controller; +import org.openide.util.Exceptions; +import org.openide.util.Lookup; +import org.openide.util.lookup.ServiceProvider; +import org.openide.util.lookup.ServiceProviders; +import org.openide.windows.WindowManager; + +/** + * Implementation of EditWindowController interface of Tools API. + * + * @author Eduardo Ramos + */ +@ServiceProviders({ + @ServiceProvider(service = AttributesUIController.class), + @ServiceProvider(service = Controller.class)}) +public class AttributesUIControllerImpl implements AttributesUIController, Controller { + + private final Set listeners = new HashSet<>(); + + public AttributesUIControllerImpl() { + + Lookup.getDefault().lookup(ProjectController.class).addWorkspaceListener(new WorkspaceListener() { + + @Override + public void initialize(Workspace workspace) { + } + + @Override + public void select(Workspace workspace) { + AttributesUIModelImpl model = getModel(workspace); + firePropertyChangeEvent(AttributesUIModelEvent.MODEL, null, model); + } + + @Override + public void unselect(Workspace workspace) { + AttributesUIModelImpl model = getModel(workspace); + model.resetSelection(); + firePropertyChangeEvent(AttributesUIModelEvent.MODEL, null, null); + } + + @Override + public void close(Workspace workspace) { + } + + @Override + public void disable() { + closeWindow(); + } + }); + } + + @Override + public AttributesUIModelImpl newModel(Workspace workspace) { + return new AttributesUIModelImpl(workspace); + } + + @Override + public Class getModelClass() { + return AttributesUIModelImpl.class; + } + + protected static AttributesTopComponent findInstance() { + return (AttributesTopComponent) WindowManager.getDefault().findTopComponent("AttributesTopComponent"); + } + + private void resetSelection() { + AttributesUIModelImpl model = getModel(); + if (model != null) { + model.resetSelection(); + firePropertyChangeEvent(AttributesUIModelEvent.SELECTED_ELEMENTS, null, null); + } + } + + private void setEditMode(boolean editMode) { + AttributesUIModelImpl model = getModel(); + if (model == null) { + return; + } + if (model.isEditMode() != editMode) { + model.setEditMode(editMode); + if (editMode) { + model.resetSelection(); + firePropertyChangeEvent(AttributesUIModelEvent.SELECTED_ELEMENTS, null, null); + } + firePropertyChangeEvent(AttributesUIModelEvent.EDIT_MODE, !editMode, editMode); + } + } + + private void setSelectedNodes(Node[] nodes) { + AttributesUIModelImpl model = getModel(); + if (model == null) { + return; + } + if (model.getSelectedNodes() != nodes) { + model.setSelectedNodes(nodes); + firePropertyChangeEvent(AttributesUIModelEvent.SELECTED_ELEMENTS, null, nodes); + } + } + + private void setSelectedEdges(Edge[] edges) { + AttributesUIModelImpl model = getModel(); + if (model == null) { + return; + } + if (model.getSelectedEdges() != edges) { + model.setSelectedEdges(edges); + firePropertyChangeEvent(AttributesUIModelEvent.SELECTED_ELEMENTS, null, edges); + } + } + + @Override + public void openWindow() { + runAction(() -> { + AttributesTopComponent topComponent = findInstance(); + if (topComponent != null) { + topComponent.open(); + } + }); + + } + + @Override + public void openWindowAndRequestActive() { + runAction(() -> { + AttributesTopComponent topComponent = findInstance(); + if (topComponent != null) { + topComponent.open(); + topComponent.requestActive(); + } + }); + + } + + @Override + public void closeWindow() { + runAction(() -> { + resetSelection(); + AttributesTopComponent topComponent = findInstance(); + if (topComponent != null) { + topComponent.getEditPanel().disableEdit(); + topComponent.close(); + } + }); + } + + @Override + public boolean isOpen() { + IsOpenRunnable runnable = new IsOpenRunnable(); + if (SwingUtilities.isEventDispatchThread()) { + runnable.run(); + } else { + try { + SwingUtilities.invokeAndWait(runnable); + } catch (Exception ex) { + Exceptions.printStackTrace(ex); + } + } + return runnable.open; + } + + @Override + public void editNode(final Node node) { + runAction(() -> { + setEditMode(true); + setSelectedNodes(new Node[] {node}); + }); + } + + @Override + public void editNodes(final Node[] nodes) { + runAction(() -> { + setEditMode(true); + setSelectedNodes(nodes); + }); + } + + @Override + public void editEdge(final Edge edge) { + runAction(() -> { + setEditMode(true); + setSelectedEdges(new Edge[] {edge}); + }); + } + + @Override + public void editEdges(final Edge[] edges) { + runAction(() -> { + setEditMode(true); + setSelectedEdges(edges); + }); + } + + @Override + public void enableEdit() { + runAction(() -> { + setEditMode(true); + }); + } + + @Override + public void disableEdit() { + runAction(() -> { + setEditMode(false); + }); + } + + @Override + public void selectNodes(Node[] nodes) { + AttributesUIModelImpl model = getModel(); + if (model != null && !model.isEditMode()) { + runAction(() -> { + if (model == getModel()) { + setSelectedNodes(nodes); + } + }); + } + + } + + class IsOpenRunnable implements Runnable { + + boolean open = false; + + @Override + public void run() { + AttributesTopComponent topComponent = findInstance(); + open = topComponent != null && topComponent.isOpened(); + } + } + + public void addPropertyChangeListener(AttributesUIModelListener listener) { + listeners.add(listener); + } + + public void removePropertyChangeListener(AttributesUIModelListener listener) { + listeners.remove(listener); + } + + protected void firePropertyChangeEvent(String propertyName, Object oldValue, Object newValue) { + AttributesUIModelEvent event = new AttributesUIModelEvent(this, propertyName, oldValue, newValue); + for (AttributesUIModelListener listener : listeners) { + listener.propertyChange(event); + } + } + + private void runAction(Runnable runnable) { + if (SwingUtilities.isEventDispatchThread()) { + runnable.run(); + } else { + SwingUtilities.invokeLater(runnable); + } + } +} diff --git a/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/AttributesUIModelEvent.java b/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/AttributesUIModelEvent.java new file mode 100644 index 0000000000..be4fba9e2e --- /dev/null +++ b/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/AttributesUIModelEvent.java @@ -0,0 +1,18 @@ +package org.gephi.desktop.attributes; + +import java.beans.PropertyChangeEvent; + +public class AttributesUIModelEvent extends PropertyChangeEvent { + + public static String MODEL = "model"; + public static String EDIT_MODE = "mode"; + public static String HIDDEN_COLUMN_IDS = "hiddenColumnIds"; + public static String SELECTED_ELEMENTS = "selectedElements"; + public static String SHOW_NULL_COLUMNS = "showNullColumns"; + public static String INCLUDE_PROPERTIES = "includeProperties"; + + public AttributesUIModelEvent(Object source, String propertyName, + Object oldValue, Object newValue) { + super(source, propertyName, oldValue, newValue); + } +} diff --git a/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/AttributesUIModelImpl.java b/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/AttributesUIModelImpl.java new file mode 100644 index 0000000000..0b0d6d198d --- /dev/null +++ b/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/AttributesUIModelImpl.java @@ -0,0 +1,278 @@ +package org.gephi.desktop.attributes; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; +import java.util.stream.StreamSupport; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; +import javax.xml.stream.XMLStreamWriter; +import javax.xml.stream.events.XMLEvent; +import org.gephi.desktop.attributes.api.AttributesUIModel; +import org.gephi.desktop.attributes.options.AttributesPreferences; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Edge; +import org.gephi.graph.api.GraphModel; +import org.gephi.graph.api.Node; +import org.gephi.graph.api.Table; +import org.gephi.project.api.Workspace; +import org.gephi.project.spi.Model; +import org.gephi.project.spi.WorkspaceXMLPersistenceProvider; + +public class AttributesUIModelImpl implements AttributesUIModel, Model, WorkspaceXMLPersistenceProvider { + + private final Workspace workspace; + private final GraphModel graphModel; + private final Set hiddenNodeColumnIds = new HashSet<>(); + private final Set hiddenEdgeColumnIds = new HashSet<>(); + private boolean editMode = false; + private boolean showNullColumns = AttributesPreferences.isShowNullColumns(); + private boolean includeProperties = AttributesPreferences.isIncludeProperties(); + private Node[] selectedNodes = null; + private Edge[] selectedEdges = null; + + public AttributesUIModelImpl(Workspace workspace) { + this.workspace = workspace; + this.graphModel = workspace.getLookup().lookup(GraphModel.class); + + if (graphModel == null) { + return; + } + + // Hidden by default + hiddenNodeColumnIds.add(craftColumnId(graphModel.defaultColumns().nodeTimeSet())); + hiddenNodeColumnIds.add(craftColumnId(graphModel.defaultColumns().degree())); + hiddenNodeColumnIds.add(craftColumnId(graphModel.defaultColumns().inDegree())); + hiddenNodeColumnIds.add(craftColumnId(graphModel.defaultColumns().outDegree())); + hiddenEdgeColumnIds.add(craftColumnId(graphModel.defaultColumns().edgeTimeSet())); + } + + @Override + public Workspace getWorkspace() { + return workspace; + } + + + public GraphModel getGraphModel() { + return graphModel; + } + + public List getEligibleColumns() { + if (selectedEdges != null) { + return getEligibleEdgeColumns(); + } + return getEligibleNodeColumns(); + } + + public List getEligibleNodeColumns() { + Table nodeTable = graphModel.getNodeTable(); + final boolean directed = graphModel.isDirected(); + final Column nodeTimesetCol = graphModel.defaultColumns().nodeTimeSet(); + final Column nodeDegreeCol = graphModel.defaultColumns().degree(); + final Column inDegreeCol = graphModel.defaultColumns().inDegree(); + final Column outDegreeCol = graphModel.defaultColumns().outDegree(); + List cols = StreamSupport.stream(nodeTable.spliterator(), false) + .filter(column -> { + if (column == nodeTimesetCol && graphModel.isDynamic()) { + return true; + } + if (column == nodeDegreeCol) { + return !editMode; + } + return !column.isProperty(); + }).collect(Collectors.toCollection(ArrayList::new)); + if (!editMode) { + if (directed) { + cols.add(0, outDegreeCol); + cols.add(0, inDegreeCol); + } + cols.add(0, nodeDegreeCol); + } + return cols; + } + + public List getEligibleEdgeColumns() { + Table edgeTable = graphModel.getEdgeTable(); + final Column edgeTimesetCol = graphModel.defaultColumns().edgeTimeSet(); + return StreamSupport.stream(edgeTable.spliterator(), false) + .filter(column -> { + if (column == edgeTimesetCol && graphModel.isDynamic()) { + return true; + } + return !column.isProperty(); + }).collect(Collectors.toCollection(ArrayList::new)); + } + + public List getSelectedColumns() { + return getEligibleColumns().stream().filter(this::isColumnVisible).toList(); + } + + public Node[] getSelectedNodes() { + return selectedNodes; + } + + public void setSelectedNodes(Node[] selectedNodes) { + this.selectedNodes = selectedNodes; + this.selectedEdges = null; + } + + public void resetSelection() { + this.selectedNodes = null; + this.selectedEdges = null; + } + + public Edge[] getSelectedEdges() { + return selectedEdges; + } + + public void setSelectedEdges(Edge[] selectedEdges) { + this.selectedEdges = selectedEdges; + this.selectedNodes = null; + } + + public boolean isEditMode() { + return editMode; + } + + public void setEditMode(boolean editMode) { + this.editMode = editMode; + } + + public boolean isShowNullColumns() { + return showNullColumns; + } + + public void setShowNullColumns(boolean showNullColumns) { + this.showNullColumns = showNullColumns; + } + + public boolean isIncludeProperties() { + return includeProperties; + } + + public void setIncludeProperties(boolean includeProperties) { + this.includeProperties = includeProperties; + } + + public boolean isColumnVisible(Column column) { + return !getHiddenSetForColumn(column).contains(craftColumnId(column)); + } + + private Set getHiddenSetForColumn(Column column) { + if (column.getTable() == graphModel.getEdgeTable()) { + return hiddenEdgeColumnIds; + } + return hiddenNodeColumnIds; + } + + private String craftColumnId(Column column) { + String id = column.getId(); + if (column.isProperty()) { + id = "_property_" + id; + } + return id; + } + + public void setColumnHidden(Column column, boolean hidden) { + String columnId = craftColumnId(column); + Set hiddenSet = getHiddenSetForColumn(column); + if (hidden) { + hiddenSet.add(columnId); + } else { + hiddenSet.remove(columnId); + } + } + + public Set getHiddenNodeColumnIds() { + return Collections.unmodifiableSet(hiddenNodeColumnIds); + } + + public Set getHiddenEdgeColumnIds() { + return Collections.unmodifiableSet(hiddenEdgeColumnIds); + } + + @Override + public void writeXML(XMLStreamWriter writer, Workspace workspace) { + try { + writer.writeStartElement("editmode"); + writer.writeCharacters(String.valueOf(editMode)); + writer.writeEndElement(); + + writer.writeStartElement("shownullcolumns"); + writer.writeCharacters(String.valueOf(showNullColumns)); + writer.writeEndElement(); + + writer.writeStartElement("includeproperties"); + writer.writeCharacters(String.valueOf(includeProperties)); + writer.writeEndElement(); + + for (String columnId : hiddenNodeColumnIds) { + writer.writeStartElement("hiddencolumn"); + writer.writeAttribute("id", columnId); + writer.writeEndElement(); + } + + for (String columnId : hiddenEdgeColumnIds) { + writer.writeStartElement("hiddenedgecolumn"); + writer.writeAttribute("id", columnId); + writer.writeEndElement(); + } + } catch (XMLStreamException ex) { + throw new RuntimeException(ex); + } + } + + @Override + public void readXML(XMLStreamReader reader, Workspace workspace) { + try { + boolean end = false; + boolean readHiddenNodeColumns = false; + boolean readHiddenEdgeColumns = false; + while (reader.hasNext() && !end) { + int eventType = reader.next(); + if (eventType == XMLEvent.START_ELEMENT) { + String name = reader.getLocalName(); + if ("editmode".equalsIgnoreCase(name)) { + editMode = Boolean.parseBoolean(reader.getElementText()); + } else if ("shownullcolumns".equalsIgnoreCase(name)) { + showNullColumns = Boolean.parseBoolean(reader.getElementText()); + } else if ("includeproperties".equalsIgnoreCase(name)) { + includeProperties = Boolean.parseBoolean(reader.getElementText()); + } else if ("hiddencolumn".equalsIgnoreCase(name)) { + if (!readHiddenNodeColumns) { + hiddenNodeColumnIds.clear(); + readHiddenNodeColumns = true; + } + String id = reader.getAttributeValue(null, "id"); + if (id != null) { + hiddenNodeColumnIds.add(id); + } + } else if ("hiddenedgecolumn".equalsIgnoreCase(name)) { + if (!readHiddenEdgeColumns) { + hiddenEdgeColumnIds.clear(); + readHiddenEdgeColumns = true; + } + String id = reader.getAttributeValue(null, "id"); + if (id != null) { + hiddenEdgeColumnIds.add(id); + } + } + } else if (eventType == XMLEvent.END_ELEMENT) { + if (getIdentifier().equalsIgnoreCase(reader.getLocalName())) { + end = true; + } + } + } + } catch (XMLStreamException ex) { + throw new RuntimeException(ex); + } + } + + @Override + public String getIdentifier() { + return "attributesuimodel"; + } +} diff --git a/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/AttributesUIModelListener.java b/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/AttributesUIModelListener.java new file mode 100644 index 0000000000..2900de7c9e --- /dev/null +++ b/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/AttributesUIModelListener.java @@ -0,0 +1,6 @@ +package org.gephi.desktop.attributes; + +import java.beans.PropertyChangeListener; + +public interface AttributesUIModelListener extends PropertyChangeListener { +} diff --git a/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/api/AttributesUIController.java b/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/api/AttributesUIController.java new file mode 100644 index 0000000000..154bafd33a --- /dev/null +++ b/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/api/AttributesUIController.java @@ -0,0 +1,75 @@ +/* +Copyright 2008-2010 Gephi +Authors : Eduardo Ramos +Website : http://www.gephi.org + +This file is part of Gephi. + +DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + +Copyright 2011 Gephi Consortium. All rights reserved. + +The contents of this file are subject to the terms of either the GNU +General Public License Version 3 only ("GPL") or the Common +Development and Distribution License("CDDL") (collectively, the +"License"). You may not use this file except in compliance with the +License. You can obtain a copy of the License at +http://gephi.org/about/legal/license-notice/ +or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the +specific language governing permissions and limitations under the +License. When distributing the software, include this License Header +Notice in each file and include the License files at +/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the +License Header, with the fields enclosed by brackets [] replaced by +your own identifying information: +"Portions Copyrighted [year] [name of copyright owner]" + +If you wish your version of this file to be governed by only the CDDL +or only the GPL Version 3, indicate your decision by adding +"[Contributor] elects to include this software in this distribution +under the [CDDL or GPL Version 3] license." If you do not indicate a +single choice of license, a recipient has the option to distribute +your version of this file under either the CDDL, the GPL Version 3 or +to extend the choice of license to its licensees as provided above. +However, if you add GPL Version 3 code and therefore, elected the GPL +Version 3 license, then the option applies only if the new code is +made subject to such option by the copyright holder. + +Contributor(s): + +Portions Copyrighted 2011 Gephi Consortium. + */ + +package org.gephi.desktop.attributes.api; + +import org.gephi.graph.api.Edge; +import org.gephi.graph.api.Node; + +/** + * Controller API for requesting the opening and usage of edit window. + * + * @author Eduardo Ramos + */ +public interface AttributesUIController { + void openWindow(); + + void openWindowAndRequestActive(); + + void closeWindow(); + + boolean isOpen(); + + void editNode(Node node); + + void editNodes(final Node[] nodes); + + void editEdge(final Edge edge); + + void editEdges(final Edge[] edges); + + void enableEdit(); + + void disableEdit(); + + void selectNodes(final Node[] nodes); +} diff --git a/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/api/AttributesUIModel.java b/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/api/AttributesUIModel.java new file mode 100644 index 0000000000..a67b3e6cc8 --- /dev/null +++ b/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/api/AttributesUIModel.java @@ -0,0 +1,4 @@ +package org.gephi.desktop.attributes.api; + +public interface AttributesUIModel { +} diff --git a/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/edit/AttributeValueWrapper.java b/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/edit/AttributeValueWrapper.java new file mode 100644 index 0000000000..cb74db43d6 --- /dev/null +++ b/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/edit/AttributeValueWrapper.java @@ -0,0 +1,47 @@ +package org.gephi.desktop.attributes.edit; + +interface AttributeValueWrapper { + + public Byte getValueByte(); + + public void setValueByte(Byte object); + + public Short getValueShort(); + + public void setValueShort(Short object); + + public Character getValueCharacter(); + + public void setValueCharacter(Character object); + + public String getValueString(); + + public void setValueString(String object); + + public Double getValueDouble(); + + public void setValueDouble(Double object); + + public Float getValueFloat(); + + public void setValueFloat(Float object); + + public Integer getValueInteger(); + + public void setValueInteger(Integer object); + + public Boolean getValueBoolean(); + + public void setValueBoolean(Boolean object); + + public Long getValueLong(); + + public void setValueLong(Long object); + + /** + * **** Other types are not supported by property editors by default so they are used and parsed as Strings ***** + */ + public String getValueAsString(); + + public void setValueAsString(String value); +} diff --git a/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/edit/EditEdges.java b/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/edit/EditEdges.java new file mode 100644 index 0000000000..f2f3dc5114 --- /dev/null +++ b/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/edit/EditEdges.java @@ -0,0 +1,384 @@ +/* +Copyright 2008-2010 Gephi +Authors : Mathieu Bastian , Mathieu Jacomy, Julian Bilcke, Eduardo Ramos +Website : http://www.gephi.org + +This file is part of Gephi. + +DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + +Copyright 2011 Gephi Consortium. All rights reserved. + +The contents of this file are subject to the terms of either the GNU +General Public License Version 3 only ("GPL") or the Common +Development and Distribution License("CDDL") (collectively, the +"License"). You may not use this file except in compliance with the +License. You can obtain a copy of the License at +http://gephi.org/about/legal/license-notice/ +or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the +specific language governing permissions and limitations under the +License. When distributing the software, include this License Header +Notice in each file and include the License files at +/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the +License Header, with the fields enclosed by brackets [] replaced by +your own identifying information: +"Portions Copyrighted [year] [name of copyright owner]" + +If you wish your version of this file to be governed by only the CDDL +or only the GPL Version 3, indicate your decision by adding +"[Contributor] elects to include this software in this distribution +under the [CDDL or GPL Version 3] license." If you do not indicate a +single choice of license, a recipient has the option to distribute +your version of this file under either the CDDL, the GPL Version 3 or +to extend the choice of license to its licensees as provided above. +However, if you add GPL Version 3 code and therefore, elected the GPL +Version 3 license, then the option applies only if the new code is +made subject to such option by the copyright holder. + +Contributor(s): + +Portions Copyrighted 2011 Gephi Consortium. + */ + +package org.gephi.desktop.attributes.edit; + +import java.awt.Color; +import java.beans.PropertyEditor; +import java.beans.PropertyEditorManager; +import java.time.ZoneId; +import org.gephi.datalab.api.AttributeColumnsController; +import org.gephi.desktop.attributes.AttributesUIModelImpl; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Edge; +import org.gephi.graph.api.GraphController; +import org.gephi.graph.api.TextProperties; +import org.gephi.graph.api.TimeFormat; +import org.openide.nodes.AbstractNode; +import org.openide.nodes.Children; +import org.openide.nodes.PropertySupport; +import org.openide.nodes.Sheet; +import org.openide.util.Exceptions; +import org.openide.util.Lookup; +import org.openide.util.NbBundle; + +/** + * PropertySheet that allows to edit one or more edges. If multiple node edition + * mode is used at first all values will be shown as blank but will change with + * the editions and all edges will be set the values that the user inputs. + * + * @author Mathieu Bastian + */ +public class EditEdges extends AbstractNode { + + private final Edge[] edges; + private final boolean multipleEdges; + private final TimeFormat currentTimeFormat; + private final ZoneId dateTimeZone; + private final AttributesUIModelImpl model; + private PropertySet[] propertySets; + + /** + * Single edge edition mode will always be enabled with this single node + * constructor + * + * @param edge + */ + public EditEdges(Edge edge) { + this(new Edge[] {edge}, null); + } + + /** + * If the edges array has more than one element, multiple edges edition mode + * will be enabled. + * + * @param edges + */ + public EditEdges(Edge[] edges) { + this(edges, null); + } + + public EditEdges(Edge[] edges, AttributesUIModelImpl model) { + super(Children.LEAF); + this.edges = edges; + this.model = model; + multipleEdges = edges.length > 1; + if (multipleEdges) { + setName(NbBundle.getMessage(EditEdges.class, "EditEdges.multiple.elements")); + } else { + setName(getLabelOrId(edges[0])); + } + + GraphController gc = Lookup.getDefault().lookup(GraphController.class); + currentTimeFormat = gc.getGraphModel().getTimeFormat(); + dateTimeZone = gc.getGraphModel().getTimeZone(); + } + + @Override + public PropertySet[] getPropertySets() { + if (model != null && !model.isIncludeProperties()) { + propertySets = new PropertySet[] {prepareEdgesAttributes()}; + } else { + propertySets = new PropertySet[] {prepareEdgesProperties(), prepareEdgesAttributes()}; + } + return propertySets; + } + + /** + * Retrieves the label of the provided edge if available. If the label is null + * or empty, the edge's ID is converted to a string and returned instead. + * + * @param edge the edge object from which the label or ID will be retrieved + * @return the label of the edge if present and non-empty; otherwise, the string representation of the edge's ID + */ + private static String getLabelOrId(Edge edge) { + String label = edge.getLabel(); + if (label == null || label.isEmpty()) { + label = edge.getId().toString(); + } + return label; + } + + /** + * Prepare set of attributes of the edges. + * + * @return Set of these attributes + */ + private Sheet.Set prepareEdgesAttributes() { + try { + AttributeColumnsController ac = Lookup.getDefault().lookup(AttributeColumnsController.class); + Sheet.Set set = new Sheet.Set(); + set.setName("attributes"); + if (edges.length > 1) { + set.setDisplayName(NbBundle.getMessage(EditEdges.class, "EditEdges.attributes.text.multiple")); + } else { + set.setDisplayName( + NbBundle.getMessage(EditEdges.class, "EditEdges.attributes.text", getLabelOrId(edges[0]))); + } + + Edge row = edges[0]; + AttributeValueWrapper wrap; + for (Column column : row.getAttributeColumns()) { + if (model != null && !isAlwaysVisibleColumn(column) && !model.isColumnVisible(column)) { + continue; + } + if (multipleEdges) { + wrap = new MultipleRowsAttributeValueWrapper(edges, column, currentTimeFormat, dateTimeZone); + } else { + wrap = new SingleRowAttributeValueWrapper(edges[0], column, currentTimeFormat, dateTimeZone); + } + Class type = column.getTypeClass(); + Property p; + PropertyEditor propEditor = PropertyEditorManager.findEditor(type); + if (ac.canChangeColumnData(column)) { + //Editable column, provide "set" method: + if (propEditor != null && !type.isArray()) {//The type can be edited by default: + p = new PropertySupport.Reflection(wrap, type, "getValue" + type.getSimpleName(), + "setValue" + type.getSimpleName()); + } else {//Use the AttributeType as String: + p = new PropertySupport.Reflection(wrap, String.class, "getValueAsString", "setValueAsString"); + } + } else //Not editable column, do not provide "set" method: + { + if (propEditor != null) {//The type can be edited by default: + p = new PropertySupport.Reflection(wrap, type, "getValue" + type.getSimpleName(), null); + } else {//Use the AttributeType as String: + p = new PropertySupport.Reflection(wrap, String.class, "getValueAsString", null); + } + } + p.setDisplayName(column.getTitle()); + p.setName(column.getId()); + set.put(p); + } + return set; + } catch (Exception ex) { + Exceptions.printStackTrace(ex); + return null; + } + } + + /** + * Prepare set of editable properties of the node(s): size, position. + * + * @return Set of these properties + */ + private Sheet.Set prepareEdgesProperties() { + try { + if (multipleEdges) { + Sheet.Set set = new Sheet.Set(); + set.setName("properties"); + set.setDisplayName(NbBundle.getMessage(EditEdges.class, "EditEdges.properties.text.multiple")); + + Property p; + + //Color: + MultipleEdgesPropertiesWrapper edgesWrapper = new MultipleEdgesPropertiesWrapper(edges); + p = new PropertySupport.Reflection(edgesWrapper, Color.class, "getEdgesColor", "setEdgesColor"); + p.setDisplayName(NbBundle.getMessage(EditEdges.class, "EditEdges.color.text")); + p.setName("color"); + set.put(p); + + //Label color: + p = new PropertySupport.Reflection(edgesWrapper, Color.class, "getLabelsColor", "setLabelsColor"); + p.setDisplayName(NbBundle.getMessage(EditEdges.class, "EditEdges.label.color.text")); + p.setName("labelcolor"); + set.put(p); + + //Label size: + p = new PropertySupport.Reflection(edgesWrapper, Float.class, "getLabelsSize", "setLabelsSize"); + p.setDisplayName(NbBundle.getMessage(EditEdges.class, "EditEdges.label.size.text")); + p.setName("labelsize"); + set.put(p); + + //Label visible: + p = new PropertySupport.Reflection(edgesWrapper, Boolean.class, "getLabelsVisible", "setLabelsVisible"); + p.setDisplayName(NbBundle.getMessage(EditEdges.class, "EditEdges.label.visible.text")); + p.setName("labelvisible"); + set.put(p); + + return set; + } else { + Edge edge = edges[0]; + Sheet.Set set = new Sheet.Set(); + set.setName("properties"); + set.setDisplayName( + NbBundle.getMessage(EditEdges.class, "EditEdges.properties.text", getLabelOrId(edge))); + + Property p; + + //Color: + SingleEdgePropertiesWrapper edgeWrapper = new SingleEdgePropertiesWrapper(edge); + p = new PropertySupport.Reflection(edgeWrapper, Color.class, "getEdgeColor", "setEdgeColor"); + p.setDisplayName(NbBundle.getMessage(EditEdges.class, "EditEdges.color.text")); + p.setName("color"); + set.put(p); + + TextProperties textProperties = edge.getTextProperties(); + + //Label size: + p = new PropertySupport.Reflection(textProperties, Float.TYPE, "getSize", "setSize"); + p.setDisplayName(NbBundle.getMessage(EditEdges.class, "EditEdges.label.size.text")); + p.setName("labelsize"); + set.put(p); + + //Label color: + p = new PropertySupport.Reflection(edgeWrapper, Color.class, "getLabelColor", "setLabelColor"); + p.setDisplayName(NbBundle.getMessage(EditEdges.class, "EditEdges.label.color.text")); + p.setName("labelcolor"); + set.put(p); + + //Label visible: + p = new PropertySupport.Reflection(textProperties, Boolean.TYPE, "isVisible", "setVisible"); + p.setDisplayName(NbBundle.getMessage(EditEdges.class, "EditEdges.label.visible.text")); + p.setName("labelvisible"); + set.put(p); + + return set; + } + } catch (Exception ex) { + Exceptions.printStackTrace(ex); + return null; + } + } + + private static boolean isAlwaysVisibleColumn(Column column) { + return column.isProperty() && + ("id".equalsIgnoreCase(column.getId()) || "label".equalsIgnoreCase(column.getId())); + } + + public static class SingleEdgePropertiesWrapper { + + private final Edge edge; + + public SingleEdgePropertiesWrapper(Edge Edge) { + this.edge = Edge; + } + + public Color getEdgeColor() { + return edge.getColor(); + } + + public void setEdgeColor(Color c) { + if (c != null) { + edge.setColor(c); + } + } + + public Color getLabelColor() { + TextProperties textProps = edge.getTextProperties(); + + return textProps.getColor(); + } + + public void setLabelColor(Color c) { + if (c != null) { + TextProperties textProps = edge.getTextProperties(); + textProps.setColor(c); + } + } + } + + public static class MultipleEdgesPropertiesWrapper { + + Edge[] edges; + //Methods and fields for multiple edges editing: + private Color edgesColor = null; + private Color labelsColor = null; + private Float labelsSize = null; + private Boolean labelsVisible = null; + + public MultipleEdgesPropertiesWrapper(Edge[] Edges) { + this.edges = Edges; + } + + public Color getEdgesColor() { + return edgesColor; + } + + public void setEdgesColor(Color c) { + if (c != null) { + edgesColor = c; + for (Edge edge : edges) { + edge.setColor(c); + } + } + } + + public Color getLabelsColor() { + return labelsColor; + } + + public void setLabelsColor(Color c) { + if (c != null) { + labelsColor = c; + for (Edge edge : edges) { + TextProperties textProps = edge.getTextProperties(); + textProps.setColor(c); + } + } + } + + public Float getLabelsSize() { + return labelsSize; + } + + public void setLabelsSize(Float size) { + labelsSize = size; + for (Edge edge : edges) { + TextProperties textProps = edge.getTextProperties(); + textProps.setSize(size); + } + } + + public Boolean getLabelsVisible() { + return labelsVisible; + } + + public void setLabelsVisible(Boolean visible) { + labelsVisible = visible; + for (Edge edge : edges) { + TextProperties textProps = edge.getTextProperties(); + textProps.setVisible(visible); + } + } + } +} diff --git a/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/edit/EditNodes.java b/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/edit/EditNodes.java new file mode 100644 index 0000000000..54bfb2068d --- /dev/null +++ b/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/edit/EditNodes.java @@ -0,0 +1,466 @@ +/* + Copyright 2008-2010 Gephi + Authors : Mathieu Bastian , Mathieu Jacomy, Julian Bilcke, Eduardo Ramos + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2011 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2011 Gephi Consortium. + */ + +package org.gephi.desktop.attributes.edit; + +import java.awt.Color; +import java.beans.PropertyEditor; +import java.beans.PropertyEditorManager; +import java.time.ZoneId; +import org.gephi.datalab.api.AttributeColumnsController; +import org.gephi.desktop.attributes.AttributesUIModelImpl; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.GraphController; +import org.gephi.graph.api.Node; +import org.gephi.graph.api.TextProperties; +import org.gephi.graph.api.TimeFormat; +import org.openide.nodes.AbstractNode; +import org.openide.nodes.Children; +import org.openide.nodes.PropertySupport; +import org.openide.nodes.Sheet; +import org.openide.util.Exceptions; +import org.openide.util.Lookup; +import org.openide.util.NbBundle; + +/** + * PropertySheet that allows to edit one or more nodes. If multiple node edition + * mode is used at first all values will be shown as blank but will change with + * the editions and all nodes will be set the values that the user inputs. + * + * @author Mathieu Bastian + */ +public class EditNodes extends AbstractNode { + + private final Node[] nodes; + private final boolean multipleNodes; + private final TimeFormat currentTimeFormat; + private final ZoneId dateTimeZone; + private final AttributesUIModelImpl model; + private PropertySet[] propertySets; + + /** + * Single node edition mode will always be enabled with this single node + * constructor + * + * @param node + */ + public EditNodes(Node node) { + this(new Node[] {node}, null); + } + + /** + * If the nodes array has more than one element, multiple nodes edition mode + * will be enabled. + * + * @param nodes + */ + public EditNodes(Node[] nodes) { + this(nodes, null); + } + + public EditNodes(Node[] nodes, AttributesUIModelImpl model) { + super(Children.LEAF); + this.nodes = nodes; + this.model = model; + multipleNodes = nodes.length > 1; + if (multipleNodes) { + setName(NbBundle.getMessage(EditNodes.class, "EditNodes.multiple.elements")); + } else { + setName(getLabelOrId(nodes[0])); + } + GraphController gc = Lookup.getDefault().lookup(GraphController.class); + currentTimeFormat = gc.getGraphModel().getTimeFormat(); + dateTimeZone = gc.getGraphModel().getTimeZone(); + } + + @Override + public PropertySet[] getPropertySets() { + if (model != null && !model.isIncludeProperties()) { + propertySets = new PropertySet[] {prepareNodesAttributes()}; + } else { + propertySets = new PropertySet[] {prepareNodesProperties(), prepareNodesAttributes()}; + } + return propertySets; + } + + + /** + * Retrieves the label of the given node. If the label is null or empty, + * the node's ID is returned as a string instead. + * + * @param node the node from which the label or ID should be retrieved + * @return the label of the node if it exists and is not empty; otherwise, the string representation of the node's ID + */ + private static String getLabelOrId(Node node) { + String label = node.getLabel(); + if (label == null || label.isEmpty()) { + label = node.getId().toString(); + } + return label; + } + + /** + * Prepare set of attributes of the node(s). + * + * @return Set of these attributes + */ + private Sheet.Set prepareNodesAttributes() { + try { + AttributeColumnsController ac = Lookup.getDefault().lookup(AttributeColumnsController.class); + Sheet.Set set = new Sheet.Set(); + set.setName("attributes"); + if (nodes.length > 1) { + set.setDisplayName(NbBundle.getMessage(EditNodes.class, "EditNodes.attributes.text.multiple")); + } else { + set.setDisplayName( + NbBundle.getMessage(EditNodes.class, "EditNodes.attributes.text", getLabelOrId(nodes[0]))); + } + + Node row = nodes[0]; + AttributeValueWrapper wrap; + for (Column column : row.getAttributeColumns()) { + if (model != null && !isAlwaysVisibleColumn(column) && !model.isColumnVisible(column)) { + continue; + } + if (multipleNodes) { + wrap = new MultipleRowsAttributeValueWrapper(nodes, column, currentTimeFormat, dateTimeZone); + } else { + wrap = new SingleRowAttributeValueWrapper(nodes[0], column, currentTimeFormat, dateTimeZone); + } + + Property p; + Class type = column.getTypeClass(); + PropertyEditor propEditor = PropertyEditorManager.findEditor(type); + if (ac.canChangeColumnData(column)) { + //Editable column, provide "set" method: + if (propEditor != null && !type.isArray()) {//The type can be edited by default: + p = new PropertySupport.Reflection(wrap, type, "getValue" + type.getSimpleName(), + "setValue" + type.getSimpleName()); + } else {//Use the AttributeType as String: + p = new PropertySupport.Reflection(wrap, String.class, "getValueAsString", "setValueAsString"); + } + } else //Not editable column, do not provide "set" method: + if (propEditor != null) {//The type can be edited by default: + p = new PropertySupport.Reflection(wrap, type, "getValue" + type.getSimpleName(), null); + } else {//Use the AttributeType as String: + p = new PropertySupport.Reflection(wrap, String.class, "getValueAsString", null); + } + p.setDisplayName(column.getTitle()); + p.setName(column.getId()); + set.put(p); + } + return set; + } catch (Exception ex) { + Exceptions.printStackTrace(ex); + return null; + } + } + + /** + * Prepare set of editable properties of the node(s): size, position. + * + * @return Set of these properties + */ + private Sheet.Set prepareNodesProperties() { + try { + if (multipleNodes) { + MultipleNodesPropertiesWrapper nodesWrapper = new MultipleNodesPropertiesWrapper(nodes); + Sheet.Set set = new Sheet.Set(); + set.setName("properties"); + set.setDisplayName(NbBundle.getMessage(EditNodes.class, "EditNodes.properties.text.multiple")); + + Property p; + //Size: + p = new PropertySupport.Reflection(nodesWrapper, Float.class, "getNodesSize", "setNodesSize"); + p.setDisplayName(NbBundle.getMessage(EditNodes.class, "EditNodes.size.text")); + p.setName("size"); + set.put(p); + + //All position coordinates: + set.put(buildMultipleNodesGeneralPositionProperty(nodesWrapper, "x")); + set.put(buildMultipleNodesGeneralPositionProperty(nodesWrapper, "y")); + + //Color: + p = new PropertySupport.Reflection(nodesWrapper, Color.class, "getNodesColor", "setNodesColor"); + p.setDisplayName(NbBundle.getMessage(EditNodes.class, "EditNodes.color.text")); + p.setName("color"); + set.put(p); + + //Label color: + p = new PropertySupport.Reflection(nodesWrapper, Color.class, "getLabelsColor", "setLabelsColor"); + p.setDisplayName(NbBundle.getMessage(EditNodes.class, "EditNodes.label.color.text")); + p.setName("labelcolor"); + set.put(p); + + //Label size: + p = new PropertySupport.Reflection(nodesWrapper, Float.class, "getLabelsSize", "setLabelsSize"); + p.setDisplayName(NbBundle.getMessage(EditNodes.class, "EditNodes.label.size.text")); + p.setName("labelsize"); + set.put(p); + + //Label visible: + p = new PropertySupport.Reflection(nodesWrapper, Boolean.class, "getLabelsVisible", "setLabelsVisible"); + p.setDisplayName(NbBundle.getMessage(EditNodes.class, "EditNodes.label.visible.text")); + p.setName("labelvisible"); + set.put(p); + + return set; + } else { + Node node = nodes[0]; + Sheet.Set set = new Sheet.Set(); + set.setName("properties"); + set.setDisplayName(NbBundle.getMessage(EditNodes.class, "EditNodes.properties.text", getLabelOrId(node))); + + Property p; + //Size: + p = new PropertySupport.Reflection(node, Float.TYPE, "size", "setSize"); + p.setDisplayName(NbBundle.getMessage(EditNodes.class, "EditNodes.size.text")); + p.setName("size"); + set.put(p); + + //All position coordinates: + set.put(buildGeneralPositionProperty(node, "x")); + set.put(buildGeneralPositionProperty(node, "y")); + + //Color: + SingleNodePropertiesWrapper nodeWrapper = new SingleNodePropertiesWrapper(node); + p = new PropertySupport.Reflection(nodeWrapper, Color.class, "getNodeColor", "setNodeColor"); + p.setDisplayName(NbBundle.getMessage(EditNodes.class, "EditNodes.color.text")); + p.setName("color"); + set.put(p); + + TextProperties textProperties = node.getTextProperties(); + + //Label size: + p = new PropertySupport.Reflection(textProperties, Float.TYPE, "getSize", "setSize"); + p.setDisplayName(NbBundle.getMessage(EditNodes.class, "EditNodes.label.size.text")); + p.setName("labelsize"); + set.put(p); + + //Label color: + p = new PropertySupport.Reflection(nodeWrapper, Color.class, "getLabelColor", "setLabelColor"); + p.setDisplayName(NbBundle.getMessage(EditNodes.class, "EditNodes.label.color.text")); + p.setName("labelcolor"); + set.put(p); + + //Label visible: + p = new PropertySupport.Reflection(textProperties, Boolean.TYPE, "isVisible", "setVisible"); + p.setDisplayName(NbBundle.getMessage(EditNodes.class, "EditNodes.label.visible.text")); + p.setName("labelvisible"); + set.put(p); + + return set; + } + } catch (Exception ex) { + Exceptions.printStackTrace(ex); + return null; + } + } + + private static boolean isAlwaysVisibleColumn(Column column) { + return column.isProperty() && + ("id".equalsIgnoreCase(column.getId()) || "label".equalsIgnoreCase(column.getId())); + } + + /** + * Used to build property for each position coordinate (x,y,z) in the same + * way. + * + * @return Property for that coordinate + */ + private Property buildGeneralPositionProperty(Node node, String coordinate) throws NoSuchMethodException { + //Position: + Property p = new PropertySupport.Reflection(node, Float.TYPE, coordinate, "set" + coordinate.toUpperCase()); + p.setDisplayName(NbBundle.getMessage(EditNodes.class, "EditNodes.position.text", coordinate)); + p.setName(coordinate); + return p; + } + + /** + * Used to build property for each position coordinate of various nodes + * (x,y,z) in the same way. + * + * @return Property for that coordinate + */ + private Property buildMultipleNodesGeneralPositionProperty(MultipleNodesPropertiesWrapper nodesWrapper, + String coordinate) throws NoSuchMethodException { + //Position: + Property p = new PropertySupport.Reflection(nodesWrapper, Float.class, "getNodes" + coordinate.toUpperCase(), + "setNodes" + coordinate.toUpperCase()); + p.setDisplayName(NbBundle.getMessage(EditNodes.class, "EditNodes.position.text", coordinate)); + p.setName(coordinate); + return p; + } + + public static class SingleNodePropertiesWrapper { + + private final Node node; + + public SingleNodePropertiesWrapper(Node node) { + this.node = node; + } + + public Color getNodeColor() { + return node.getColor(); + } + + public void setNodeColor(Color c) { + if (c != null) { + node.setColor(c); + } + } + + public Color getLabelColor() { + TextProperties textProps = node.getTextProperties(); + + return textProps.getColor(); + } + + public void setLabelColor(Color c) { + if (c != null) { + TextProperties textProps = node.getTextProperties(); + textProps.setColor(c); + } + } + } + + public static class MultipleNodesPropertiesWrapper { + + private final Node[] nodes; + //Methods and fields for multiple nodes editing: + private Float nodesX = null; + private Float nodesY = null; + private Float nodesSize = null; + private Color nodesColor = null; + private Color labelsColor = null; + private Float labelsSize = null; + private Boolean labelsVisible = null; + + public MultipleNodesPropertiesWrapper(Node[] nodes) { + this.nodes = nodes; + } + + public Float getNodesX() { + return nodesX; + } + + public void setNodesX(Float x) { + nodesX = x; + for (Node node : nodes) { + node.setX(x); + } + } + + public Float getNodesY() { + return nodesY; + } + + public void setNodesY(Float y) { + nodesY = y; + for (Node node : nodes) { + node.setY(y); + } + } + + public Color getNodesColor() { + return nodesColor; + } + + public void setNodesColor(Color c) { + if (c != null) { + nodesColor = c; + for (Node node : nodes) { + node.setColor(c); + } + } + } + + public Float getNodesSize() { + return nodesSize; + } + + public void setNodesSize(Float size) { + nodesSize = size; + for (Node node : nodes) { + node.setSize(size); + } + } + + public Color getLabelsColor() { + return labelsColor; + } + + public void setLabelsColor(Color c) { + if (c != null) { + labelsColor = c; + for (Node node : nodes) { + TextProperties textProps = node.getTextProperties(); + textProps.setColor(c); + } + } + } + + public Float getLabelsSize() { + return labelsSize; + } + + public void setLabelsSize(Float size) { + labelsSize = size; + for (Node node : nodes) { + TextProperties textProps = node.getTextProperties(); + textProps.setSize(size); + } + } + + public Boolean getLabelsVisible() { + return labelsVisible; + } + + public void setLabelsVisible(Boolean visible) { + labelsVisible = visible; + for (Node node : nodes) { + TextProperties textProps = node.getTextProperties(); + textProps.setVisible(visible); + } + } + } +} diff --git a/modules/ToolsPlugin/src/main/java/org/gephi/ui/tools/plugin/edit/EditToolTopComponent.form b/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/edit/EditPanel.form similarity index 100% rename from modules/ToolsPlugin/src/main/java/org/gephi/ui/tools/plugin/edit/EditToolTopComponent.form rename to modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/edit/EditPanel.form diff --git a/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/edit/EditPanel.java b/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/edit/EditPanel.java new file mode 100644 index 0000000000..aa07c1aa9e --- /dev/null +++ b/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/edit/EditPanel.java @@ -0,0 +1,126 @@ +/* +Copyright 2008-2010 Gephi +Authors : Mathieu Bastian +Website : http://www.gephi.org + +This file is part of Gephi. + +DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + +Copyright 2011 Gephi Consortium. All rights reserved. + +The contents of this file are subject to the terms of either the GNU +General Public License Version 3 only ("GPL") or the Common +Development and Distribution License("CDDL") (collectively, the +"License"). You may not use this file except in compliance with the +License. You can obtain a copy of the License at +http://gephi.org/about/legal/license-notice/ +or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the +specific language governing permissions and limitations under the +License. When distributing the software, include this License Header +Notice in each file and include the License files at +/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the +License Header, with the fields enclosed by brackets [] replaced by +your own identifying information: +"Portions Copyrighted [year] [name of copyright owner]" + +If you wish your version of this file to be governed by only the CDDL +or only the GPL Version 3, indicate your decision by adding +"[Contributor] elects to include this software in this distribution +under the [CDDL or GPL Version 3] license." If you do not indicate a +single choice of license, a recipient has the option to distribute +your version of this file under either the CDDL, the GPL Version 3 or +to extend the choice of license to its licensees as provided above. +However, if you add GPL Version 3 code and therefore, elected the GPL +Version 3 license, then the option applies only if the new code is +made subject to such option by the copyright holder. + +Contributor(s): + +Portions Copyrighted 2011 Gephi Consortium. +*/ + +package org.gephi.desktop.attributes.edit; + +import javax.swing.JComponent; +import org.gephi.desktop.attributes.AttributesUIModelImpl; +import org.gephi.graph.api.Edge; +import org.gephi.graph.api.Node; +import org.openide.explorer.propertysheet.PropertySheet; + +public final class EditPanel extends JComponent { + + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JPanel propertySheet; + // End of variables declaration//GEN-END:variables + + public EditPanel() { + initComponents(); + + ((PropertySheet) propertySheet).setDescriptionAreaVisible(false); + } + + public void setEnabled(boolean enabled) { + super.setEnabled(enabled); + ((PropertySheet) propertySheet).setEnabled(enabled); + } + + public void refreshSelected(final AttributesUIModelImpl model) { + Node[] nodes = model.getSelectedNodes(); + if (nodes != null) { + editNodes(nodes, model); + return; + } + Edge[] edges = model.getSelectedEdges(); + if (edges != null) { + editEdges(edges, model); + } + } + + public void editNodes(Node[] nodes) { + ((PropertySheet) propertySheet).setNodes(new org.openide.nodes.Node[] {new EditNodes(nodes)}); + } + + public void editNodes(Node[] nodes, AttributesUIModelImpl model) { + ((PropertySheet) propertySheet).setNodes(new org.openide.nodes.Node[] {new EditNodes(nodes, model)}); + } + + public void editEdge(Edge edge) { + ((PropertySheet) propertySheet).setNodes(new org.openide.nodes.Node[] {new EditEdges(edge)}); + } + + public void editEdges(Edge[] edges) { + ((PropertySheet) propertySheet).setNodes(new org.openide.nodes.Node[] {new EditEdges(edges)}); + } + + public void editEdges(Edge[] edges, AttributesUIModelImpl model) { + ((PropertySheet) propertySheet).setNodes(new org.openide.nodes.Node[] {new EditEdges(edges, model)}); + } + + public void disableEdit() { + ((PropertySheet) propertySheet).setNodes(new org.openide.nodes.Node[] {}); + } + + /** + * This method is called from within the constructor to + * initialize the form. + * WARNING: Do NOT modify this code. The content of this method is + * always regenerated by the Form Editor. + */ + // //GEN-BEGIN:initComponents + private void initComponents() { + java.awt.GridBagConstraints gridBagConstraints; + + propertySheet = new PropertySheet(); + + setLayout(new java.awt.GridBagLayout()); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridx = 0; + gridBagConstraints.gridy = 0; + gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; + gridBagConstraints.weightx = 1.0; + gridBagConstraints.weighty = 1.0; + gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); + add(propertySheet, gridBagConstraints); + }// //GEN-END:initComponents +} diff --git a/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/edit/MultipleRowsAttributeValueWrapper.java b/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/edit/MultipleRowsAttributeValueWrapper.java new file mode 100644 index 0000000000..3976921969 --- /dev/null +++ b/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/edit/MultipleRowsAttributeValueWrapper.java @@ -0,0 +1,185 @@ +/* + Copyright 2008-2011 Gephi + Authors : Eduardo Ramos + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2011 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2011 Gephi Consortium. + */ + +package org.gephi.desktop.attributes.edit; + +import java.time.ZoneId; +import org.gephi.graph.api.AttributeUtils; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Element; +import org.gephi.graph.api.TimeFormat; + +/** + * @author Eduardo Ramos + */ +public class MultipleRowsAttributeValueWrapper implements AttributeValueWrapper { + + private final Element[] rows; + private final Column column; + private final TimeFormat currentTimeFormat; + private final ZoneId dateTimeZone; + private Object value; + + public MultipleRowsAttributeValueWrapper(Element[] rows, Column column, TimeFormat currentTimeFormat, + ZoneId dateTimeZone) { + this.rows = rows; + this.column = column; + this.currentTimeFormat = currentTimeFormat; + this.dateTimeZone = dateTimeZone; + this.value = null; + } + + private String convertToStringIfNotNull() { + if (value != null) { + return AttributeUtils.print(value, currentTimeFormat, dateTimeZone); + } else { + return null; + } + } + + private void setValueToAllElements(Object object) { + this.value = object; + for (Element row : rows) { + row.setAttribute(column, value); + } + } + + @Override + public Byte getValueByte() { + return (Byte) value; + } + + @Override + public void setValueByte(Byte object) { + setValueToAllElements(object); + } + + @Override + public Short getValueShort() { + return (Short) value; + } + + @Override + public void setValueShort(Short object) { + setValueToAllElements(object); + } + + @Override + public Character getValueCharacter() { + return (Character) value; + } + + @Override + public void setValueCharacter(Character object) { + setValueToAllElements(object); + } + + @Override + public String getValueString() { + return (String) value; + } + + @Override + public void setValueString(String object) { + setValueToAllElements(object); + } + + @Override + public Double getValueDouble() { + return (Double) value; + } + + @Override + public void setValueDouble(Double object) { + setValueToAllElements(object); + } + + @Override + public Float getValueFloat() { + return (Float) value; + } + + @Override + public void setValueFloat(Float object) { + setValueToAllElements(object); + } + + @Override + public Integer getValueInteger() { + return (Integer) value; + } + + @Override + public void setValueInteger(Integer object) { + setValueToAllElements(object); + } + + @Override + public Boolean getValueBoolean() { + return (Boolean) value; + } + + @Override + public void setValueBoolean(Boolean object) { + setValueToAllElements(object); + } + + @Override + public Long getValueLong() { + return (Long) value; + } + + @Override + public void setValueLong(Long object) { + setValueToAllElements(object); + } + + @Override + public String getValueAsString() { + return convertToStringIfNotNull(); + } + + @Override + public void setValueAsString(String value) { + setValueToAllElements(AttributeUtils.parse(value, column.getTypeClass())); + } +} diff --git a/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/edit/SingleRowAttributeValueWrapper.java b/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/edit/SingleRowAttributeValueWrapper.java new file mode 100644 index 0000000000..12dac28b76 --- /dev/null +++ b/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/edit/SingleRowAttributeValueWrapper.java @@ -0,0 +1,177 @@ +/* + Copyright 2008-2011 Gephi + Authors : Eduardo Ramos + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2011 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2011 Gephi Consortium. + */ + +package org.gephi.desktop.attributes.edit; + +import java.time.ZoneId; +import org.gephi.graph.api.AttributeUtils; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.Element; +import org.gephi.graph.api.TimeFormat; + +/** + * @author Eduardo Ramos + */ +public class SingleRowAttributeValueWrapper implements AttributeValueWrapper { + + private final Element row; + private final Column column; + private final TimeFormat currentTimeFormat; + private final ZoneId dateTimeZone; + + public SingleRowAttributeValueWrapper(Element row, Column column, TimeFormat currentTimeFormat, + ZoneId dateTimeZone) { + this.row = row; + this.column = column; + this.currentTimeFormat = currentTimeFormat; + this.dateTimeZone = dateTimeZone; + } + + private String convertToStringIfNotNull() { + Object value = row.getAttribute(column); + if (value != null) { + return AttributeUtils.print(value, currentTimeFormat, dateTimeZone); + } else { + return null; + } + } + + @Override + public Byte getValueByte() { + return (Byte) row.getAttribute(column); + } + + @Override + public void setValueByte(Byte object) { + row.setAttribute(column, object); + } + + @Override + public Short getValueShort() { + return (Short) row.getAttribute(column); + } + + @Override + public void setValueShort(Short object) { + row.setAttribute(column, object); + } + + @Override + public Character getValueCharacter() { + return (Character) row.getAttribute(column); + } + + @Override + public void setValueCharacter(Character object) { + row.setAttribute(column, object); + } + + @Override + public String getValueString() { + return (String) row.getAttribute(column); + } + + @Override + public void setValueString(String object) { + row.setAttribute(column, object); + } + + @Override + public Double getValueDouble() { + return (Double) row.getAttribute(column); + } + + @Override + public void setValueDouble(Double object) { + row.setAttribute(column, object); + } + + @Override + public Float getValueFloat() { + return (Float) row.getAttribute(column); + } + + @Override + public void setValueFloat(Float object) { + row.setAttribute(column, object); + } + + @Override + public Integer getValueInteger() { + return (Integer) row.getAttribute(column); + } + + @Override + public void setValueInteger(Integer object) { + row.setAttribute(column, object); + } + + @Override + public Boolean getValueBoolean() { + return (Boolean) row.getAttribute(column); + } + + @Override + public void setValueBoolean(Boolean object) { + row.setAttribute(column, object); + } + + @Override + public Long getValueLong() { + return (Long) row.getAttribute(column); + } + + @Override + public void setValueLong(Long object) { + row.setAttribute(column, object); + } + + @Override + public String getValueAsString() { + return convertToStringIfNotNull(); + } + + @Override + public void setValueAsString(String value) { + row.setAttribute(column, AttributeUtils.parse(value, column.getTypeClass())); + } +} diff --git a/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/options/AttributesOptionsPanel.java b/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/options/AttributesOptionsPanel.java new file mode 100644 index 0000000000..48e5d1aabc --- /dev/null +++ b/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/options/AttributesOptionsPanel.java @@ -0,0 +1,119 @@ +/* + Copyright 2008-2025 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2025 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2025 Gephi Consortium. + */ + +package org.gephi.desktop.attributes.options; + +import javax.swing.GroupLayout; +import javax.swing.JCheckBox; +import javax.swing.JPanel; +import org.jdesktop.swingx.JXTitledSeparator; +import org.openide.util.NbBundle; +import org.openide.util.NbPreferences; + +final class AttributesOptionsPanel extends JPanel { + + private final AttributesOptionsPanelController controller; + + private JXTitledSeparator defaultSettingsSeparator; + private JCheckBox showNullColumnsCheckBox; + private JCheckBox includePropertiesCheckBox; + + AttributesOptionsPanel(AttributesOptionsPanelController controller) { + this.controller = controller; + initComponents(); + addChangeListeners(); + } + + private void initComponents() { + defaultSettingsSeparator = new JXTitledSeparator(); + defaultSettingsSeparator.setTitle( + NbBundle.getMessage(AttributesOptionsPanel.class, "AttributesOptionsPanel.defaultSettingsTitle.title")); + defaultSettingsSeparator.setFont(defaultSettingsSeparator.getFont().deriveFont(java.awt.Font.BOLD)); + + showNullColumnsCheckBox = new JCheckBox( + NbBundle.getMessage(AttributesOptionsPanel.class, "AttributesOptionsPanel.showNullColumns.text")); + includePropertiesCheckBox = new JCheckBox( + NbBundle.getMessage(AttributesOptionsPanel.class, "AttributesOptionsPanel.includeProperties.text")); + + GroupLayout layout = new GroupLayout(this); + setLayout(layout); + layout.setAutoCreateGaps(true); + layout.setAutoCreateContainerGaps(true); + + layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(defaultSettingsSeparator) + .addGroup(layout.createSequentialGroup() + .addGap(10) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(showNullColumnsCheckBox) + .addComponent(includePropertiesCheckBox))) + ); + + layout.setVerticalGroup(layout.createSequentialGroup() + .addComponent(defaultSettingsSeparator, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, + GroupLayout.PREFERRED_SIZE) + .addComponent(showNullColumnsCheckBox) + .addComponent(includePropertiesCheckBox) + ); + } + + private void addChangeListeners() { + showNullColumnsCheckBox.addActionListener(e -> controller.changed()); + includePropertiesCheckBox.addActionListener(e -> controller.changed()); + } + + void load() { + showNullColumnsCheckBox.setSelected(AttributesPreferences.isShowNullColumns()); + includePropertiesCheckBox.setSelected(AttributesPreferences.isIncludeProperties()); + } + + void store() { + NbPreferences.forModule(AttributesPreferences.class) + .putBoolean(AttributesPreferences.SHOW_NULL_COLUMNS, showNullColumnsCheckBox.isSelected()); + NbPreferences.forModule(AttributesPreferences.class) + .putBoolean(AttributesPreferences.INCLUDE_PROPERTIES, includePropertiesCheckBox.isSelected()); + } + + boolean valid() { + return true; + } +} diff --git a/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/options/AttributesOptionsPanelController.java b/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/options/AttributesOptionsPanelController.java new file mode 100644 index 0000000000..0b90e1a951 --- /dev/null +++ b/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/options/AttributesOptionsPanelController.java @@ -0,0 +1,123 @@ +/* + Copyright 2008-2025 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2025 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2025 Gephi Consortium. + */ + +package org.gephi.desktop.attributes.options; + +import java.beans.PropertyChangeListener; +import java.beans.PropertyChangeSupport; +import javax.swing.JComponent; +import org.netbeans.spi.options.OptionsPanelController; +import org.openide.util.HelpCtx; +import org.openide.util.Lookup; + +@OptionsPanelController.SubRegistration(location = "Gephi", + displayName = "#AdvancedOption_DisplayName_Attributes", + keywords = "#AdvancedOption_Keywords_Attributes", + keywordsCategory = "Gephi/Attributes", + position = 900) +public final class AttributesOptionsPanelController extends OptionsPanelController { + + private final PropertyChangeSupport pcs = new PropertyChangeSupport(this); + private AttributesOptionsPanel panel; + private boolean changed; + + @Override + public void update() { + getPanel().load(); + changed = false; + } + + @Override + public void applyChanges() { + getPanel().store(); + changed = false; + } + + @Override + public void cancel() { + } + + @Override + public boolean isValid() { + return getPanel().valid(); + } + + @Override + public boolean isChanged() { + return changed; + } + + @Override + public HelpCtx getHelpCtx() { + return null; + } + + @Override + public JComponent getComponent(Lookup masterLookup) { + return getPanel(); + } + + @Override + public void addPropertyChangeListener(PropertyChangeListener l) { + pcs.addPropertyChangeListener(l); + } + + @Override + public void removePropertyChangeListener(PropertyChangeListener l) { + pcs.removePropertyChangeListener(l); + } + + private AttributesOptionsPanel getPanel() { + if (panel == null) { + panel = new AttributesOptionsPanel(this); + } + return panel; + } + + void changed() { + if (!changed) { + changed = true; + pcs.firePropertyChange(OptionsPanelController.PROP_CHANGED, false, true); + } + pcs.firePropertyChange(OptionsPanelController.PROP_VALID, null, null); + } +} diff --git a/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/options/AttributesPreferences.java b/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/options/AttributesPreferences.java new file mode 100644 index 0000000000..13cdb19603 --- /dev/null +++ b/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/options/AttributesPreferences.java @@ -0,0 +1,67 @@ +/* + Copyright 2008-2025 Gephi + Authors : Mathieu Bastian + Website : http://www.gephi.org + + This file is part of Gephi. + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright 2025 Gephi Consortium. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 3 only ("GPL") or the Common + Development and Distribution License("CDDL") (collectively, the + "License"). You may not use this file except in compliance with the + License. You can obtain a copy of the License at + http://gephi.org/about/legal/license-notice/ + or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the + specific language governing permissions and limitations under the + License. When distributing the software, include this License Header + Notice in each file and include the License files at + /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the + License Header, with the fields enclosed by brackets [] replaced by + your own identifying information: + "Portions Copyrighted [year] [name of copyright owner]" + + If you wish your version of this file to be governed by only the CDDL + or only the GPL Version 3, indicate your decision by adding + "[Contributor] elects to include this software in this distribution + under the [CDDL or GPL Version 3] license." If you do not indicate a + single choice of license, a recipient has the option to distribute + your version of this file under either the CDDL, the GPL Version 3 or + to extend the choice of license to its licensees as provided above. + However, if you add GPL Version 3 code and therefore, elected the GPL + Version 3 license, then the option applies only if the new code is + made subject to such option by the copyright holder. + + Contributor(s): + + Portions Copyrighted 2025 Gephi Consortium. + */ + +package org.gephi.desktop.attributes.options; + +import org.openide.util.NbPreferences; + +public final class AttributesPreferences { + + public static final String SHOW_NULL_COLUMNS = "Attributes.showNullColumns"; + public static final String INCLUDE_PROPERTIES = "Attributes.includeProperties"; + + public static final boolean DEFAULT_SHOW_NULL_COLUMNS = false; + public static final boolean DEFAULT_INCLUDE_PROPERTIES = true; + + private AttributesPreferences() { + } + + public static boolean isShowNullColumns() { + return NbPreferences.forModule(AttributesPreferences.class) + .getBoolean(SHOW_NULL_COLUMNS, DEFAULT_SHOW_NULL_COLUMNS); + } + + public static boolean isIncludeProperties() { + return NbPreferences.forModule(AttributesPreferences.class) + .getBoolean(INCLUDE_PROPERTIES, DEFAULT_INCLUDE_PROPERTIES); + } +} diff --git a/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/selection/SelectionPanel.java b/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/selection/SelectionPanel.java new file mode 100644 index 0000000000..36f518ccf2 --- /dev/null +++ b/modules/DesktopAttributes/src/main/java/org/gephi/desktop/attributes/selection/SelectionPanel.java @@ -0,0 +1,267 @@ +package org.gephi.desktop.attributes.selection; + +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Component; +import java.awt.Font; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.Insets; +import java.awt.RenderingHints; +import java.time.ZoneId; +import java.util.List; +import javax.swing.BorderFactory; +import javax.swing.Box; +import javax.swing.Icon; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JSeparator; +import javax.swing.ScrollPaneConstants; +import javax.swing.UIManager; +import org.gephi.desktop.attributes.AttributesUIModelImpl; +import org.gephi.graph.api.AttributeUtils; +import org.gephi.graph.api.Column; +import org.gephi.graph.api.DirectedGraph; +import org.gephi.graph.api.Graph; +import org.gephi.graph.api.GraphModel; +import org.gephi.graph.api.Node; +import org.gephi.graph.api.TimeFormat; +import org.openide.util.ImageUtilities; +import org.openide.util.NbBundle; + +public class SelectionPanel extends JPanel { + + private static final int CIRCLE_SIZE = 14; + private static final int MAX_VALUE_LENGTH = 100; + + private final JPanel headerPanel; + private final JLabel headerLabel; + private final JPanel attributesPanel; + private final JLabel noSelectionLabel; + + public SelectionPanel() { + setLayout(new BorderLayout()); + + headerPanel = new JPanel(new BorderLayout()); + headerLabel = new JLabel(); + headerLabel.setFont(headerLabel.getFont().deriveFont(Font.BOLD, 14f)); + headerLabel.setIconTextGap(8); + headerLabel.setBorder(BorderFactory.createEmptyBorder(8, 10, 8, 10)); + headerPanel.add(headerLabel, BorderLayout.CENTER); + headerPanel.add(new JSeparator(), BorderLayout.SOUTH); + headerPanel.setVisible(false); + + add(headerPanel, BorderLayout.NORTH); + + attributesPanel = new JPanel(new GridBagLayout()); + JScrollPane scrollPane = new JScrollPane(attributesPanel); + scrollPane.setBorder(BorderFactory.createEmptyBorder()); + scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); + scrollPane.getVerticalScrollBar().setUnitIncrement(16); + + add(scrollPane, BorderLayout.CENTER); + + noSelectionLabel = new JLabel( + NbBundle.getMessage(SelectionPanel.class, "SelectionPanel.noSelection")); + noSelectionLabel.setForeground(UIManager.getColor("textInactiveText")); + noSelectionLabel.setHorizontalAlignment(JLabel.CENTER); + emptySelection(); + } + + public void refreshSelectedNodes(final AttributesUIModelImpl model) { + boolean showNullColumns = model.isShowNullColumns(); + Node[] nodes = model.getSelectedNodes(); + if (nodes == null || nodes.length == 0) { + emptySelection(); + return; + } + + Node node = nodes[nodes.length - 1]; + Color nodeColor = node.getColor(); + String label = node.getLabel(); + if (label == null) { + label = node.getId().toString(); + } + + Color opaqueColor = new Color(nodeColor.getRed(), nodeColor.getGreen(), nodeColor.getBlue()); + headerLabel.setIcon(new CircleIcon(opaqueColor, CIRCLE_SIZE)); + headerLabel.setText(label); + headerPanel.setVisible(true); + + attributesPanel.removeAll(); + + GraphModel graphModel = model.getGraphModel(); + TimeFormat timeFormat = graphModel.getTimeFormat(); + ZoneId timeZone = graphModel.getTimeZone(); + Graph graph = graphModel.getGraphVisible(); + Column degreeColumn = graphModel.defaultColumns().degree(); + Column inDegreeColumn = graphModel.defaultColumns().inDegree(); + Column outDegreeColumn = graphModel.defaultColumns().outDegree(); + + List selectedColumns = model.getSelectedColumns(); + if (selectedColumns.isEmpty()) { + JLabel noColumnsLabel = new JLabel( + NbBundle.getMessage(SelectionPanel.class, "SelectionPanel.noColumns")); + noColumnsLabel.setForeground(UIManager.getColor("textInactiveText")); + noColumnsLabel.setHorizontalAlignment(JLabel.CENTER); + GridBagConstraints gbc = new GridBagConstraints(); + gbc.gridx = 0; + gbc.gridy = 0; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.anchor = GridBagConstraints.CENTER; + attributesPanel.add(noColumnsLabel, gbc); + } else { + String nullColumnLabel = NbBundle.getMessage(SelectionPanel.class, "SelectionPanel.nullColumn"); + int row = 0; + for (Column column : selectedColumns) { + String columnName = column.getTitle(); + String valueStr = null; + Object value = null; + if (column == degreeColumn) { + value = graph.getDegree(node); + valueStr = String.valueOf(value); + } else if (column == inDegreeColumn) { + value = ((DirectedGraph) graph).getInDegree(node); + valueStr = String.valueOf(value); + } else if (column == outDegreeColumn) { + value = ((DirectedGraph) graph).getOutDegree(node); + valueStr = String.valueOf(value); + } else { + value = node.getAttribute(column, graph.getView()); + if (value == null && !showNullColumns) { + continue; + } + + valueStr = + value == null ? nullColumnLabel : AttributeUtils.print(value, timeFormat, timeZone); + } + + Icon icon = getTypeIcon(column); + addAttributeRow(row++, icon, columnName, valueStr, value == null); + } + + GridBagConstraints filler = new GridBagConstraints(); + filler.gridx = 0; + filler.gridy = row; + filler.weighty = 1.0; + attributesPanel.add(Box.createVerticalGlue(), filler); + } + + revalidate(); + repaint(); + } + + private void addAttributeRow(int row, Icon icon, String name, String value, boolean isNull) { + GridBagConstraints gbc; + + JLabel iconLabel = new JLabel(icon); + gbc = new GridBagConstraints(); + gbc.gridx = 0; + gbc.gridy = row; + gbc.anchor = GridBagConstraints.WEST; + gbc.insets = new Insets(4, 4, 4, 4); + attributesPanel.add(iconLabel, gbc); + + JLabel nameLabel = new JLabel(name); + nameLabel.setFont(nameLabel.getFont().deriveFont(Font.BOLD)); + gbc = new GridBagConstraints(); + gbc.gridx = 1; + gbc.gridy = row; + gbc.anchor = GridBagConstraints.WEST; + gbc.insets = new Insets(4, 0, 4, 8); + attributesPanel.add(nameLabel, gbc); + + String displayValue = value; + String tooltip = null; + if (value.length() > MAX_VALUE_LENGTH) { + displayValue = value.substring(0, MAX_VALUE_LENGTH) + "\u2026"; + tooltip = "" + escapeHtml(value) + ""; + } + + JLabel valueLabel = new JLabel(displayValue); + if (isNull) { + valueLabel.setForeground(UIManager.getColor("textInactiveText")); + valueLabel.setFont(valueLabel.getFont().deriveFont(Font.ITALIC)); + } + if (tooltip != null) { + valueLabel.setToolTipText(tooltip); + } + gbc = new GridBagConstraints(); + gbc.gridx = 2; + gbc.gridy = row; + gbc.anchor = GridBagConstraints.WEST; + gbc.fill = GridBagConstraints.HORIZONTAL; + gbc.weightx = 1.0; + gbc.insets = new Insets(4, 0, 4, 10); + attributesPanel.add(valueLabel, gbc); + } + + private Icon getTypeIcon(Column column) { + if (column.isDynamicAttribute() || column.isDynamic()) { + return ImageUtilities.loadImageIcon("DesktopAttributes/dynamic.svg", false); + } else if (column.isNumber()) { + return ImageUtilities.loadImageIcon("DesktopAttributes/number.svg", false); + } else if (column.isArray()) { + return ImageUtilities.loadImageIcon("DesktopAttributes/array.svg", false); + } else if (column.getTypeClass() == Boolean.class) { + return ImageUtilities.loadImageIcon("DesktopAttributes/boolean.svg", false); + } + return ImageUtilities.loadImageIcon("DesktopAttributes/string.svg", false); + } + + private void emptySelection() { + headerPanel.setVisible(false); + attributesPanel.removeAll(); + + GridBagConstraints gbc = new GridBagConstraints(); + gbc.gridx = 0; + gbc.gridy = 0; + gbc.weightx = 1.0; + gbc.weighty = 1.0; + gbc.anchor = GridBagConstraints.CENTER; + attributesPanel.add(noSelectionLabel, gbc); + + revalidate(); + repaint(); + } + + private static String escapeHtml(String text) { + return text.replace("&", "&") + .replace("<", "<") + .replace(">", ">") + .replace("\"", """); + } + + private static class CircleIcon implements Icon { + private final Color color; + private final int size; + + CircleIcon(Color color, int size) { + this.color = color; + this.size = size; + } + + @Override + public void paintIcon(Component c, Graphics g, int x, int y) { + Graphics2D g2 = (Graphics2D) g.create(); + g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); + g2.setColor(color); + g2.fillOval(x, y, size, size); + g2.dispose(); + } + + @Override + public int getIconWidth() { + return size; + } + + @Override + public int getIconHeight() { + return size; + } + } +} diff --git a/modules/DesktopAttributes/src/main/nbm/manifest.mf b/modules/DesktopAttributes/src/main/nbm/manifest.mf new file mode 100644 index 0000000000..f9f89f3656 --- /dev/null +++ b/modules/DesktopAttributes/src/main/nbm/manifest.mf @@ -0,0 +1,6 @@ +Manifest-Version: 1.0 +AutoUpdate-Essential-Module: true +OpenIDE-Module-Localizing-Bundle: org/gephi/desktop/attributes/Bundle.properties +OpenIDE-Module-Specification-Version: ${gephi.modules.specification.version} +OpenIDE-Module-Display-Category: Gephi UI +OpenIDE-Module-Name: Desktop Attributes \ No newline at end of file diff --git a/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/Bundle.properties b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/Bundle.properties new file mode 100644 index 0000000000..c739c12c12 --- /dev/null +++ b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/Bundle.properties @@ -0,0 +1,10 @@ +OpenIDE-Module-Short-Description=Attributes UI +OpenIDE-Module-Long-Description=Attributes and edition panel for selected nodes and edges +CTL_AttributesTopComponent=Attributes +AttributesTopComponent.columnsButton.text=Columns... +AttributesTopComponent.columnsButton.tooltip=Select columns to display +AttributesTopComponent.noColumns=No columns available +AttributesTopComponent.showNullButton=Show null values +AttributesTopComponent.includeProperties=Include properties +AttributesTopComponent.selectAll=Select All +AttributesTopComponent.unselectAll=Unselect All \ No newline at end of file diff --git a/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/Bundle_ar.properties b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/Bundle_ar.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/Bundle_ar.properties @@ -0,0 +1 @@ + diff --git a/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/Bundle_th.properties b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/Bundle_th.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/Bundle_th.properties @@ -0,0 +1 @@ + diff --git a/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle.properties b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle.properties new file mode 100644 index 0000000000..7f61bf2eab --- /dev/null +++ b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle.properties @@ -0,0 +1,20 @@ +EditNodes.multiple.elements=Various nodes +EditNodes.properties.text={0} - Properties +EditNodes.attributes.text={0} - Attributes +EditNodes.properties.text.multiple=Various nodes - Properties +EditNodes.attributes.text.multiple=Various nodes - Attributes +EditNodes.size.text=Size +EditNodes.position.text=Position ({0}) +EditNodes.color.text=Color +EditEdges.multiple.elements=Various edges +EditEdges.properties.text={0} - Properties +EditEdges.attributes.text={0} - Attributes +EditEdges.properties.text.multiple=Various edges - Properties +EditEdges.attributes.text.multiple=Various edges - Attributes +EditEdges.color.text=Color +EditNodes.label.color.text=Label Color +EditNodes.label.size.text=Label Size +EditNodes.label.visible.text=Label Visible +EditEdges.label.color.text=Label Color +EditEdges.label.size.text=Label Size +EditEdges.label.visible.text=Label Visible \ No newline at end of file diff --git a/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_ar.properties b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_ar.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_ar.properties @@ -0,0 +1 @@ + diff --git a/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_ca.properties b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_ca.properties new file mode 100644 index 0000000000..b951f081b2 --- /dev/null +++ b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_ca.properties @@ -0,0 +1,20 @@ +EditNodes.multiple.elements=Various nodes +EditNodes.properties.text={0} - Properties +EditNodes.attributes.text={0} - Attributes +EditNodes.properties.text.multiple=Various nodes - Properties +EditNodes.attributes.text.multiple=Various nodes - Attributes +EditNodes.size.text=Mida +EditNodes.position.text=Position ({0}) +EditNodes.color.text=Color +EditEdges.multiple.elements=Various edges +EditEdges.properties.text={0} - Properties +EditEdges.attributes.text={0} - Attributes +EditEdges.properties.text.multiple=Various edges - Properties +EditEdges.attributes.text.multiple=Various edges - Attributes +EditEdges.color.text=Color +EditNodes.label.color.text=Color de l'etiqueta +EditNodes.label.size.text=Mida de l'etiqueta +EditNodes.label.visible.text=Label Visible +EditEdges.label.color.text=Color de l'etiqueta +EditEdges.label.size.text=Mida de l'etiqueta +EditEdges.label.visible.text=Label Visible diff --git a/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_cs.properties b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_cs.properties new file mode 100644 index 0000000000..66adf7e271 --- /dev/null +++ b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_cs.properties @@ -0,0 +1,20 @@ +EditNodes.multiple.elements=R\u016fznι uzly +EditNodes.properties.text={0} - Vlastnosti +EditNodes.attributes.text={0} - Atributy +EditNodes.properties.text.multiple=R\u016fznι uzly - Vlastnosti +EditNodes.attributes.text.multiple=R\u016fznι uzly - Atributy +EditNodes.size.text=Velikost +EditNodes.position.text=Pozice ({0}) +EditNodes.color.text=Barva +EditEdges.multiple.elements=R\u016fznι hrany +EditEdges.properties.text={0} - Vlastnosti +EditEdges.attributes.text={0} - Atributy +EditEdges.properties.text.multiple=R\u016fznι hrany - Vlastnosti +EditEdges.attributes.text.multiple=R\u016fznι hrany - Atributy +EditEdges.color.text=Barva +# EditNodes.label.color.text=Label Color +# EditNodes.label.size.text=Label Size +# EditNodes.label.visible.text=Label Visible +# EditEdges.label.color.text=Label Color +# EditEdges.label.size.text=Label Size +# EditEdges.label.visible.text=Label Visible diff --git a/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_de.properties b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_de.properties new file mode 100644 index 0000000000..5e7b8fafd0 --- /dev/null +++ b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_de.properties @@ -0,0 +1,20 @@ +EditNodes.multiple.elements=Verschiedene Knoten +EditNodes.properties.text={0} - Eigenschaften +EditNodes.attributes.text={0} - Attribute +EditNodes.properties.text.multiple=Verschiedene Knoten - Eigenschaften +EditNodes.attributes.text.multiple=Verschiedene Knoten - Attribute +EditNodes.size.text=Grφίe +EditNodes.position.text=Position ({0}) +EditNodes.color.text=Farbe +EditEdges.multiple.elements=Verschiedene Kanten +EditEdges.properties.text={0} - Eigenschaften +EditEdges.attributes.text={0} - Attribute +EditEdges.properties.text.multiple=Verschiedene Kanten - Eigenschaften +EditEdges.attributes.text.multiple=Verschiedene Kanten - Attribute +EditEdges.color.text=Farbe +EditNodes.label.color.text=Beschriftung Farbe +EditNodes.label.size.text=Beschriftung Grφίe +EditNodes.label.visible.text=Beschriftung sichtbar +EditEdges.label.color.text=Beschriftung Farbe +EditEdges.label.size.text=Beschriftung Grφίe +EditEdges.label.visible.text=Beschriftung sichtbar diff --git a/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_es.properties b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_es.properties new file mode 100644 index 0000000000..0777d44b9d --- /dev/null +++ b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_es.properties @@ -0,0 +1,20 @@ +EditNodes.multiple.elements=Varios nodos +EditNodes.properties.text={0} - Propiedades +EditNodes.attributes.text={0} - Atributos +EditNodes.properties.text.multiple=Varios nodos - Propiedades +EditNodes.attributes.text.multiple=Varios nodos - Atributos +EditNodes.size.text=Tamaρo +EditNodes.position.text=Posiciσn ({0}) +EditNodes.color.text=Color +EditEdges.multiple.elements=Varias aristas +EditEdges.properties.text={0} - Propiedades +EditEdges.attributes.text={0} - Atributos +EditEdges.properties.text.multiple=Varias aristas - Propiedades +EditEdges.attributes.text.multiple=Varias aristas - Atributos +EditEdges.color.text=Color +EditNodes.label.color.text=Color de etiqueta +EditNodes.label.size.text=Tamaρo de etiqueta +EditNodes.label.visible.text=Etiqueta visible +EditEdges.label.color.text=Color de etiqueta +EditEdges.label.size.text=Tamaρo de etiqueta +EditEdges.label.visible.text=Etiqueta visible diff --git a/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_fr.properties b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_fr.properties new file mode 100644 index 0000000000..1e941a9a1f --- /dev/null +++ b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_fr.properties @@ -0,0 +1,20 @@ +EditNodes.multiple.elements=Noeuds divers +EditNodes.properties.text={0} - Propriιtιs +EditNodes.attributes.text={0} - Attributs +EditNodes.properties.text.multiple=Noeuds divers - Propriιtιs +EditNodes.attributes.text.multiple=Noeuds divers - Attributs +EditNodes.size.text=Taille +EditNodes.position.text=Position ({0}) +EditNodes.color.text=Couleur +EditEdges.multiple.elements=Liens variιs +EditEdges.properties.text={0} - Propriιtιs +EditEdges.attributes.text={0} - Attributs +EditEdges.properties.text.multiple=Liens variιs - Propriιtιs +EditEdges.attributes.text.multiple=Liens variιs - Attributs +EditEdges.color.text=Couleur +EditNodes.label.color.text=Couleur du label +EditNodes.label.size.text=Taille des labels +EditNodes.label.visible.text=Visibilitι du label +EditEdges.label.color.text=Couleur du label +EditEdges.label.size.text=Taille des labels +EditEdges.label.visible.text=Visibilitι du label diff --git a/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_he.properties b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_he.properties new file mode 100644 index 0000000000..a7f84fa1c6 --- /dev/null +++ b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_he.properties @@ -0,0 +1,20 @@ +EditNodes.multiple.elements=Various nodes +EditNodes.properties.text={0} - Properties +EditNodes.attributes.text={0} - Attributes +EditNodes.properties.text.multiple=Various nodes - Properties +EditNodes.attributes.text.multiple=Various nodes - Attributes +EditNodes.size.text=Size +EditNodes.position.text=Position ({0}) +EditNodes.color.text=Color +EditEdges.multiple.elements=Various edges +EditEdges.properties.text={0} - Properties +EditEdges.attributes.text={0} - Attributes +EditEdges.properties.text.multiple=Various edges - Properties +EditEdges.attributes.text.multiple=Various edges - Attributes +EditEdges.color.text=Color +EditNodes.label.color.text=Label Color +EditNodes.label.size.text=Label Size +EditNodes.label.visible.text=Label Visible +EditEdges.label.color.text=Label Color +EditEdges.label.size.text=Label Size +EditEdges.label.visible.text=Label Visible diff --git a/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_hu.properties b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_hu.properties new file mode 100644 index 0000000000..69519772cb --- /dev/null +++ b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_hu.properties @@ -0,0 +1,22 @@ + + +EditEdges.color.text=Sz\u00EDn +EditNodes.attributes.text={0} \u2013 Attrib\u00FAtumok +EditNodes.size.text=M\u00E9ret +EditNodes.color.text=Sz\u00EDn +EditEdges.attributes.text.multiple=K\u00FCl\u00F6nf\u00E9le \u00E9lek - Attrib\u00FAtumok +EditEdges.label.size.text=C\u00EDmke m\u00E9rete +EditEdges.label.visible.text=C\u00EDmke l\u00E1that\u00F3 +EditNodes.properties.text={0} \u2013 Tulajdons\u00E1gok +EditEdges.attributes.text={0} \u2013 Attrib\u00FAtumok +EditEdges.properties.text.multiple=K\u00FCl\u00F6nf\u00E9le \u00E9lek - Tulajdons\u00E1gok +EditNodes.label.visible.text=C\u00EDmke l\u00E1that\u00F3 +EditNodes.attributes.text.multiple=K\u00FCl\u00F6nf\u00E9le csom\u00F3pontok - Attrib\u00FAtumok +EditNodes.label.size.text=C\u00EDmke m\u00E9rete +EditNodes.position.text=Poz\u00EDci\u00F3 ({0}) +EditNodes.multiple.elements=K\u00FCl\u00F6nf\u00E9le csom\u00F3pontok +EditEdges.properties.text={0} \u2013 Tulajdons\u00E1gok +EditEdges.multiple.elements=K\u00FCl\u00F6nf\u00E9le \u00E9lek +EditEdges.label.color.text=C\u00EDmke sz\u00EDne +EditNodes.properties.text.multiple=K\u00FCl\u00F6nf\u00E9le csom\u00F3pontok \u2013 Tulajdons\u00E1gok +EditNodes.label.color.text=C\u00EDmke sz\u00EDne diff --git a/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_it.properties b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_it.properties new file mode 100644 index 0000000000..a7f84fa1c6 --- /dev/null +++ b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_it.properties @@ -0,0 +1,20 @@ +EditNodes.multiple.elements=Various nodes +EditNodes.properties.text={0} - Properties +EditNodes.attributes.text={0} - Attributes +EditNodes.properties.text.multiple=Various nodes - Properties +EditNodes.attributes.text.multiple=Various nodes - Attributes +EditNodes.size.text=Size +EditNodes.position.text=Position ({0}) +EditNodes.color.text=Color +EditEdges.multiple.elements=Various edges +EditEdges.properties.text={0} - Properties +EditEdges.attributes.text={0} - Attributes +EditEdges.properties.text.multiple=Various edges - Properties +EditEdges.attributes.text.multiple=Various edges - Attributes +EditEdges.color.text=Color +EditNodes.label.color.text=Label Color +EditNodes.label.size.text=Label Size +EditNodes.label.visible.text=Label Visible +EditEdges.label.color.text=Label Color +EditEdges.label.size.text=Label Size +EditEdges.label.visible.text=Label Visible diff --git a/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_ja.properties b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_ja.properties new file mode 100644 index 0000000000..704bf0e9b0 --- /dev/null +++ b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_ja.properties @@ -0,0 +1,20 @@ +EditNodes.multiple.elements=\u69d8\u3005\u306a\u30ce\u30fc\u30c9 +EditNodes.properties.text={0} - \u30d7\u30ed\u30d1\u30c6\u30a3 +EditNodes.attributes.text={0} - \u5c5e\u6027 +EditNodes.properties.text.multiple=\u69d8\u3005\u306a\u30ce\u30fc\u30c9 - \u30d7\u30ed\u30d1\u30c6\u30a3 +EditNodes.attributes.text.multiple=\u69d8\u3005\u306a\u30ce\u30fc\u30c9 - \u5c5e\u6027 +EditNodes.size.text=\u5927\u304d\u3055 +EditNodes.position.text=\u4f4d\u7f6e({0}) +EditNodes.color.text=\u8272 +EditEdges.multiple.elements=\u69d8\u3005\u306a\u8fba +EditEdges.properties.text={0} - \u30d7\u30ed\u30d1\u30c6\u30a3 +EditEdges.attributes.text={0} - \u5c5e\u6027 +EditEdges.properties.text.multiple=\u69d8\u3005\u306a\u8fba - \u30d7\u30ed\u30d1\u30c6\u30a3 +EditEdges.attributes.text.multiple=\u69d8\u3005\u306a\u8fba - \u5c5e\u6027 +EditEdges.color.text=\u8272 +# EditNodes.label.color.text=Label Color +# EditNodes.label.size.text=Label Size +# EditNodes.label.visible.text=Label Visible +# EditEdges.label.color.text=Label Color +# EditEdges.label.size.text=Label Size +# EditEdges.label.visible.text=Label Visible diff --git a/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_ko.properties b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_ko.properties new file mode 100644 index 0000000000..a09de58a88 --- /dev/null +++ b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_ko.properties @@ -0,0 +1,22 @@ + + +EditEdges.attributes.text={0} - \uC18D\uC131\uAC12 +EditNodes.multiple.elements=\uB2E4\uC591\uD55C \uB178\uB4DC +EditNodes.properties.text={0} - \uC18D\uC131 +EditNodes.attributes.text={0} - \uC18D\uC131\uAC12 +EditNodes.properties.text.multiple=\uB2E4\uC591\uD55C \uB178\uB4DC - \uC18D\uC131 +EditEdges.attributes.text.multiple=\uB2E4\uC591\uD55C \uC5E3\uC9C0 - \uC18D\uC131\uAC12 +EditNodes.attributes.text.multiple=\uB2E4\uC591\uD55C \uB178\uB4DC - \uC18D\uC131\uAC12 +EditEdges.color.text=\uC0C9\uC0C1 +EditNodes.size.text=\uD06C\uAE30 +EditNodes.position.text=\uC704\uCE58 ({0}) +EditNodes.color.text=\uC0C9\uC0C1 +EditEdges.multiple.elements=\uB2E4\uC591\uD55C \uC5E3\uC9C0 +EditEdges.properties.text={0} - \uC18D\uC131 +EditEdges.properties.text.multiple=\uB2E4\uC591\uD55C \uC5E3\uC9C0 - \uC18D\uC131 +EditNodes.label.color.text=\uB808\uC774\uBE14 \uC0C9\uC0C1 +EditNodes.label.size.text=\uB808\uC774\uBE14 \uD06C\uAE30 +EditNodes.label.visible.text=\uB808\uC774\uBE14 \uC2DC\uC778\uC131 +EditEdges.label.color.text=\uB808\uC774\uBE14 \uC0C9\uC0C1 +EditEdges.label.size.text=\uB808\uC774\uBE14 \uD06C\uAE30 +EditEdges.label.visible.text=\uB808\uC774\uBE14 \uC2DC\uC778\uC131 diff --git a/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_nl.properties b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_nl.properties new file mode 100644 index 0000000000..0bb71d2251 --- /dev/null +++ b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_nl.properties @@ -0,0 +1,20 @@ +EditNodes.multiple.elements=Various nodes +EditNodes.properties.text={0} - Eigenschappen +EditNodes.attributes.text={0} - Attributen +EditNodes.properties.text.multiple=Various nodes - Properties +EditNodes.attributes.text.multiple=Various nodes - Attributes +EditNodes.size.text=Grootte +EditNodes.position.text=Positie ({0}) +EditNodes.color.text=Kleur +EditEdges.multiple.elements=Various edges +EditEdges.properties.text={0} - Eigenschappen +EditEdges.attributes.text={0} - Attributen +EditEdges.properties.text.multiple=Various edges - Properties +EditEdges.attributes.text.multiple=Various edges - Attributes +EditEdges.color.text=Kleur +EditNodes.label.color.text=Labelkleur +EditNodes.label.size.text=Labelgrootte +EditNodes.label.visible.text=Label Visible +EditEdges.label.color.text=Labelkleur +EditEdges.label.size.text=Labelgrootte +EditEdges.label.visible.text=Label Visible diff --git a/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_pt_BR.properties b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_pt_BR.properties new file mode 100644 index 0000000000..499c17ffff --- /dev/null +++ b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_pt_BR.properties @@ -0,0 +1,20 @@ +EditNodes.multiple.elements=Vαrios nσs +EditNodes.properties.text={0} - Propriedades +EditNodes.attributes.text={0} - Atributos +EditNodes.properties.text.multiple=Vαrios nσs - Propriedades +EditNodes.attributes.text.multiple=Vαrios nσs - Atributos +EditNodes.size.text=Tamanho +EditNodes.position.text=Posiηγo ({0}) +EditNodes.color.text=Cor +EditEdges.multiple.elements=Vαrias arestas +EditEdges.properties.text={0} - Propriedades +EditEdges.attributes.text={0} - Atributos +EditEdges.properties.text.multiple=Vαrias arestas - Propriedades +EditEdges.attributes.text.multiple=Vαrias arestas - Atributos +EditEdges.color.text=Cor +# EditNodes.label.color.text=Label Color +# EditNodes.label.size.text=Label Size +# EditNodes.label.visible.text=Label Visible +# EditEdges.label.color.text=Label Color +# EditEdges.label.size.text=Label Size +# EditEdges.label.visible.text=Label Visible diff --git a/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_ro.properties b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_ro.properties new file mode 100644 index 0000000000..6be0201fd0 --- /dev/null +++ b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_ro.properties @@ -0,0 +1,22 @@ + + +EditEdges.color.text=Culoare +EditNodes.label.color.text=Culoare etichet\u0103 +EditEdges.label.color.text=Culoare etichet\u0103 +EditNodes.multiple.elements=Diverse noduri +EditNodes.properties.text={0} - Propriet\u0103\u021Bi +EditNodes.attributes.text={0} - Atribute +EditNodes.properties.text.multiple=Diverse noduri - Propriet\u0103\u021Bi +EditNodes.attributes.text.multiple=Diverse noduri - Atribute +EditNodes.size.text=Dimensiune +EditNodes.position.text=Pozi\u021Bie ({0}) +EditNodes.color.text=Culoare +EditEdges.multiple.elements=Diverse muchii +EditEdges.properties.text={0} - Propriet\u0103\u021Bi +EditEdges.attributes.text={0} - Atribute +EditEdges.properties.text.multiple=Diverse muchii - Propriet\u0103\u021Bi +EditEdges.attributes.text.multiple=Diverse muchii - Atribute +EditNodes.label.size.text=Dimensiune etichet\u0103 +EditNodes.label.visible.text=Etichet\u0103 vizibil\u0103 +EditEdges.label.size.text=Dimensiune etichet\u0103 +EditEdges.label.visible.text=Etichet\u0103 vizibil\u0103 diff --git a/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_ru.properties b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_ru.properties new file mode 100644 index 0000000000..4bd5aa07b3 --- /dev/null +++ b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_ru.properties @@ -0,0 +1,20 @@ +EditNodes.multiple.elements=\u0420\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0443\u0437\u043b\u044b +EditNodes.properties.text={0} - \u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 +EditNodes.attributes.text={0} - \u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044b +EditNodes.properties.text.multiple=\u0420\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0443\u0437\u043b\u044b - \u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 +EditNodes.attributes.text.multiple=\u0420\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0443\u0437\u043b\u044b - \u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044b +EditNodes.size.text=\u0420\u0430\u0437\u043c\u0435\u0440 +EditNodes.position.text=\u041f\u043e\u0437\u0438\u0446\u0438\u044f ({0}) +EditNodes.color.text=\u0426\u0432\u0435\u0442 +EditEdges.multiple.elements=\u0420\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0440\u0451\u0431\u0440\u0430 +EditEdges.properties.text={0} - \u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 +EditEdges.attributes.text={0} - \u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044b +EditEdges.properties.text.multiple=\u0420\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0440\u0451\u0431\u0440\u0430 - \u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 +EditEdges.attributes.text.multiple=\u0420\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0440\u0451\u0431\u0440\u0430 - \u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044b +EditEdges.color.text=\u0426\u0432\u0435\u0442 +# EditNodes.label.color.text=Label Color +# EditNodes.label.size.text=Label Size +# EditNodes.label.visible.text=Label Visible +# EditEdges.label.color.text=Label Color +# EditEdges.label.size.text=Label Size +# EditEdges.label.visible.text=Label Visible diff --git a/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_th.properties b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_th.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_th.properties @@ -0,0 +1 @@ + diff --git a/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_tr.properties b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_tr.properties new file mode 100644 index 0000000000..a7f84fa1c6 --- /dev/null +++ b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_tr.properties @@ -0,0 +1,20 @@ +EditNodes.multiple.elements=Various nodes +EditNodes.properties.text={0} - Properties +EditNodes.attributes.text={0} - Attributes +EditNodes.properties.text.multiple=Various nodes - Properties +EditNodes.attributes.text.multiple=Various nodes - Attributes +EditNodes.size.text=Size +EditNodes.position.text=Position ({0}) +EditNodes.color.text=Color +EditEdges.multiple.elements=Various edges +EditEdges.properties.text={0} - Properties +EditEdges.attributes.text={0} - Attributes +EditEdges.properties.text.multiple=Various edges - Properties +EditEdges.attributes.text.multiple=Various edges - Attributes +EditEdges.color.text=Color +EditNodes.label.color.text=Label Color +EditNodes.label.size.text=Label Size +EditNodes.label.visible.text=Label Visible +EditEdges.label.color.text=Label Color +EditEdges.label.size.text=Label Size +EditEdges.label.visible.text=Label Visible diff --git a/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_uk.properties b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_uk.properties new file mode 100644 index 0000000000..29cc8449e4 --- /dev/null +++ b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_uk.properties @@ -0,0 +1,20 @@ +EditEdges.label.size.text=\u0420\u043E\u0437\u043C\u0456\u0440 \u0435\u0442\u0438\u043A\u0435\u0442\u043A\u0438 +EditEdges.color.text=\u041A\u043E\u043B\u0456\u0440 +EditNodes.multiple.elements=\u0420\u0456\u0437\u043D\u0456 \u0432\u0443\u0437\u043B\u0438 +EditNodes.properties.text={0} - \u0412\u043B\u0430\u0441\u0442\u0438\u0432\u043E\u0441\u0442\u0456 +EditNodes.attributes.text={0} - \u0410\u0442\u0440\u0438\u0431\u0443\u0442\u0438 +EditNodes.properties.text.multiple=\u0420\u0456\u0437\u043D\u0456 \u0432\u0443\u0437\u043B\u0438 - \u0412\u043B\u0430\u0441\u0442\u0438\u0432\u043E\u0441\u0442\u0456 +EditNodes.attributes.text.multiple=\u0420\u0456\u0437\u043D\u0456 \u0432\u0443\u0437\u043B\u0438 - \u0410\u0442\u0440\u0438\u0431\u0443\u0442\u0438 +EditNodes.size.text=\u0420\u043E\u0437\u043C\u0456\u0440 +EditNodes.position.text=\u041F\u043E\u0437\u0438\u0446\u0456\u044F ({0}) +EditNodes.color.text=\u041A\u043E\u043B\u0456\u0440 +EditEdges.multiple.elements=\u0420\u0456\u0437\u043D\u0456 \u043A\u0440\u043E\u043C\u043A\u0438 +EditEdges.properties.text={0} - \u0412\u043B\u0430\u0441\u0442\u0438\u0432\u043E\u0441\u0442\u0456 +EditEdges.attributes.text={0} - \u0410\u0442\u0440\u0438\u0431\u0443\u0442\u0438 +EditEdges.properties.text.multiple=\u0420\u0456\u0437\u043D\u0456 \u0440\u0435\u0431\u0440\u0430 - \u0412\u043B\u0430\u0441\u0442\u0438\u0432\u043E\u0441\u0442\u0456 +EditEdges.attributes.text.multiple=\u0420\u0456\u0437\u043D\u0456 \u0440\u0435\u0431\u0440\u0430 - \u0410\u0442\u0440\u0438\u0431\u0443\u0442\u0438 +EditNodes.label.color.text=\u041A\u043E\u043B\u0456\u0440 \u0435\u0442\u0438\u043A\u0435\u0442\u043A\u0438 +EditNodes.label.size.text=\u0420\u043E\u0437\u043C\u0456\u0440 \u0435\u0442\u0438\u043A\u0435\u0442\u043A\u0438 +EditEdges.label.color.text=\u041A\u043E\u043B\u0456\u0440 \u0435\u0442\u0438\u043A\u0435\u0442\u043A\u0438 +EditEdges.label.visible.text=\u041C\u0456\u0442\u043A\u0430 \u0432\u0438\u0434\u0438\u043C\u0430 +EditNodes.label.visible.text=\u041C\u0456\u0442\u043A\u0430 \u0432\u0438\u0434\u0438\u043C\u0430 diff --git a/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_zh_CN.properties b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_zh_CN.properties new file mode 100644 index 0000000000..c48a4395b8 --- /dev/null +++ b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_zh_CN.properties @@ -0,0 +1,20 @@ +EditNodes.multiple.elements=\u5404\u4e2a\u8282\u70b9 +EditNodes.properties.text={0} - \u5c5e\u6027 +EditNodes.attributes.text={0} - \u5c5e\u6027 +EditNodes.properties.text.multiple=\u5404\u4e2a\u8282\u70b9 - \u5c5e\u6027 +EditNodes.attributes.text.multiple=\u5404\u4e2a\u8282\u70b9 - \u5c5e\u6027 +EditNodes.size.text=\u5c3a\u5bf8 +EditNodes.position.text=\u4f4d\u7f6e({0}) +EditNodes.color.text=\u989c\u8272 +EditEdges.multiple.elements=\u5404\u4e2a\u8fb9 +EditEdges.properties.text={0} - \u5c5e\u6027 +EditEdges.attributes.text={0} - \u5c5e\u6027 +EditEdges.properties.text.multiple=\u5404\u4e2a\u8fb9-\u5c5e\u6027 +EditEdges.attributes.text.multiple=\u5404\u4e2a\u8fb9 - \u5c5e\u6027 +EditEdges.color.text=\u989c\u8272 +EditNodes.label.color.text=\u6807\u7b7e\u989c\u8272 +EditNodes.label.size.text=\u6807\u7b7e\u5c3a\u5bf8 +EditNodes.label.visible.text=\u6807\u7b7e\u53ef\u89c1 +EditEdges.label.color.text=\u6807\u7b7e\u989c\u8272 +EditEdges.label.size.text=\u6807\u7b7e\u5c3a\u5bf8 +EditEdges.label.visible.text=\u6807\u7b7e\u53ef\u89c1 diff --git a/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_zh_TW.properties b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_zh_TW.properties new file mode 100644 index 0000000000..a7f84fa1c6 --- /dev/null +++ b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/edit/Bundle_zh_TW.properties @@ -0,0 +1,20 @@ +EditNodes.multiple.elements=Various nodes +EditNodes.properties.text={0} - Properties +EditNodes.attributes.text={0} - Attributes +EditNodes.properties.text.multiple=Various nodes - Properties +EditNodes.attributes.text.multiple=Various nodes - Attributes +EditNodes.size.text=Size +EditNodes.position.text=Position ({0}) +EditNodes.color.text=Color +EditEdges.multiple.elements=Various edges +EditEdges.properties.text={0} - Properties +EditEdges.attributes.text={0} - Attributes +EditEdges.properties.text.multiple=Various edges - Properties +EditEdges.attributes.text.multiple=Various edges - Attributes +EditEdges.color.text=Color +EditNodes.label.color.text=Label Color +EditNodes.label.size.text=Label Size +EditNodes.label.visible.text=Label Visible +EditEdges.label.color.text=Label Color +EditEdges.label.size.text=Label Size +EditEdges.label.visible.text=Label Visible diff --git a/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/options/Bundle.properties b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/options/Bundle.properties new file mode 100644 index 0000000000..4cbeaa00f0 --- /dev/null +++ b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/options/Bundle.properties @@ -0,0 +1,7 @@ +AdvancedOption_DisplayName_Attributes=Attributes +AdvancedOption_Keywords_Attributes=selection, edit, columns, attributes +# Section titles +AttributesOptionsPanel.defaultSettingsTitle.title=Default Attributes Settings +# Checkboxes +AttributesOptionsPanel.showNullColumns.text=Show columns with null values +AttributesOptionsPanel.includeProperties.text=Include property columns diff --git a/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/options/Bundle_ar.properties b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/options/Bundle_ar.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/options/Bundle_ar.properties @@ -0,0 +1 @@ + diff --git a/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/options/Bundle_fr.properties b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/options/Bundle_fr.properties new file mode 100644 index 0000000000..abea58f78c --- /dev/null +++ b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/options/Bundle_fr.properties @@ -0,0 +1 @@ +AdvancedOption_DisplayName_Attributes=Attributs diff --git a/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/options/Bundle_th.properties b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/options/Bundle_th.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/options/Bundle_th.properties @@ -0,0 +1 @@ + diff --git a/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/selection/Bundle.properties b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/selection/Bundle.properties new file mode 100644 index 0000000000..8d89b9d710 --- /dev/null +++ b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/selection/Bundle.properties @@ -0,0 +1,3 @@ +SelectionPanel.nullColumn = +SelectionPanel.noSelection = No element selected +SelectionPanel.noColumns = No columns selected \ No newline at end of file diff --git a/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/selection/Bundle_ar.properties b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/selection/Bundle_ar.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/selection/Bundle_ar.properties @@ -0,0 +1 @@ + diff --git a/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/selection/Bundle_fr.properties b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/selection/Bundle_fr.properties new file mode 100644 index 0000000000..5e3b809411 --- /dev/null +++ b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/selection/Bundle_fr.properties @@ -0,0 +1 @@ +SelectionPanel.nullColumn= diff --git a/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/selection/Bundle_th.properties b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/selection/Bundle_th.properties new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/modules/DesktopAttributes/src/main/resources/org/gephi/desktop/attributes/selection/Bundle_th.properties @@ -0,0 +1 @@ + diff --git a/modules/DesktopBranding/pom.xml b/modules/DesktopBranding/pom.xml index 1ffe37dbfb..6c280a5bb9 100644 --- a/modules/DesktopBranding/pom.xml +++ b/modules/DesktopBranding/pom.xml @@ -4,21 +4,25 @@ gephi-parent org.gephi - 0.9-SNAPSHOT + 0.11.3-SNAPSHOT ../.. - org.gephi desktop-branding - 0.9-SNAPSHOT + 0.11.3-SNAPSHOT nbm DesktopBranding + + + false + + ${project.groupId} - desktop-progress + desktop-window ${project.groupId} @@ -36,6 +40,14 @@ ${project.groupId} core-library-wrapper + + ${project.groupId} + ui-utils + + + ${project.groupId} + desktop-icons + org.netbeans.api org-openide-util-lookup @@ -44,6 +56,10 @@ org.netbeans.api org-openide-util + + org.netbeans.api + org-openide-util-ui + org.netbeans.api org-openide-windows @@ -72,22 +88,132 @@ org.netbeans.api org-netbeans-api-progress + + org.netbeans.api + org-netbeans-api-progress-nb + org.netbeans.api org-openide-nodes + + org.netbeans.api + org-openide-io + + + org.netbeans.modules + org-netbeans-core-output2 + + + org.netbeans.api + org-openide-awt + + + org.netbeans.api + org-netbeans-modules-autoupdate-services + + + org.netbeans.api + org-netbeans-modules-options-api + + + io.sentry + sentry + + + + + src/main/resources + + org/gephi/branding/desktop/layer.xml + + + + + + maven-resources-plugin + + + + generate-bundles + generate-resources + + copy-resources + + + src/main/nbm-branding + + + src/main/resources + + core/core.jar/org/netbeans/core/startup/Bundle.properties + modules/org-netbeans-core-windows.jar/org/netbeans/core/windows/view/ui/Bundle.properties + + true + + + + + + + + generate-autoupdate-urls + generate-resources + + copy-resources + + + ${basedir}/target/classes + + + src/main/resources + + org/gephi/branding/desktop/layer.xml + + true + + + + + + + + - org.codehaus.mojo + org.apache.netbeans.utilities nbm-maven-plugin + true - - + ${brandingToken} + ${brandingToken} + + warn + + + default-branding + package + + + + + + + deployment + + true + + + diff --git a/modules/DesktopBranding/src/main/java/org/gephi/branding/desktop/CommandLineProcessor.java b/modules/DesktopBranding/src/main/java/org/gephi/branding/desktop/CommandLineProcessor.java index dd57683779..c1df0d9acc 100644 --- a/modules/DesktopBranding/src/main/java/org/gephi/branding/desktop/CommandLineProcessor.java +++ b/modules/DesktopBranding/src/main/java/org/gephi/branding/desktop/CommandLineProcessor.java @@ -39,8 +39,10 @@ Development and Distribution License("CDDL") (collectively, the Portions Copyrighted 2011 Gephi Consortium. */ + package org.gephi.branding.desktop; +import java.awt.event.ActionEvent; import java.io.File; import java.util.ArrayList; import java.util.Arrays; @@ -48,31 +50,27 @@ Development and Distribution License("CDDL") (collectively, the import java.util.List; import java.util.Map; import java.util.Set; -import org.gephi.desktop.importer.api.ImportControllerUI; -import org.gephi.desktop.project.api.ProjectControllerUI; -import org.netbeans.api.sendopts.CommandException; +import java.util.logging.Logger; import org.netbeans.spi.sendopts.Env; import org.netbeans.spi.sendopts.Option; import org.netbeans.spi.sendopts.OptionProcessor; import org.openide.DialogDisplayer; import org.openide.NotifyDescriptor; -import org.openide.filesystems.FileObject; -import org.openide.filesystems.FileUtil; -import org.openide.util.Lookup; +import org.openide.awt.Actions; +import org.openide.util.Exceptions; import org.openide.util.NbBundle; import org.openide.util.lookup.ServiceProvider; +import org.openide.windows.WindowManager; /** - * * @author Mathieu Bastian */ @ServiceProvider(service = OptionProcessor.class) public class CommandLineProcessor extends OptionProcessor { - private Option openOption = Option.defaultArguments(); - private Option openOption2 = Option.additionalArguments('o', "open"); + private final Option openOption = Option.defaultArguments(); + private final Option openOption2 = Option.additionalArguments('o', "open"); private final String MEMORY_ERROR; - private static final String GEPHI_EXTENSION = "gephi"; public CommandLineProcessor() { MEMORY_ERROR = NbBundle.getMessage(CommandLineProcessor.class, "CommandLineProcessor.OutOfMemoryError.message"); @@ -80,63 +78,54 @@ public CommandLineProcessor() { @Override protected Set