1 /*******************************************************************************
2 * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>
4 * All rights reserved. This program and the accompanying materials
5 * are made available under the terms of the Eclipse Public License v1.0
6 * which accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
8 *******************************************************************************/
9 package org
.eclipse
.egit
.ui
.internal
.preferences
;
11 import org
.eclipse
.egit
.core
.Activator
;
12 import org
.eclipse
.egit
.core
.GitCorePreferences
;
13 import org
.eclipse
.egit
.core
.project
.GitProjectData
;
14 import org
.eclipse
.egit
.ui
.UIText
;
15 import org
.eclipse
.jface
.preference
.BooleanFieldEditor
;
16 import org
.eclipse
.jface
.preference
.FieldEditorPreferencePage
;
17 import org
.eclipse
.ui
.IWorkbench
;
18 import org
.eclipse
.ui
.IWorkbenchPreferencePage
;
20 /** Preferences for our window cache. */
21 public class WindowCachePreferencePage
extends FieldEditorPreferencePage
22 implements IWorkbenchPreferencePage
{
23 private static final int MB
= 1024 * 1024;
25 private static final int GB
= 1024 * MB
;
28 public WindowCachePreferencePage() {
30 setTitle(UIText
.WindowCachePreferencePage_title
);
31 setPreferenceStore(Activator
.getDefault().getPreferenceStore());
35 protected void createFieldEditors() {
36 addField(new StorageSizeFieldEditor(
37 GitCorePreferences
.core_packedGitWindowSize
,
38 UIText
.WindowCachePreferencePage_packedGitWindowSize
,
39 getFieldEditorParent(), 512, 128 * MB
) {
40 protected boolean checkValue(final int number
) {
41 return super.checkValue(number
)
42 && Integer
.bitCount(number
) == 1;
46 addField(new StorageSizeFieldEditor(
47 GitCorePreferences
.core_packedGitLimit
,
48 UIText
.WindowCachePreferencePage_packedGitLimit
,
49 getFieldEditorParent(), 512, 1 * GB
));
50 addField(new StorageSizeFieldEditor(
51 GitCorePreferences
.core_deltaBaseCacheLimit
,
52 UIText
.WindowCachePreferencePage_deltaBaseCacheLimit
,
53 getFieldEditorParent(), 512, 1 * GB
));
55 addField(new BooleanFieldEditor(GitCorePreferences
.core_packedGitMMAP
,
56 UIText
.WindowCachePreferencePage_packedGitMMAP
,
57 getFieldEditorParent()));
60 public boolean performOk() {
61 Activator
.getDefault().savePluginPreferences();
62 GitProjectData
.reconfigureWindowCache();
63 return super.performOk();
66 public void init(IWorkbench workbench
) {